ee-core 1.2.7-beta → 1.2.7-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +2 -2
  3. package/bin/tools.js +22 -22
  4. package/config/config.default.js +247 -247
  5. package/core/index.js +12 -12
  6. package/core/lib/ee.js +209 -209
  7. package/core/lib/loader/context_loader.js +105 -105
  8. package/core/lib/loader/ee_loader.js +451 -451
  9. package/core/lib/loader/file_loader.js +262 -262
  10. package/core/lib/loader/mixin/config.js +138 -138
  11. package/core/lib/loader/mixin/controller.js +123 -123
  12. package/core/lib/loader/mixin/service.js +29 -29
  13. package/core/lib/utils/base_context_class.js +34 -34
  14. package/core/lib/utils/index.js +100 -100
  15. package/core/lib/utils/sequencify.js +59 -59
  16. package/core/lib/utils/timing.js +77 -77
  17. package/index.js +49 -49
  18. package/lib/appLoader.js +45 -45
  19. package/lib/application.js +80 -80
  20. package/lib/baseApp.js +118 -118
  21. package/lib/constant.js +28 -28
  22. package/lib/eeApp.js +326 -326
  23. package/lib/helper.js +51 -51
  24. package/lib/httpclient.js +136 -136
  25. package/lib/logger.js +46 -46
  26. package/lib/socket/httpServer.js +104 -104
  27. package/lib/socket/io.js +23 -23
  28. package/lib/socket/ipcServer.js +128 -128
  29. package/lib/socket/socketClient.js +50 -50
  30. package/lib/socket/socketServer.js +76 -76
  31. package/lib/socket/start.js +22 -22
  32. package/lib/storage/appStorage.js +13 -13
  33. package/lib/storage/index.js +21 -21
  34. package/lib/storage/lowdbStorage.js +143 -143
  35. package/package.json +45 -45
  36. package/resource/loading.html +21 -21
  37. package/resource/view_example.html +21 -21
  38. package/tools/codeCompress.js +204 -204
  39. package/tools/replaceDist.js +76 -76
  40. package/utils/common.js +30 -30
  41. package/utils/index.js +206 -202
  42. package/utils/wrap.js +37 -37
