k99 0.2.0 → 0.3.0-beta.1
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/LICENSE +1 -1
- package/README.md +8 -0
- package/README.zh.md +8 -0
- package/browser/package.json +8 -0
- package/browser/types.d.ts +20 -0
- package/cli/command/create.js +1 -2
- package/cli/command/index.js +1 -2
- package/cli/command/init.js +3 -5
- package/cli/command/start.js +9 -10
- package/cli/index.js +3 -4
- package/cli/opt/bind.js +1 -2
- package/cli/opt/index.js +1 -2
- package/cli/opt/listen.js +1 -2
- package/cli/opt/path.js +1 -2
- package/cli/opt/port.js +1 -2
- package/cli/opt/show-router.js +1 -2
- package/dist/k99.browser.js +3110 -0
- package/dist/k99.browser.min.js +6 -0
- package/dist/k99.esm.js +3082 -0
- package/dist/k99.esm.min.js +6 -0
- package/dist/k99.js +3104 -0
- package/dist/k99.mjs +3082 -0
- package/dist/k99Browser.browser.js +490 -0
- package/dist/k99Browser.browser.min.js +6 -0
- package/dist/k99Browser.esm.js +475 -0
- package/dist/k99Browser.esm.min.js +6 -0
- package/dist/k99Browser.js +484 -0
- package/dist/k99Browser.mjs +475 -0
- package/dist/k99Services.browser.js +145 -0
- package/dist/k99Services.browser.min.js +6 -0
- package/dist/k99Services.esm.js +136 -0
- package/dist/k99Services.esm.min.js +6 -0
- package/dist/k99Services.js +141 -0
- package/dist/k99Services.mjs +136 -0
- package/node/index.js +1386 -0
- package/node/index.mjs +1350 -0
- package/node/package.json +5 -0
- package/node/types.d.ts +166 -0
- package/package.json +77 -11
- package/services/package.json +8 -0
- package/services/types.d.ts +22 -0
- package/starter.js +0 -1
- package/types.d.ts +748 -0
- package/Container.d.ts +0 -92
- package/Container.js +0 -242
- package/Container.js.map +0 -1
- package/Controller/index.d.ts +0 -178
- package/Controller/index.js +0 -576
- package/Controller/index.js.map +0 -1
- package/Controller/patch/cookie.d.ts +0 -33
- package/Controller/patch/cookie.js +0 -168
- package/Controller/patch/cookie.js.map +0 -1
- package/Controller/patch/index.d.ts +0 -7
- package/Controller/patch/index.js +0 -26
- package/Controller/patch/index.js.map +0 -1
- package/Controller/patch/render.d.ts +0 -5
- package/Controller/patch/render.js +0 -24
- package/Controller/patch/render.js.map +0 -1
- package/ExitSignal.d.ts +0 -14
- package/ExitSignal.js +0 -29
- package/ExitSignal.js.map +0 -1
- package/Extension.d.ts +0 -56
- package/Extension.js +0 -93
- package/Extension.js.map +0 -1
- package/ExtensionContainer.d.ts +0 -55
- package/ExtensionContainer.js +0 -105
- package/ExtensionContainer.js.map +0 -1
- package/Plugin.d.ts +0 -52
- package/Plugin.js +0 -278
- package/Plugin.js.map +0 -1
- package/Preprocessor.d.ts +0 -86
- package/Preprocessor.js +0 -135
- package/Preprocessor.js.map +0 -1
- package/Router/assets.d.ts +0 -33
- package/Router/assets.js +0 -106
- package/Router/assets.js.map +0 -1
- package/Router/callback.d.ts +0 -9
- package/Router/callback.js +0 -152
- package/Router/callback.js.map +0 -1
- package/Router/extendsInterface.d.ts +0 -8
- package/Router/extendsInterface.js +0 -43
- package/Router/extendsInterface.js.map +0 -1
- package/Router/index.d.ts +0 -184
- package/Router/index.js +0 -615
- package/Router/index.js.map +0 -1
- package/Router/log.d.ts +0 -23
- package/Router/log.js +0 -120
- package/Router/log.js.map +0 -1
- package/Router/order.d.ts +0 -14
- package/Router/order.js +0 -71
- package/Router/order.js.map +0 -1
- package/Router/register.d.ts +0 -9
- package/Router/register.js +0 -252
- package/Router/register.js.map +0 -1
- package/Router/registerManager.d.ts +0 -22
- package/Router/registerManager.js +0 -102
- package/Router/registerManager.js.map +0 -1
- package/Router/scan.d.ts +0 -2
- package/Router/scan.js +0 -72
- package/Router/scan.js.map +0 -1
- package/Router/setHandleItem.d.ts +0 -3
- package/Router/setHandleItem.js +0 -94
- package/Router/setHandleItem.js.map +0 -1
- package/Router/settings.d.ts +0 -12
- package/Router/settings.js +0 -74
- package/Router/settings.js.map +0 -1
- package/Router/start.d.ts +0 -3
- package/Router/start.js +0 -270
- package/Router/start.js.map +0 -1
- package/Router/vars.d.ts +0 -10
- package/Router/vars.js +0 -40
- package/Router/vars.js.map +0 -1
- package/Service.d.ts +0 -12
- package/Service.js +0 -20
- package/Service.js.map +0 -1
- package/cli/command/create.d.ts +0 -7
- package/cli/command/create.js.map +0 -1
- package/cli/command/index.d.ts +0 -7
- package/cli/command/index.js.map +0 -1
- package/cli/command/init.d.ts +0 -6
- package/cli/command/init.js.map +0 -1
- package/cli/command/start.d.ts +0 -6
- package/cli/command/start.js.map +0 -1
- package/cli/index.d.ts +0 -2
- package/cli/index.js.map +0 -1
- package/cli/opt/bind.d.ts +0 -3
- package/cli/opt/bind.js.map +0 -1
- package/cli/opt/index.d.ts +0 -16
- package/cli/opt/index.js.map +0 -1
- package/cli/opt/listen.d.ts +0 -3
- package/cli/opt/listen.js.map +0 -1
- package/cli/opt/path.d.ts +0 -3
- package/cli/opt/path.js.map +0 -1
- package/cli/opt/port.d.ts +0 -3
- package/cli/opt/port.js.map +0 -1
- package/cli/opt/show-router.d.ts +0 -3
- package/cli/opt/show-router.js.map +0 -1
- package/index.d.ts +0 -354
- package/index.js +0 -155
- package/index.js.map +0 -1
- package/setOptions.d.ts +0 -12
- package/setOptions.js +0 -60
- package/setOptions.js.map +0 -1
- package/starter.d.ts +0 -2
- package/starter.js.map +0 -1
- package/symbols.d.ts +0 -13
- package/symbols.js +0 -31
- package/symbols.js.map +0 -1
- package/util/index.d.ts +0 -5
- package/util/index.js +0 -92
- package/util/index.js.map +0 -1
- package/util/stream.d.ts +0 -19
- package/util/stream.js +0 -66
- package/util/stream.js.map +0 -1
package/Plugin.d.ts
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { Order, Hooks, Resource } from './index';
|
|
2
|
-
export declare const nameRegex: RegExp;
|
|
3
|
-
declare class Plugin {
|
|
4
|
-
static get configFileNames(): Readonly<string[]>;
|
|
5
|
-
/**
|
|
6
|
-
* 查找配置路径
|
|
7
|
-
* @param path 起始路径
|
|
8
|
-
*/
|
|
9
|
-
static findPath(path?: string): Promise<string>;
|
|
10
|
-
constructor(name: string, path: string, exports?: object);
|
|
11
|
-
/** 调用钩子 */
|
|
12
|
-
callHook(hookName: string): Promise<any>;
|
|
13
|
-
/**
|
|
14
|
-
* 初始化插件信息
|
|
15
|
-
*/
|
|
16
|
-
private init;
|
|
17
|
-
/** 资源 */
|
|
18
|
-
get resources(): Resource[];
|
|
19
|
-
/** 顺序 */
|
|
20
|
-
get order(): Order;
|
|
21
|
-
/** npm 包列表 */
|
|
22
|
-
get packages(): string[];
|
|
23
|
-
/**
|
|
24
|
-
* 插件目录列表
|
|
25
|
-
* 仅入口包有效
|
|
26
|
-
*/
|
|
27
|
-
get plugins(): string[];
|
|
28
|
-
/**
|
|
29
|
-
* 插件浅扫描目录
|
|
30
|
-
* 仅入口包有效
|
|
31
|
-
*/
|
|
32
|
-
get scan(): string;
|
|
33
|
-
}
|
|
34
|
-
interface Plugin {
|
|
35
|
-
/** 包名 */
|
|
36
|
-
readonly name: string;
|
|
37
|
-
/** 路径 */
|
|
38
|
-
readonly path: string;
|
|
39
|
-
/** 导出的信息 */
|
|
40
|
-
readonly exports: object;
|
|
41
|
-
/** 版本 */
|
|
42
|
-
readonly version: string;
|
|
43
|
-
/** 作者 */
|
|
44
|
-
readonly author: string;
|
|
45
|
-
/** 开源协议 */
|
|
46
|
-
readonly license: string;
|
|
47
|
-
/** 钩子配置 */
|
|
48
|
-
readonly hooks: Hooks;
|
|
49
|
-
/** 依赖项 */
|
|
50
|
-
readonly dependencies: string[];
|
|
51
|
-
}
|
|
52
|
-
export default Plugin;
|
package/Plugin.js
DELETED
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = exports.nameRegex = void 0;
|
|
7
|
-
|
|
8
|
-
var pathFn = _interopRequireWildcard(require("path"));
|
|
9
|
-
|
|
10
|
-
var fsFn = _interopRequireWildcard(require("fs"));
|
|
11
|
-
|
|
12
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
13
|
-
|
|
14
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
-
|
|
16
|
-
/** 判断是否为文件 */
|
|
17
|
-
async function isFile(path) {
|
|
18
|
-
return new Promise((resolve, reject) => fsFn.stat(path, (err, stats) => err ? reject(err) : resolve(stats))).then(s => s.isFile()).catch(() => false);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const nameRegex = /^[a-z][a-zA-Z0-9]*(\.[a-z][a-zA-Z0-9]*)*$/;
|
|
22
|
-
exports.nameRegex = nameRegex;
|
|
23
|
-
const configFileNames = ['k99.config.js', '.k99.config.js', 'k99.config.json', '.k99.config.json'];
|
|
24
|
-
|
|
25
|
-
class Plugin {
|
|
26
|
-
static get configFileNames() {
|
|
27
|
-
return Array.from(configFileNames);
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* 查找配置路径
|
|
31
|
-
* @param path 起始路径
|
|
32
|
-
*/
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
static async findPath(path = '') {
|
|
36
|
-
let findPath = path = pathFn.resolve(path);
|
|
37
|
-
|
|
38
|
-
for (;;) {
|
|
39
|
-
for (let f of configFileNames) {
|
|
40
|
-
const p = pathFn.join(findPath, f);
|
|
41
|
-
|
|
42
|
-
if (!(await isFile(p))) {
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return path;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const p = pathFn.dirname(findPath);
|
|
50
|
-
|
|
51
|
-
if (p === findPath) {
|
|
52
|
-
return path;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
findPath = p;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
constructor(name, path, exports = {}) {
|
|
60
|
-
Reflect.defineProperty(this, 'name', {
|
|
61
|
-
value: name,
|
|
62
|
-
configurable: true,
|
|
63
|
-
enumerable: true
|
|
64
|
-
});
|
|
65
|
-
Reflect.defineProperty(this, 'path', {
|
|
66
|
-
value: path,
|
|
67
|
-
configurable: true,
|
|
68
|
-
enumerable: true
|
|
69
|
-
});
|
|
70
|
-
Reflect.defineProperty(this, 'exports', {
|
|
71
|
-
value: exports || {},
|
|
72
|
-
configurable: true,
|
|
73
|
-
enumerable: true
|
|
74
|
-
});
|
|
75
|
-
let {
|
|
76
|
-
version,
|
|
77
|
-
author,
|
|
78
|
-
license,
|
|
79
|
-
hooks,
|
|
80
|
-
dependencies
|
|
81
|
-
} = this.exports;
|
|
82
|
-
version = typeof version === 'string' ? version : '';
|
|
83
|
-
dependencies = Array.isArray(dependencies) ? dependencies.filter(it => nameRegex.test(it)) : [];
|
|
84
|
-
author = typeof author === 'string' ? author : '';
|
|
85
|
-
license = typeof license === 'string' ? license : '';
|
|
86
|
-
hooks = typeof hooks === 'object' && hooks || {};
|
|
87
|
-
Reflect.defineProperty(this, 'version', {
|
|
88
|
-
value: version,
|
|
89
|
-
configurable: true,
|
|
90
|
-
enumerable: true
|
|
91
|
-
});
|
|
92
|
-
Reflect.defineProperty(this, 'dependencies', {
|
|
93
|
-
value: dependencies,
|
|
94
|
-
configurable: true,
|
|
95
|
-
enumerable: true
|
|
96
|
-
});
|
|
97
|
-
Reflect.defineProperty(this, 'author', {
|
|
98
|
-
value: author,
|
|
99
|
-
configurable: true,
|
|
100
|
-
enumerable: true
|
|
101
|
-
});
|
|
102
|
-
Reflect.defineProperty(this, 'license', {
|
|
103
|
-
value: license,
|
|
104
|
-
configurable: true,
|
|
105
|
-
enumerable: true
|
|
106
|
-
});
|
|
107
|
-
Reflect.defineProperty(this, 'hooks', {
|
|
108
|
-
value: hooks,
|
|
109
|
-
configurable: true,
|
|
110
|
-
enumerable: true
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
/** 调用钩子 */
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
async callHook(hookName) {
|
|
117
|
-
const {
|
|
118
|
-
hooks,
|
|
119
|
-
path
|
|
120
|
-
} = this;
|
|
121
|
-
const hook = hooks[hookName];
|
|
122
|
-
|
|
123
|
-
if (!hook) {
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
if (typeof hook === 'function') {
|
|
128
|
-
return hook();
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
if (typeof hook === 'string') {
|
|
132
|
-
return Promise.resolve().then(() => _interopRequireWildcard(require(`${pathFn.join(path, 'hooks', hook)}`)));
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* 初始化插件信息
|
|
137
|
-
*/
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
init() {
|
|
141
|
-
let {
|
|
142
|
-
resources,
|
|
143
|
-
order
|
|
144
|
-
} = this.exports; // 资源
|
|
145
|
-
|
|
146
|
-
if (!Array.isArray(resources)) {
|
|
147
|
-
resources = [];
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
resources = resources.map(r => {
|
|
151
|
-
if (!r) {
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
if (typeof r !== 'object') {
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
let {
|
|
160
|
-
type,
|
|
161
|
-
path,
|
|
162
|
-
scope
|
|
163
|
-
} = r;
|
|
164
|
-
|
|
165
|
-
if (!type) {
|
|
166
|
-
return;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
if (typeof path !== 'string') {
|
|
170
|
-
path = '';
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
if (typeof scope !== 'string') {
|
|
174
|
-
scope = '';
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
return {
|
|
178
|
-
type,
|
|
179
|
-
path,
|
|
180
|
-
scope
|
|
181
|
-
};
|
|
182
|
-
}).filter(Boolean);
|
|
183
|
-
|
|
184
|
-
if (!resources.length) {
|
|
185
|
-
resources = [{
|
|
186
|
-
type: 'app',
|
|
187
|
-
path: 'app',
|
|
188
|
-
scope: ''
|
|
189
|
-
}];
|
|
190
|
-
} // 顺序
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
if (!order || typeof order !== 'string') {
|
|
194
|
-
order = {};
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
Reflect.defineProperty(this, 'resources', {
|
|
198
|
-
value: resources,
|
|
199
|
-
configurable: true
|
|
200
|
-
});
|
|
201
|
-
Reflect.defineProperty(this, 'order', {
|
|
202
|
-
value: order,
|
|
203
|
-
configurable: true
|
|
204
|
-
});
|
|
205
|
-
return {
|
|
206
|
-
resources,
|
|
207
|
-
order
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
/** 资源 */
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
get resources() {
|
|
214
|
-
const {
|
|
215
|
-
resources
|
|
216
|
-
} = this.init();
|
|
217
|
-
return resources;
|
|
218
|
-
}
|
|
219
|
-
/** 顺序 */
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
get order() {
|
|
223
|
-
const {
|
|
224
|
-
order
|
|
225
|
-
} = this.init();
|
|
226
|
-
return order;
|
|
227
|
-
}
|
|
228
|
-
/** npm 包列表 */
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
get packages() {
|
|
232
|
-
let {
|
|
233
|
-
packages
|
|
234
|
-
} = this.exports;
|
|
235
|
-
|
|
236
|
-
if (!Array.isArray(packages)) {
|
|
237
|
-
packages = [];
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
packages = packages.filter(t => t && typeof t === 'string');
|
|
241
|
-
return packages;
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* 插件目录列表
|
|
245
|
-
* 仅入口包有效
|
|
246
|
-
*/
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
get plugins() {
|
|
250
|
-
let {
|
|
251
|
-
plugins
|
|
252
|
-
} = this.exports;
|
|
253
|
-
|
|
254
|
-
if (!Array.isArray(plugins)) {
|
|
255
|
-
plugins = [];
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
plugins = plugins.filter(t => t && typeof t === 'string');
|
|
259
|
-
return plugins;
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* 插件浅扫描目录
|
|
263
|
-
* 仅入口包有效
|
|
264
|
-
*/
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
get scan() {
|
|
268
|
-
let {
|
|
269
|
-
scan
|
|
270
|
-
} = this.exports;
|
|
271
|
-
return typeof scan === 'string' ? scan : '';
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
var _default = Plugin;
|
|
277
|
-
exports.default = _default;
|
|
278
|
-
//# sourceMappingURL=Plugin.js.map
|
package/Plugin.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/k99/Plugin.ts"],"names":["isFile","path","Promise","resolve","reject","fsFn","stat","err","stats","then","s","catch","nameRegex","configFileNames","Plugin","Array","from","findPath","pathFn","f","p","join","dirname","constructor","name","exports","Reflect","defineProperty","value","configurable","enumerable","version","author","license","hooks","dependencies","isArray","filter","it","test","callHook","hookName","hook","init","resources","order","map","r","type","scope","Boolean","length","packages","t","plugins","scan"],"mappings":"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","sourcesContent":["import * as pathFn from 'path';\nimport * as fsFn from 'fs';\n\nimport { Order, Hooks, PluginConfig, Resource } from './index';\n\n/** 判断是否为文件 */\nasync function isFile(path: string): Promise<Boolean> {\n\treturn new Promise<fsFn.Stats>((resolve, reject) => fsFn.stat(path, (err, stats) => err ? reject(err) : resolve(stats)))\n\t\t.then(s => s.isFile()).catch(() => false);\n}\n\nexport const nameRegex = /^[a-z][a-zA-Z0-9]*(\\.[a-z][a-zA-Z0-9]*)*$/;\nconst configFileNames = ['k99.config.js', '.k99.config.js', 'k99.config.json', '.k99.config.json'];\n\nclass Plugin {\n\tstatic get configFileNames(): Readonly<string[]> {\n\t\treturn Array.from(configFileNames);\n\t}\n\t/**\n\t * 查找配置路径\n\t * @param path 起始路径\n\t */\n\tstatic async findPath(path: string = ''): Promise<string> {\n\t\tlet findPath = path = pathFn.resolve(path);\n\t\tfor (;;) {\n\t\t\tfor (let f of configFileNames) {\n\t\t\t\tconst p = pathFn.join(findPath, f);\n\t\t\t\tif (!await isFile(p)) { continue; }\n\t\t\t\treturn path;\n\t\t\t}\n\t\t\tconst p = pathFn.dirname(findPath);\n\t\t\tif (p === findPath) { return path; }\n\t\t\tfindPath = p;\n\t\t}\n\t}\n\tconstructor(name: string, path: string, exports: object = {}) {\n\t\tReflect.defineProperty(this, 'name', { value: name, configurable: true, enumerable: true});\n\t\tReflect.defineProperty(this, 'path', { value: path, configurable: true, enumerable: true});\n\t\tReflect.defineProperty(this, 'exports', { value: exports || {}, configurable: true, enumerable: true});\n\n\t\tlet { version, author, license, hooks, dependencies } = this.exports as PluginConfig;\n\t\tversion = typeof version === 'string' ? version : '';\n\t\tdependencies = Array.isArray(dependencies) ? dependencies.filter(it => nameRegex.test(it)) : [];\n\t\tauthor = typeof author === 'string' ? author : '';\n\t\tlicense = typeof license === 'string' ? license : '';\n\t\thooks = typeof hooks === 'object' && hooks || {};\n\t\tReflect.defineProperty(this, 'version', { value: version, configurable: true, enumerable: true});\n\t\tReflect.defineProperty(this, 'dependencies', { value: dependencies, configurable: true, enumerable: true});\n\t\tReflect.defineProperty(this, 'author', { value: author, configurable: true, enumerable: true});\n\t\tReflect.defineProperty(this, 'license', { value: license, configurable: true, enumerable: true});\n\t\tReflect.defineProperty(this, 'hooks', { value: hooks, configurable: true, enumerable: true});\n\t}\n\t/** 调用钩子 */\n\tasync callHook(hookName: string) {\n\t\tconst { hooks, path } = this;\n\t\tconst hook = hooks[hookName];\n\t\tif (!hook) { return; }\n\t\tif (typeof hook === 'function') { return hook(); }\n\t\tif (typeof hook === 'string') {\n\t\t\treturn import(pathFn.join(path, 'hooks', hook));\n\t\t}\n\t}\n\t/**\n\t * 初始化插件信息\n\t */\n\tprivate init() {\n\t\tlet { resources, order } = this.exports as PluginConfig;\n\n\t\t// 资源\n\t\tif (!Array.isArray(resources)) { resources = []; }\n\t\tresources = resources.map(r => {\n\t\t\tif (!r) { return; }\n\t\t\tif (typeof r !== 'object') { return; }\n\t\t\tlet { type, path, scope } = r;\n\t\t\tif (!type) { return; }\n\t\t\tif (typeof path !== 'string') { path = ''; }\n\t\t\tif (typeof scope !== 'string') { scope = ''; }\n\t\t\treturn { type, path, scope };\n\t\t}).filter(Boolean) as Resource[];\n\t\tif (!resources.length) { resources = [{type: 'app', path: 'app', scope: '' }]; }\n\n\t\t// 顺序\n\t\tif (!order || typeof order !== 'string') { order = {}; }\n\n\t\tReflect.defineProperty(this, 'resources', {value: resources, configurable: true});\n\t\tReflect.defineProperty(this, 'order', {value: order, configurable: true});\n\t\treturn { resources, order };\n\t}\n\t/** 资源 */\n\tget resources(): Resource[] {\n\t\tconst { resources } = this.init();\n\t\treturn resources;\n\t}\n\t/** 顺序 */\n\tget order(): Order {\n\t\tconst { order } = this.init();\n\t\treturn order;\n\t}\n\t/** npm 包列表 */\n\tget packages(): string[] {\n\t\tlet { packages } = this.exports as PluginConfig;\n\t\tif (!Array.isArray(packages)) { packages = []; }\n\t\tpackages = packages.filter(t => t && typeof t === 'string');\n\t\treturn packages;\n\t}\n\t/**\n\t * 插件目录列表\n\t * 仅入口包有效\n\t*/\n\tget plugins(): string[] {\n\t\tlet { plugins } = this.exports as PluginConfig;\n\t\tif (!Array.isArray(plugins)) { plugins = []; }\n\t\tplugins = plugins.filter(t => t && typeof t === 'string');\n\t\treturn plugins;\n\t}\n\t/**\n\t * 插件浅扫描目录\n\t * 仅入口包有效\n\t */\n\tget scan(): string {\n\t\tlet { scan } = this.exports as PluginConfig;\n\t\treturn typeof scan === 'string' ? scan : '';\n\t}\n}\ninterface Plugin {\n\t/** 包名 */\n\treadonly name: string;\n\t/** 路径 */\n\treadonly path: string;\n\t/** 导出的信息 */\n\treadonly exports: object;\n\t/** 版本 */\n\treadonly version: string;\n\t/** 作者 */\n\treadonly author: string;\n\t/** 开源协议 */\n\treadonly license: string;\n\t/** 钩子配置 */\n\treadonly hooks: Hooks;\n\t/** 依赖项 */\n\treadonly dependencies: string[];\n}\n\nexport default Plugin;\n"],"file":"Plugin.js"}
|
package/Preprocessor.d.ts
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import Controller, { Class as ControllerClass } from './Controller';
|
|
2
|
-
import ExtensionContainer from './ExtensionContainer';
|
|
3
|
-
import { IClass } from './index';
|
|
4
|
-
export declare type Param = ConstructorParameters<typeof Preprocessor>;
|
|
5
|
-
export interface Base {
|
|
6
|
-
test(param: {
|
|
7
|
-
[k: string]: string | string[] | undefined;
|
|
8
|
-
}): boolean | Promise<boolean>;
|
|
9
|
-
}
|
|
10
|
-
export declare type Class<T extends Preprocessor<any, any>> = IClass<T, Param, Base>;
|
|
11
|
-
/**
|
|
12
|
-
* 预处理器
|
|
13
|
-
* @description 用于路由的过滤及处理函数执行前的预处理
|
|
14
|
-
*/
|
|
15
|
-
declare class Preprocessor<C extends Controller, CC extends ControllerClass<C>> extends ExtensionContainer<C, CC> {
|
|
16
|
-
/**
|
|
17
|
-
* 测试请求是否允许通过此路由访问
|
|
18
|
-
* @description 同一请求、同一路径下,在此函数中调用的 this.set、this.get、this.delete、this.has、this.keys、this.clear 等方法的数据与实例初始化后的共享。目前不同路径下暂不共享,后续可能会被设计为共享,但不同请求下必然不共享
|
|
19
|
-
* @description 同一路径下,若存在任意 test 返回 false 均会使得此路径不会被执行
|
|
20
|
-
* @param param 请求参数
|
|
21
|
-
*/
|
|
22
|
-
static test(param?: {
|
|
23
|
-
[k: string]: string | string[] | undefined;
|
|
24
|
-
}): Promise<boolean>;
|
|
25
|
-
/**
|
|
26
|
-
* @description 映射的 Map 实例的 set 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
27
|
-
*/
|
|
28
|
-
set(k: any, v: any): this;
|
|
29
|
-
/**
|
|
30
|
-
* @description 映射的 Map 实例的 get 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
31
|
-
*/
|
|
32
|
-
get(k: any): any;
|
|
33
|
-
/**
|
|
34
|
-
* @description 映射的 Map 实例的 delete 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
35
|
-
*/
|
|
36
|
-
delete(k: any): boolean;
|
|
37
|
-
/**
|
|
38
|
-
* @description 映射的 Map 实例的 has 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
39
|
-
*/
|
|
40
|
-
has(k: any): boolean;
|
|
41
|
-
/**
|
|
42
|
-
* @description 映射的 Map 实例的 keys 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
43
|
-
*/
|
|
44
|
-
keys(): IterableIterator<any>;
|
|
45
|
-
/**
|
|
46
|
-
* @description 映射的 Map 实例的 clear 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
47
|
-
*/
|
|
48
|
-
clear(): void;
|
|
49
|
-
/**
|
|
50
|
-
* @description 映射的 Map 实例的 size 属性,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
51
|
-
*/
|
|
52
|
-
get size(): number;
|
|
53
|
-
/**
|
|
54
|
-
* @description 映射的 Map 实例的 set 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
55
|
-
*/
|
|
56
|
-
static set(k: any, v: any): typeof Preprocessor;
|
|
57
|
-
/**
|
|
58
|
-
* @description 映射的 Map 实例的 get 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
59
|
-
*/
|
|
60
|
-
static get(k: any): any;
|
|
61
|
-
/**
|
|
62
|
-
* @description 映射的 Map 实例的 delete 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
63
|
-
*/
|
|
64
|
-
static delete(k: any): boolean;
|
|
65
|
-
/**
|
|
66
|
-
* @description 映射的 Map 实例的 has 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
67
|
-
*/
|
|
68
|
-
static has(k: any): boolean;
|
|
69
|
-
/**
|
|
70
|
-
* @description 映射的 Map 实例的 keys 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
71
|
-
*/
|
|
72
|
-
static keys(): IterableIterator<any>;
|
|
73
|
-
/**
|
|
74
|
-
* @description 映射的 Map 实例的 clear 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
75
|
-
*/
|
|
76
|
-
static clear(): void;
|
|
77
|
-
/**
|
|
78
|
-
* @description 映射的 Map 实例的 size 属性,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
79
|
-
*/
|
|
80
|
-
static get size(): number;
|
|
81
|
-
}
|
|
82
|
-
interface Preprocessor<C extends Controller, CC extends ControllerClass<C>> {
|
|
83
|
-
/** Preprocessor 的类自身 */
|
|
84
|
-
readonly class: Class<this>;
|
|
85
|
-
}
|
|
86
|
-
export default Preprocessor;
|
package/Preprocessor.js
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _ExtensionContainer = _interopRequireDefault(require("./ExtensionContainer"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* 预处理器
|
|
14
|
-
* @description 用于路由的过滤及处理函数执行前的预处理
|
|
15
|
-
*/
|
|
16
|
-
class Preprocessor extends _ExtensionContainer.default {
|
|
17
|
-
/**
|
|
18
|
-
* 测试请求是否允许通过此路由访问
|
|
19
|
-
* @description 同一请求、同一路径下,在此函数中调用的 this.set、this.get、this.delete、this.has、this.keys、this.clear 等方法的数据与实例初始化后的共享。目前不同路径下暂不共享,后续可能会被设计为共享,但不同请求下必然不共享
|
|
20
|
-
* @description 同一路径下,若存在任意 test 返回 false 均会使得此路径不会被执行
|
|
21
|
-
* @param param 请求参数
|
|
22
|
-
*/
|
|
23
|
-
static async test(param) {
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* @description 映射的 Map 实例的 set 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
set(k, v) {
|
|
32
|
-
return this;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* @description 映射的 Map 实例的 get 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
36
|
-
*/
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
get(k) {
|
|
40
|
-
return undefined;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* @description 映射的 Map 实例的 delete 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
44
|
-
*/
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
delete(k) {
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* @description 映射的 Map 实例的 has 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
52
|
-
*/
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
has(k) {
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* @description 映射的 Map 实例的 keys 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
60
|
-
*/
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
*keys() {}
|
|
64
|
-
/**
|
|
65
|
-
* @description 映射的 Map 实例的 clear 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
66
|
-
*/
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
clear() {}
|
|
70
|
-
/**
|
|
71
|
-
* @description 映射的 Map 实例的 size 属性,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
72
|
-
*/
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
get size() {
|
|
76
|
-
return 0;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* @description 映射的 Map 实例的 set 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
80
|
-
*/
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
static set(k, v) {
|
|
84
|
-
return this;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* @description 映射的 Map 实例的 get 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
88
|
-
*/
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
static get(k) {
|
|
92
|
-
return undefined;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* @description 映射的 Map 实例的 delete 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
96
|
-
*/
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
static delete(k) {
|
|
100
|
-
return false;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* @description 映射的 Map 实例的 has 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
104
|
-
*/
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
static has(k) {
|
|
108
|
-
return false;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* @description 映射的 Map 实例的 keys 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
112
|
-
*/
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
static *keys() {}
|
|
116
|
-
/**
|
|
117
|
-
* @description 映射的 Map 实例的 clear 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
118
|
-
*/
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
static clear() {}
|
|
122
|
-
/**
|
|
123
|
-
* @description 映射的 Map 实例的 size 属性,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效
|
|
124
|
-
*/
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
static get size() {
|
|
128
|
-
return 0;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
var _default = Preprocessor;
|
|
134
|
-
exports.default = _default;
|
|
135
|
-
//# sourceMappingURL=Preprocessor.js.map
|
package/Preprocessor.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/k99/Preprocessor.ts"],"names":["Preprocessor","ExtensionContainer","test","param","set","k","v","get","undefined","delete","has","keys","clear","size"],"mappings":";;;;;;;AACA;;;;AASA;;;;AAIA,MAAMA,YAAN,SAAgFC,2BAAhF,CAA0G;AACzG;;;;;;AAMA,eAAaC,IAAb,CAAkBC,KAAlB,EAA0F;AACzF,WAAO,IAAP;AACA;AACD;;;;;AAGAC,EAAAA,GAAG,CAACC,CAAD,EAASC,CAAT,EAAuB;AAAE,WAAO,IAAP;AAAc;AAC1C;;;;;AAGAC,EAAAA,GAAG,CAACF,CAAD,EAAc;AAAE,WAAOG,SAAP;AAAmB;AACtC;;;;;AAGAC,EAAAA,MAAM,CAACJ,CAAD,EAAkB;AAAE,WAAO,KAAP;AAAe;AACzC;;;;;AAGAK,EAAAA,GAAG,CAACL,CAAD,EAAkB;AAAE,WAAO,KAAP;AAAe;AACtC;;;;;AAGA,GAACM,IAAD,GAA+B,CAAE;AACjC;;;;;AAGAC,EAAAA,KAAK,GAAS,CAAE;AAChB;;;;;AAGA,MAAIC,IAAJ,GAAmB;AAAE,WAAO,CAAP;AAAW;AAEhC;;;;;AAGA,SAAOT,GAAP,CAAWC,CAAX,EAAmBC,CAAnB,EAA2B;AAAE,WAAO,IAAP;AAAc;AAC3C;;;;;AAGA,SAAOC,GAAP,CAAWF,CAAX,EAAwB;AAAE,WAAOG,SAAP;AAAmB;AAC7C;;;;;AAGA,SAAOC,MAAP,CAAcJ,CAAd,EAA+B;AAAE,WAAO,KAAP;AAAe;AAChD;;;;;AAGA,SAAOK,GAAP,CAAWL,CAAX,EAA4B;AAAE,WAAO,KAAP;AAAe;AAC7C;;;;;AAGA,UAAQM,IAAR,GAAsC,CAAE;AACxC;;;;;AAGA,SAAOC,KAAP,GAAqB,CAAE;AACvB;;;;;AAGA,aAAWC,IAAX,GAA0B;AAAE,WAAO,CAAP;AAAW;;AAlEkE;;eA2E3Fb,Y","sourcesContent":["import Controller, { Class as ControllerClass} from './Controller';\nimport ExtensionContainer from './ExtensionContainer';\nimport { IClass } from './index';\n\nexport type Param = ConstructorParameters<typeof Preprocessor>;\nexport interface Base {\n\ttest(param: {[k: string]: string | string[] | undefined}): boolean | Promise<boolean>;\n}\nexport type Class<T extends Preprocessor<any, any>> = IClass<T, Param, Base>;\n\n/**\n * 预处理器\n * @description 用于路由的过滤及处理函数执行前的预处理\n */\nclass Preprocessor<C extends Controller, CC extends ControllerClass<C>> extends ExtensionContainer<C, CC> {\n\t/**\n\t * 测试请求是否允许通过此路由访问\n\t * @description 同一请求、同一路径下,在此函数中调用的 this.set、this.get、this.delete、this.has、this.keys、this.clear 等方法的数据与实例初始化后的共享。目前不同路径下暂不共享,后续可能会被设计为共享,但不同请求下必然不共享\n\t * @description 同一路径下,若存在任意 test 返回 false 均会使得此路径不会被执行\n\t * @param param 请求参数\n\t */\n\tstatic async test(param?: {[k: string]: string | string[] | undefined}): Promise<boolean> {\n\t\treturn true;\n\t}\n\t/**\n\t * @description 映射的 Map 实例的 set 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效\n\t */\n\tset(k: any, v: any): this { return this; }\n\t/**\n\t * @description 映射的 Map 实例的 get 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效\n\t */\n\tget(k: any): any { return undefined; }\n\t/**\n\t * @description 映射的 Map 实例的 delete 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效\n\t */\n\tdelete(k: any): boolean { return false; }\n\t/**\n\t * @description 映射的 Map 实例的 has 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效\n\t */\n\thas(k: any): boolean { return false; }\n\t/**\n\t * @description 映射的 Map 实例的 keys 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效\n\t */\n\t*keys(): IterableIterator<any> {}\n\t/**\n\t * @description 映射的 Map 实例的 clear 方法,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效\n\t */\n\tclear(): void {}\n\t/**\n\t * @description 映射的 Map 实例的 size 属性,与同一请求同一路径下的 test 共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效\n\t */\n\tget size(): number { return 0; }\n\n\t/**\n\t * @description 映射的 Map 实例的 set 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效\n\t */\n\tstatic set(k: any, v: any) { return this; }\n\t/**\n\t * @description 映射的 Map 实例的 get 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效\n\t */\n\tstatic get(k: any): any { return undefined; }\n\t/**\n\t * @description 映射的 Map 实例的 delete 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效\n\t */\n\tstatic delete(k: any): boolean { return false; }\n\t/**\n\t * @description 映射的 Map 实例的 has 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效\n\t */\n\tstatic has(k: any): boolean { return false; }\n\t/**\n\t * @description 映射的 Map 实例的 keys 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效\n\t */\n\tstatic *keys(): IterableIterator<any> {}\n\t/**\n\t * @description 映射的 Map 实例的 clear 方法,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效\n\t */\n\tstatic clear(): void {}\n\t/**\n\t * @description 映射的 Map 实例的 size 属性,与同一请求同一路径下的 Preprocessor 实例共享同一 Map 实例,此方法会在其他地方重载,常规方式重载无效\n\t */\n\tstatic get size(): number { return 0; }\n\n}\n\ninterface Preprocessor<C extends Controller, CC extends ControllerClass<C>> {\n\t/** Preprocessor 的类自身 */\n\treadonly class: Class<this>;\n}\n\nexport default Preprocessor;\n"],"file":"Preprocessor.js"}
|
package/Router/assets.d.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import * as fsFn from 'fs';
|
|
3
|
-
import extendsInterface from './extendsInterface';
|
|
4
|
-
import Router from './index';
|
|
5
|
-
interface ISettings {
|
|
6
|
-
/** 读取文件 */
|
|
7
|
-
read(path: string, options?: {
|
|
8
|
-
encoding?: null;
|
|
9
|
-
flag?: string;
|
|
10
|
-
} | null): Promise<Buffer>;
|
|
11
|
-
read(path: string, options?: {
|
|
12
|
-
encoding: string;
|
|
13
|
-
flag?: string;
|
|
14
|
-
} | string): Promise<string>;
|
|
15
|
-
read(path: string, options?: {
|
|
16
|
-
encoding: string | null;
|
|
17
|
-
flag?: string;
|
|
18
|
-
} | string | null): Promise<string | Buffer>;
|
|
19
|
-
/** 删除文件 */
|
|
20
|
-
unlink(path: string): Promise<boolean>;
|
|
21
|
-
/** 写入文件 */
|
|
22
|
-
write(path: string, data: any, options?: fsFn.WriteFileOptions): Promise<boolean>;
|
|
23
|
-
/** 获取文件信息 */
|
|
24
|
-
stat(path: string, options?: {
|
|
25
|
-
bigint: false;
|
|
26
|
-
}): Promise<fsFn.Stats>;
|
|
27
|
-
stat(path: string, options: fsFn.BigIntOptions): Promise<fsFn.BigIntStats>;
|
|
28
|
-
stat(path: string, options?: fsFn.StatOptions): Promise<fsFn.Stats | fsFn.BigIntStats>;
|
|
29
|
-
}
|
|
30
|
-
interface Assets extends ISettings, extendsInterface {
|
|
31
|
-
}
|
|
32
|
-
declare function Assets(router: Router): Assets;
|
|
33
|
-
export default Assets;
|