@modern-js/bff-core 1.0.1-beta.6 → 1.0.1-beta.7
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.
|
@@ -38,19 +38,31 @@ const clearRouteName = routeName => {
|
|
|
38
38
|
|
|
39
39
|
export const isHandler = input => input && typeof input === 'function';
|
|
40
40
|
|
|
41
|
-
const
|
|
41
|
+
const enableRegister = requireFn => {
|
|
42
|
+
return modulePath => {
|
|
43
|
+
// eslint-disable-next-line node/no-deprecated-api
|
|
44
|
+
if (!require.extensions['.ts']) {
|
|
45
|
+
const {
|
|
46
|
+
register
|
|
47
|
+
} = require('esbuild-register/dist/node');
|
|
48
|
+
|
|
49
|
+
const {
|
|
50
|
+
unregister
|
|
51
|
+
} = register({});
|
|
52
|
+
const requiredModule = requireFn(modulePath);
|
|
53
|
+
unregister();
|
|
54
|
+
return requiredModule;
|
|
55
|
+
}
|
|
42
56
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
57
|
+
const requiredModule = requireFn(modulePath);
|
|
58
|
+
return requiredModule;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
47
61
|
|
|
48
|
-
|
|
49
|
-
unregister
|
|
50
|
-
} = register({}); // 测试环境不走缓存,因为缓存的 handler 文件,会被 mockAPI 函数进行 mock,升级 jest28,setupFilesAfterEnv 能做异步操作的话,可解此问题
|
|
62
|
+
const isFunction = input => input && {}.toString.call(input) === '[object Function]';
|
|
51
63
|
|
|
52
|
-
|
|
53
|
-
const module =
|
|
64
|
+
export const requireHandlerModule = enableRegister(modulePath => {
|
|
65
|
+
const module = require(modulePath);
|
|
54
66
|
|
|
55
67
|
if (isFunction(module)) {
|
|
56
68
|
return {
|
|
@@ -58,9 +70,8 @@ export const requireHandlerModule = modulePath => {
|
|
|
58
70
|
};
|
|
59
71
|
}
|
|
60
72
|
|
|
61
|
-
unregister();
|
|
62
73
|
return module;
|
|
63
|
-
};
|
|
74
|
+
});
|
|
64
75
|
|
|
65
76
|
const routeValue = routePath => {
|
|
66
77
|
if (routePath.includes(':')) {
|
|
@@ -57,19 +57,31 @@ const isHandler = input => input && typeof input === 'function';
|
|
|
57
57
|
|
|
58
58
|
exports.isHandler = isHandler;
|
|
59
59
|
|
|
60
|
-
const
|
|
60
|
+
const enableRegister = requireFn => {
|
|
61
|
+
return modulePath => {
|
|
62
|
+
// eslint-disable-next-line node/no-deprecated-api
|
|
63
|
+
if (!require.extensions['.ts']) {
|
|
64
|
+
const {
|
|
65
|
+
register
|
|
66
|
+
} = require('esbuild-register/dist/node');
|
|
67
|
+
|
|
68
|
+
const {
|
|
69
|
+
unregister
|
|
70
|
+
} = register({});
|
|
71
|
+
const requiredModule = requireFn(modulePath);
|
|
72
|
+
unregister();
|
|
73
|
+
return requiredModule;
|
|
74
|
+
}
|
|
61
75
|
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
76
|
+
const requiredModule = requireFn(modulePath);
|
|
77
|
+
return requiredModule;
|
|
78
|
+
};
|
|
79
|
+
};
|
|
66
80
|
|
|
67
|
-
|
|
68
|
-
unregister
|
|
69
|
-
} = register({}); // 测试环境不走缓存,因为缓存的 handler 文件,会被 mockAPI 函数进行 mock,升级 jest28,setupFilesAfterEnv 能做异步操作的话,可解此问题
|
|
81
|
+
const isFunction = input => input && {}.toString.call(input) === '[object Function]';
|
|
70
82
|
|
|
71
|
-
|
|
72
|
-
const module =
|
|
83
|
+
const requireHandlerModule = enableRegister(modulePath => {
|
|
84
|
+
const module = require(modulePath);
|
|
73
85
|
|
|
74
86
|
if (isFunction(module)) {
|
|
75
87
|
return {
|
|
@@ -77,10 +89,8 @@ const requireHandlerModule = modulePath => {
|
|
|
77
89
|
};
|
|
78
90
|
}
|
|
79
91
|
|
|
80
|
-
unregister();
|
|
81
92
|
return module;
|
|
82
|
-
};
|
|
83
|
-
|
|
93
|
+
});
|
|
84
94
|
exports.requireHandlerModule = requireHandlerModule;
|
|
85
95
|
|
|
86
96
|
const routeValue = routePath => {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { APIHandlerInfo } from './types';
|
|
1
|
+
import { APIHandlerInfo, HandlerModule } from './types';
|
|
2
2
|
declare type MaybeAsync<I> = I | Promise<I>;
|
|
3
3
|
export declare type NormalHandler = (...args: any[]) => any;
|
|
4
4
|
export declare type Handler<I, O> = (input: I) => MaybeAsync<O>;
|
|
5
5
|
export declare const getFiles: (lambdaDir: string, rules: string | string[]) => string[];
|
|
6
6
|
export declare const getPathFromFilename: (baseDir: string, filename: string) => string;
|
|
7
7
|
export declare const isHandler: (input: any) => input is Handler<any, any>;
|
|
8
|
-
export declare const requireHandlerModule: (modulePath: string) =>
|
|
8
|
+
export declare const requireHandlerModule: (modulePath: string) => HandlerModule;
|
|
9
9
|
export declare const sortRoutes: (apiHandlers: APIHandlerInfo[]) => APIHandlerInfo[];
|
|
10
10
|
export {};
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"modern",
|
|
12
12
|
"modern.js"
|
|
13
13
|
],
|
|
14
|
-
"version": "1.0.1-beta.
|
|
14
|
+
"version": "1.0.1-beta.7",
|
|
15
15
|
"jsnext:source": "./src/index.ts",
|
|
16
16
|
"types": "./dist/types/index.d.ts",
|
|
17
17
|
"main": "./dist/js/node/index.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@babel/runtime": "^7.
|
|
27
|
+
"@babel/runtime": "^7.18.0",
|
|
28
28
|
"@modern-js/bff-runtime": "^1.2.3",
|
|
29
29
|
"@modern-js/utils": "^1.7.6",
|
|
30
30
|
"esbuild": "^0.14.38",
|