@@ -1,81 +1,81 @@
1
- const {app} = require('electron');
2
- const path = require('path');
3
- const EeApp = require('./eeApp');
4
- const debug = require('debug')('ee-core:Appliaction');
5
-
6
- class Appliaction extends EeApp {
7
- constructor() {
8
-
9
- // 初始化环境变量
10
- // const opt = this.initEnv();
11
- const { env } = process;
12
-
13
- // 路径不能使用绝对,打包前后有问题
14
- let options = {
15
- env: 'prod',
16
- serverScope: '',
17
- type: 'application',
18
- baseDir: path.join(app.getAppPath(), 'electron'),
19
- homeDir: app.getAppPath(),
20
- framework: path.join(app.getAppPath(), 'node_modules', 'ee-core'),
21
- appName: app.getName(),
22
- userHome: app.getPath('home'),
23
- appData: app.getPath('appData'),
24
- appUserData: app.getPath('userData'),
25
- //logsDir: app.getPath('logs'),
26
- appVersion: app.getVersion(),
27
- isPackaged: app.isPackaged,
28
- execDir: app.getAppPath()
29
- }
30
-
31
- // argv
32
- let hotReload = false;
33
- for (let i = 0; i < process.argv.length; i++) {
34
- const tmpArgv = process.argv[i]
35
- if (tmpArgv.indexOf('--env=') !== -1) {
36
- options.env = tmpArgv.substring(6);
37
- }
38
- if (tmpArgv.indexOf('--hot-reload=') !== -1) {
39
- hotReload = tmpArgv.substring(13) == 1 ? true : false;
40
- }
41
- }
42
-
43
- // exec directory (exe dmg dep) for prod
44
- if (options.env == 'prod' && app.isPackaged) {
45
- options.execDir = path.dirname(app.getPath('exe'));
46
- }
47
-
48
- // normalize env
49
- env.NODE_ENV = 'production';
50
- env.EE_HOME = options.homeDir;
51
- env.EE_SERVER_ENV = options.env;
52
- env.EE_SERVER_SCOPE = options.serverScope;
53
- env.EE_USER_HOME = options.userHome;
54
- env.EE_APP_DATA = options.appData;
55
- env.EE_APP_USER_DATA = options.appUserData;
56
- env.EE_MAIN_PORT = null;
57
- env.EE_SOCKET_PORT = null;
58
- env.EE_HTTP_PORT = null;
59
- env.HOT_RELOAD = hotReload;
60
- debug('options:%j', options)
61
-
62
- super(options);
63
- this.initialize();
64
- }
65
-
66
- async initialize () {
67
-
68
- await this.createPorts();
69
-
70
- this.startSocket();
71
- //return;
72
-
73
- await this.ready();
74
-
75
- await this.createElectronApp();
76
-
77
- await this.catchLog();
78
- }
79
- }
80
-
1
+ const {app} = require('electron');
2
+ const path = require('path');
3
+ const EeApp = require('./eeApp');
4
+ const debug = require('debug')('ee-core:Appliaction');
5
+
6
+ class Appliaction extends EeApp {
7
+ constructor() {
8
+
9
+ // 初始化环境变量
10
+ // const opt = this.initEnv();
11
+ const { env } = process;
12
+
13
+ // 路径不能使用绝对,打包前后有问题
14
+ let options = {
15
+ env: 'prod',
16
+ serverScope: '',
17
+ type: 'application',
18
+ baseDir: path.join(app.getAppPath(), 'electron'),
19
+ homeDir: app.getAppPath(),
20
+ framework: path.join(app.getAppPath(), 'node_modules', 'ee-core'),
21
+ appName: app.getName(),
22
+ userHome: app.getPath('home'),
23
+ appData: app.getPath('appData'),
24
+ appUserData: app.getPath('userData'),
25
+ //logsDir: app.getPath('logs'),
26
+ appVersion: app.getVersion(),
27
+ isPackaged: app.isPackaged,
28
+ execDir: app.getAppPath()
29
+ }
30
+
31
+ // argv
32
+ let hotReload = false;
33
+ for (let i = 0; i < process.argv.length; i++) {
34
+ const tmpArgv = process.argv[i]
35
+ if (tmpArgv.indexOf('--env=') !== -1) {
36
+ options.env = tmpArgv.substring(6);
37
+ }
38
+ if (tmpArgv.indexOf('--hot-reload=') !== -1) {
39
+ hotReload = tmpArgv.substring(13) == 1 ? true : false;
40
+ }
41
+ }
42
+
43
+ // exec directory (exe dmg dep) for prod
44
+ if (options.env == 'prod' && app.isPackaged) {
45
+ options.execDir = path.dirname(app.getPath('exe'));
46
+ }
47
+
48
+ // normalize env
49
+ env.NODE_ENV = 'production';
50
+ env.EE_HOME = options.homeDir;
51
+ env.EE_SERVER_ENV = options.env;
52
+ env.EE_SERVER_SCOPE = options.serverScope;
53
+ env.EE_USER_HOME = options.userHome;
54
+ env.EE_APP_DATA = options.appData;
55
+ env.EE_APP_USER_DATA = options.appUserData;
56
+ env.EE_MAIN_PORT = null;
57
+ env.EE_SOCKET_PORT = null;
58
+ env.EE_HTTP_PORT = null;
59
+ env.HOT_RELOAD = hotReload;
60
+ debug('options:%j', options)
61
+
62
+ super(options);
63
+ this.initialize();
64
+ }
65
+
66
+ async initialize () {
67
+
68
+ await this.createPorts();
69
+
70
+ this.startSocket();
71
+ //return;
72
+
73
+ await this.ready();
74
+
75
+ await this.createElectronApp();
76
+
77
+ await this.catchLog();
78
+ }
79
+ }
80
+
81
81
  module.exports = Appliaction;
