diff --git a/package.json b/package.json index 2af7d3b..8072068 100644 --- a/package.json +++ b/package.json @@ -15,19 +15,19 @@ "productName": "ElectronReact", "description": "Electron application boilerplate based on React, React Router, Webpack, React Fast Refresh for rapid application development", "scripts": { + "postinstall": "node -r @babel/register .erb/scripts/CheckNativeDep.js && electron-builder install-app-deps && yarn cross-env NODE_ENV=development webpack --config ./.erb/configs/webpack.config.renderer.dev.dll.babel.js && opencollective-postinstall && yarn-deduplicate yarn.lock", "build": "concurrently \"yarn build:main\" \"yarn build:renderer\"", "build:main": "cross-env NODE_ENV=production webpack --config ./.erb/configs/webpack.config.main.prod.babel.js", "build:renderer": "cross-env NODE_ENV=production webpack --config ./.erb/configs/webpack.config.renderer.prod.babel.js", "rebuild": "electron-rebuild --parallel --types prod,dev,optional --module-dir src", "lint": "cross-env NODE_ENV=development eslint . --cache --ext .js,.jsx,.ts,.tsx", "package": "rm -rf src/dist && yarn build && electron-builder build --publish never", - "postinstall": "node -r @babel/register .erb/scripts/CheckNativeDep.js && electron-builder install-app-deps && yarn cross-env NODE_ENV=development webpack --config ./.erb/configs/webpack.config.renderer.dev.dll.babel.js && opencollective-postinstall && yarn-deduplicate yarn.lock", "start": "node -r @babel/register ./.erb/scripts/CheckPortInUse.js && cross-env yarn start:renderer", "start:main": "cross-env NODE_ENV=development electron -r ./.erb/scripts/BabelRegister ./src/main.dev.ts", "start:renderer": "cross-env NODE_ENV=development webpack serve --config ./.erb/configs/webpack.config.renderer.dev.babel.js", "test": "jest", - "relay": "supervisor -w relay,src -n exit relay/index.js", - "relay:service": "supervisor -- relay/service", + "relay": "supervisor -w relay,src -n exit relay/index.mjs", + "relay:service": "supervisor -- relay/service.mjs", "sloc": "find lib -type f | xargs wc -l" }, "build": { @@ -260,6 +260,7 @@ "md5": "^2.3.0", "menubar": "^9.0.3", "nat-upnp": "^1.1.1", + "nedb": "^1.8.0", "node-ipc": "^9.1.4", "node-rsa": "^1.1.1", "printable-characters": "^1.0.42", diff --git a/relay/index.js b/relay/index.mjs similarity index 74% rename from relay/index.js rename to relay/index.mjs index 53f6127..b316464 100644 --- a/relay/index.js +++ b/relay/index.mjs @@ -1,21 +1,26 @@ // process.env.DEBUG = 'xyz:valnet:*'; +'use strict'; + +import { title } from '../src/lib/title.js'; +import { Identity } from '../src/lib/Identity.js'; +import { config } from '../src/lib/config/index.js'; +import appdata from '../src/lib/appdata.js'; +import Node from '../src/lib/node.js'; + +import Signale from 'signale'; +import { ensureDirSync } from 'fs-extra'; +import express from 'express'; -(async () => { -const { title } = require('../src/lib/title'); -const log = require('signale').scope('RLAY'); -const { Identity } = require('../src/lib/Identity'); title('relay', false); -const Node = require('../src/lib/node'); -const { config } = require('../src/lib/config'); -const { ensureDirSync } = require('fs-extra'); -const appdata = require('../src/lib/appdata'); - -ensureDirSync(`${appdata}/valnet/relay`); +const log = Signale.scope('RLAY'); const node = new Node(); +(async () => { + // ==================================== [EXPRESS] -const express = require('express'); + const app = express(); +ensureDirSync(`${appdata}/valnet/relay`); app.get('/', (req, res) => { res.end(` diff --git a/relay/service.js b/relay/service.mjs similarity index 90% rename from relay/service.js rename to relay/service.mjs index 5f6b3ff..cd2b0b9 100644 --- a/relay/service.js +++ b/relay/service.mjs @@ -1,21 +1,24 @@ +import Signale from 'signale'; +import { execSync, spawn } from 'child_process'; +import Datastore from 'nedb'; +import { config } from '../src/lib/config/index.js'; +import express from 'express'; + (async () => { -const log = require('signale').scope('SRVC'); -const { execSync, spawn } = require('child_process'); + +const log = Signale.scope('SRVC'); const branch = execSync('git rev-parse --abbrev-ref HEAD').toString().trim(); let proc; -const Datastore = require('nedb'); const logs = new Datastore({ filename: 'svc.log', autoload: true }); -const { config } = require('../package.json'); -const express = require('express'); const app = express(); try { appendLogs('yarn', execSync(`yarn`)); } catch (e) { - appendLogs('failed to yarn install...') + logp('failed to yarn install...') } logp('=================================='); @@ -47,7 +50,7 @@ setInterval(function update() { }, 5000); (function keepAlive() { - proc = spawn('node', ['relay'], { + proc = spawn('node', ['./relay/index.mjs'], { stdio: 'pipe' }); diff --git a/src/App.tsx b/src/App.tsx index 3c2331c..5dda47e 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,7 +2,8 @@ import React from 'react'; import { BrowserRouter as Router, Switch, Route } from 'react-router-dom'; import icon from '../assets/icon.svg'; import './App.global.css'; -import { IpcClient } from './lib/ipc'; +import { IpcClient } from './lib/ipc.js'; + class Hello extends React.Component { api = new IpcClient('valnet'); @@ -15,6 +16,11 @@ class Hello extends React.Component { console.log(await this.api.getClients()) } + async killApp() { + // alert(this); + await this.api.kill(1); + } + render() { return (