alemonjs 2.0.1 → 2.0.2
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.
- package/bin/start.js +26 -5
- package/lib/app/utils.d.ts +2 -1
- package/lib/app/utils.js +25 -3
- package/lib/index.d.ts +4 -3
- package/lib/index.js +12 -15
- package/lib/jsx.js +2 -2
- package/package.json +1 -1
package/bin/start.js
CHANGED
|
@@ -1,7 +1,30 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import fs from 'fs'
|
|
5
|
+
import { createRequire } from 'module';
|
|
6
|
+
const require = createRequire(import.meta.url);
|
|
7
|
+
|
|
8
|
+
const createExports = (packageJson) => {
|
|
9
|
+
if (packageJson?.exports) {
|
|
10
|
+
if (typeof packageJson.exports === 'string') {
|
|
11
|
+
return packageJson.exports;
|
|
12
|
+
} else if (typeof packageJson.exports === 'object') {
|
|
13
|
+
return packageJson.exports['.'] || packageJson.exports['./index.js'];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const getInputExportPath = (input) => {
|
|
19
|
+
const packageJsonPath = path.join(input ?? process.cwd(), 'package.json');
|
|
20
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
21
|
+
const packageJson = require(packageJsonPath);
|
|
22
|
+
const main = packageJson?.main || createExports(packageJson);
|
|
23
|
+
if (main) {
|
|
24
|
+
return main;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
5
28
|
|
|
6
29
|
/**
|
|
7
30
|
*
|
|
@@ -9,9 +32,7 @@ import { join } from 'path'
|
|
|
9
32
|
*/
|
|
10
33
|
export const start = () => {
|
|
11
34
|
// 读取配置文件
|
|
12
|
-
const
|
|
13
|
-
const start = readFileSync(dir, 'utf-8')
|
|
14
|
-
const { main } = JSON.parse(start) ?? {}
|
|
35
|
+
const main = getInputExportPath();
|
|
15
36
|
import('../lib/index.js').then(res => {
|
|
16
37
|
res.start(main)
|
|
17
38
|
})
|
package/lib/app/utils.d.ts
CHANGED
|
@@ -54,5 +54,6 @@ declare const showErrorModule: (e: Error) => void;
|
|
|
54
54
|
* @deprecated
|
|
55
55
|
*/
|
|
56
56
|
declare const ErrorModule: (e: Error) => void;
|
|
57
|
+
declare const getInputExportPath: (input?: string) => any;
|
|
57
58
|
|
|
58
|
-
export { ErrorModule, createEventName, createHash, getRecursiveDirFiles, showErrorModule, stringToNumber, useUserHashKey };
|
|
59
|
+
export { ErrorModule, createEventName, createHash, getInputExportPath, getRecursiveDirFiles, showErrorModule, stringToNumber, useUserHashKey };
|
package/lib/app/utils.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import crypto from 'crypto';
|
|
2
|
-
import { existsSync, readdirSync } from 'fs';
|
|
3
|
-
import { join } from 'path';
|
|
2
|
+
import fs, { existsSync, readdirSync } from 'fs';
|
|
3
|
+
import path, { join } from 'path';
|
|
4
|
+
import { createRequire } from 'module';
|
|
4
5
|
|
|
6
|
+
const require = createRequire(import.meta.url);
|
|
5
7
|
/**
|
|
6
8
|
* 将字符串转为定长字符串
|
|
7
9
|
* @param str 输入字符串
|
|
@@ -113,5 +115,25 @@ const showErrorModule = (e) => {
|
|
|
113
115
|
* @deprecated
|
|
114
116
|
*/
|
|
115
117
|
const ErrorModule = showErrorModule;
|
|
118
|
+
const createExports = (packageJson) => {
|
|
119
|
+
if (packageJson?.exports) {
|
|
120
|
+
if (typeof packageJson.exports === 'string') {
|
|
121
|
+
return packageJson.exports;
|
|
122
|
+
}
|
|
123
|
+
else if (typeof packageJson.exports === 'object') {
|
|
124
|
+
return packageJson.exports['.'] || packageJson.exports['./index.js'];
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
const getInputExportPath = (input) => {
|
|
129
|
+
const packageJsonPath = path.join(input ?? process.cwd(), 'package.json');
|
|
130
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
131
|
+
const packageJson = require(packageJsonPath);
|
|
132
|
+
const main = packageJson?.main || createExports(packageJson);
|
|
133
|
+
if (main) {
|
|
134
|
+
return main;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
};
|
|
116
138
|
|
|
117
|
-
export { ErrorModule, createEventName, createHash, getRecursiveDirFiles, showErrorModule, stringToNumber, useUserHashKey };
|
|
139
|
+
export { ErrorModule, createEventName, createHash, getInputExportPath, getRecursiveDirFiles, showErrorModule, stringToNumber, useUserHashKey };
|
package/lib/index.d.ts
CHANGED
|
@@ -27,18 +27,19 @@ export { Image, ImageFile, ImageURL, Mention, Text } from './app/hook-message-fo
|
|
|
27
27
|
export { createSelects, unChildren, unMount, useMention, useSend } from './app/hook-use-api.js';
|
|
28
28
|
export { eventState, onState, unEventState, unState, useState } from './app/hook-use-state.js';
|
|
29
29
|
export { useObserver, useSubscribe } from './app/hook-use-subscribe.js';
|
|
30
|
-
export { ErrorModule, createEventName, createHash, getRecursiveDirFiles, showErrorModule, stringToNumber, useUserHashKey } from './app/utils.js';
|
|
30
|
+
export { ErrorModule, createEventName, createHash, getInputExportPath, getRecursiveDirFiles, showErrorModule, stringToNumber, useUserHashKey } from './app/utils.js';
|
|
31
31
|
export { ConfigCore, getConfig, getConfigValue } from './config.js';
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* 运行指定 main
|
|
35
|
-
* @param input
|
|
35
|
+
* @param input 入口地址
|
|
36
36
|
* @returns
|
|
37
37
|
*/
|
|
38
38
|
declare const run: (input: string) => void;
|
|
39
39
|
/**
|
|
40
40
|
* 启动
|
|
41
|
-
* @param input
|
|
41
|
+
* @param input (可选)main入口地址,默认选择 package.json 中的 main
|
|
42
|
+
* @param pm (可选)平台名称,默认@alemonjs/gui。
|
|
42
43
|
*/
|
|
43
44
|
declare const start: (input?: string, pm?: string) => Promise<void>;
|
|
44
45
|
|
package/lib/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { existsSync } from 'fs';
|
|
|
5
5
|
import { getConfig } from './config.js';
|
|
6
6
|
export { ConfigCore, getConfigValue } from './config.js';
|
|
7
7
|
import { loadChildren, loadChildrenFile } from './app/load.js';
|
|
8
|
-
import { showErrorModule } from './app/utils.js';
|
|
8
|
+
import { showErrorModule, getInputExportPath } from './app/utils.js';
|
|
9
9
|
export { ErrorModule, createEventName, createHash, getRecursiveDirFiles, stringToNumber, useUserHashKey } from './app/utils.js';
|
|
10
10
|
export { createSendDataFormat, sendToChannel, sendToUser } from './app/api.js';
|
|
11
11
|
export { defineBot, definePlatform } from './app/event-bot.js';
|
|
@@ -20,18 +20,16 @@ export { useObserver, useSubscribe } from './app/hook-use-subscribe.js';
|
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* 运行指定 main
|
|
23
|
-
* @param input
|
|
23
|
+
* @param input 入口地址
|
|
24
24
|
* @returns
|
|
25
25
|
*/
|
|
26
26
|
const run = (input) => {
|
|
27
|
-
if (!input)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
27
|
+
if (!input || input == '')
|
|
28
|
+
return;
|
|
29
|
+
let mainPath = join(process.cwd(), input);
|
|
31
30
|
// 路径
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
logger.error(`The file ${mainPath} does not exist`);
|
|
31
|
+
if (!existsSync(input)) {
|
|
32
|
+
logger.error('未找到主要入口文件', mainPath);
|
|
35
33
|
return;
|
|
36
34
|
}
|
|
37
35
|
// 指定运行的,name识别为 'main:apps:xxx'
|
|
@@ -39,7 +37,8 @@ const run = (input) => {
|
|
|
39
37
|
};
|
|
40
38
|
/**
|
|
41
39
|
* 启动
|
|
42
|
-
* @param input
|
|
40
|
+
* @param input (可选)main入口地址,默认选择 package.json 中的 main
|
|
41
|
+
* @param pm (可选)平台名称,默认@alemonjs/gui。
|
|
43
42
|
*/
|
|
44
43
|
const start = async (input, pm) => {
|
|
45
44
|
const cfg = getConfig();
|
|
@@ -83,14 +82,12 @@ const start = async (input, pm) => {
|
|
|
83
82
|
}
|
|
84
83
|
// 运行本地模块
|
|
85
84
|
try {
|
|
86
|
-
const dir = input ?? cfg.argv?.main ?? cfg.value?.main;
|
|
87
|
-
|
|
88
|
-
run(dir);
|
|
89
|
-
}
|
|
85
|
+
const dir = input ?? cfg.argv?.main ?? cfg.value?.main ?? getInputExportPath();
|
|
86
|
+
run(dir);
|
|
90
87
|
}
|
|
91
88
|
catch (e) {
|
|
92
89
|
logger.error(e);
|
|
93
90
|
}
|
|
94
91
|
};
|
|
95
92
|
|
|
96
|
-
export { getConfig, run, showErrorModule, start };
|
|
93
|
+
export { getConfig, getInputExportPath, run, showErrorModule, start };
|
package/lib/jsx.js
CHANGED
|
@@ -8,10 +8,10 @@ import './app/event-utlis.js';
|
|
|
8
8
|
import { Text as Text$1, ImageURL as ImageURL$1, ImageFile as ImageFile$1, Image as Image$1, Mention as Mention$1 } from './app/hook-message-format.js';
|
|
9
9
|
import { useSend as useSend$1 } from './app/hook-use-api.js';
|
|
10
10
|
import './app/hook-use-state.js';
|
|
11
|
-
import '
|
|
11
|
+
import './app/utils.js';
|
|
12
|
+
import './global.js';
|
|
12
13
|
import 'fs';
|
|
13
14
|
import 'path';
|
|
14
|
-
import './global.js';
|
|
15
15
|
import 'yaml';
|
|
16
16
|
|
|
17
17
|
/**
|