package/lib/baseApp.js CHANGED
@@ -1,119 +1,119 @@
1
- 'use strict';
2
-
3
- const EeAppCore = require('../core/index').EeCore;
4
- const EE_PATH = Symbol.for('ee#eePath');
5
- const path = require('path');
6
- const EE_LOADER = Symbol.for('ee#loader');
7
- const AppLoader = require('./appLoader');
8
- const LOGGERS = Symbol('EeApplication#loggers');
9
- const ELoggers = require('./logger');
10
- const HttpClient = require('./httpclient');
11
- const HTTPCLIENT = Symbol('EeApplication#httpclient');
12
-
13
- class BaseApp extends EeAppCore {
14
- constructor (options = {}) {
15
-
16
- super(options);
17
-
18
- this.HttpClient = HttpClient;
19
-
20
- this.loader.loadConfig();
21
-
22
- // 缓存配置
23
- this.getCoreDB().setItem('config', this.config);
24
-
25
- this.loader.load();
26
-
27
- // TODO 这个不行,要么每次new对象,要么所有地方都用同一个实例,否则会出现数据无法刷新的情况
28
- //this.coreDB = this.getCoreDB();
29
-
30
- this.coreLogger.info('[ee-core:baseApp] start loaded lib modules');
31
-
32
- }
33
-
34
- get [EE_PATH]() {
35
- return path.join(__dirname, '..');
36
- }
37
-
38
- get [EE_LOADER]() {
39
- return AppLoader;
40
- }
41
-
42
- /**
43
- * loggers
44
- * @member {Object}
45
- * @since 1.0.0
46
- */
47
- get loggers() {
48
- if (!this[LOGGERS]) {
49
- this[LOGGERS] = ELoggers.getInstance(this.config);
50
- }
51
- return this[LOGGERS];
52
- }
53
-
54
- /**
55
- * Get logger by name, it's equal to app.loggers['name'],
56
- * but you can extend it with your own logical.
57
- * @param {String} name - logger name
58
- * @return {Logger} logger
59
- */
60
- getLogger(name) {
61
- return this.loggers[name] || null;
62
- }
63
-
64
- /**
65
- * application logger, log file is `$HOME/logs/ee.log`
66
- * @member {Logger}
67
- * @since 1.0.0
68
- */
69
- get logger() {
70
- return this.getLogger('logger');
71
- }
72
-
73
- /**
74
- * core logger for framework and plugins, log file is `$HOME/logs/ee-core.log`
75
- * @member {Logger}
76
- * @since 1.0.0
77
- */
78
- get coreLogger() {
79
- return this.getLogger('coreLogger');
80
- }
81
-
82
- /**
83
- * @class core存储模块
84
- * @since 1.0.0
85
- */
86
- getCoreDB () {
87
- const db = require('./storage/index').JsonDB.connection('system');
88
- return db;
89
- }
90
-
91
- /**
92
- * @class curl
93
- * @since 1.0.0
94
- */
95
- curl(url, opts) {
96
- return this.httpclient.request(url, opts);
97
- }
98
-
99
- /**
100
- * HttpClient instance
101
- * @see https://github.com/node-modules/urllib
102
- * @member {HttpClient}
103
- */
104
- get httpclient() {
105
- if (!this[HTTPCLIENT]) {
106
- this[HTTPCLIENT] = new this.HttpClient(this);
107
- }
108
- return this[HTTPCLIENT];
109
- }
110
-
111
- /**
112
- * core app have been loaded
113
- */
114
- async ready () {
115
- // do some things
116
- }
117
- }
118
-
1
+ 'use strict';
2
+
3
+ const EeAppCore = require('../core/index').EeCore;
4
+ const EE_PATH = Symbol.for('ee#eePath');
5
+ const path = require('path');
6
+ const EE_LOADER = Symbol.for('ee#loader');
7
+ const AppLoader = require('./appLoader');
8
+ const LOGGERS = Symbol('EeApplication#loggers');
9
+ const ELoggers = require('./logger');
10
+ const HttpClient = require('./httpclient');
11
+ const HTTPCLIENT = Symbol('EeApplication#httpclient');
12
+
13
+ class BaseApp extends EeAppCore {
14
+ constructor (options = {}) {
15
+
16
+ super(options);
17
+
18
+ this.HttpClient = HttpClient;
19
+
20
+ this.loader.loadConfig();
21
+
22
+ // 缓存配置
23
+ this.getCoreDB().setItem('config', this.config);
24
+
25
+ this.loader.load();
26
+
27
+ // TODO 这个不行,要么每次new对象,要么所有地方都用同一个实例,否则会出现数据无法刷新的情况
28
+ //this.coreDB = this.getCoreDB();
29
+
30
+ this.coreLogger.info('[ee-core:baseApp] start loaded lib modules');
31
+
32
+ }
33
+
34
+ get [EE_PATH]() {
35
+ return path.join(__dirname, '..');
36
+ }
37
+
38
+ get [EE_LOADER]() {
39
+ return AppLoader;
40
+ }
41
+
42
+ /**
43
+ * loggers
44
+ * @member {Object}
45
+ * @since 1.0.0
46
+ */
47
+ get loggers() {
48
+ if (!this[LOGGERS]) {
49
+ this[LOGGERS] = ELoggers.getInstance(this.config);
50
+ }
51
+ return this[LOGGERS];
52
+ }
53
+
54
+ /**
55
+ * Get logger by name, it's equal to app.loggers['name'],
56
+ * but you can extend it with your own logical.
57
+ * @param {String} name - logger name
58
+ * @return {Logger} logger
59
+ */
60
+ getLogger(name) {
61
+ return this.loggers[name] || null;
62
+ }
63
+
64
+ /**
65
+ * application logger, log file is `$HOME/logs/ee.log`
66
+ * @member {Logger}
67
+ * @since 1.0.0
68
+ */
69
+ get logger() {
70
+ return this.getLogger('logger');
71
+ }
72
+
73
+ /**
74
+ * core logger for framework and plugins, log file is `$HOME/logs/ee-core.log`
75
+ * @member {Logger}
76
+ * @since 1.0.0
77
+ */
78
+ get coreLogger() {
79
+ return this.getLogger('coreLogger');
80
+ }
81
+
82
+ /**
83
+ * @class core存储模块
84
+ * @since 1.0.0
85
+ */
86
+ getCoreDB () {
87
+ const db = require('./storage/index').JsonDB.connection('system');
88
+ return db;
89
+ }
90
+
91
+ /**
92
+ * @class curl
93
+ * @since 1.0.0
94
+ */
95
+ curl(url, opts) {
96
+ return this.httpclient.request(url, opts);
97
+ }
98
+
99
+ /**
100
+ * HttpClient instance
101
+ * @see https://github.com/node-modules/urllib
102
+ * @member {HttpClient}
103
+ */
104
+ get httpclient() {
105
+ if (!this[HTTPCLIENT]) {
106
+ this[HTTPCLIENT] = new this.HttpClient(this);
107
+ }
108
+ return this[HTTPCLIENT];
109
+ }
110
+
111
+ /**
112
+ * core app have been loaded
113
+ */
114
+ async ready () {
115
+ // do some things
116
+ }
117
+ }
118
+
119
119
  module.exports = BaseApp;
package/lib/constant.js CHANGED
@@ -1,29 +1,29 @@
1
- module.exports = {
2
- autoLaunch: {
3
- LOGIN_SETTING_OPTIONS: {
4
- // For Windows
5
- args: [
6
- '--opened-at-login=1'
7
- ]
8
- }
9
- },
10
- storageKey: {
11
- cache: 'cache',
12
- },
13
- ipcChannels: {
14
- appMessage: 'app.message',
15
- appUpdater: 'app.updater'
16
- },
17
- appUpdaterStatus: {
18
- error: -1,
19
- available: 1,
20
- noAvailable: 2,
21
- downloading: 3,
22
- downloaded: 4,
23
- },
24
- socketIo: {
25
- channel: {
26
- partySoftware: 'c1',
27
- }
28
- }
1
+ module.exports = {
2
+ autoLaunch: {
3
+ LOGIN_SETTING_OPTIONS: {
4
+ // For Windows
5
+ args: [
6
+ '--opened-at-login=1'
7
+ ]
8
+ }
9
+ },
10
+ storageKey: {
11
+ cache: 'cache',
12
+ },
13
+ ipcChannels: {
14
+ appMessage: 'app.message',
15
+ appUpdater: 'app.updater'
16
+ },
17
+ appUpdaterStatus: {
18
+ error: -1,
19
+ available: 1,
20
+ noAvailable: 2,
21
+ downloading: 3,
22
+ downloaded: 4,
23
+ },
24
+ socketIo: {
25
+ channel: {
26
+ partySoftware: 'c1',
27
+ }
28
+ }
29
29
  };