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.
Files changed (154) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +8 -0
  3. package/README.zh.md +8 -0
  4. package/browser/package.json +8 -0
  5. package/browser/types.d.ts +20 -0
  6. package/cli/command/create.js +1 -2
  7. package/cli/command/index.js +1 -2
  8. package/cli/command/init.js +3 -5
  9. package/cli/command/start.js +9 -10
  10. package/cli/index.js +3 -4
  11. package/cli/opt/bind.js +1 -2
  12. package/cli/opt/index.js +1 -2
  13. package/cli/opt/listen.js +1 -2
  14. package/cli/opt/path.js +1 -2
  15. package/cli/opt/port.js +1 -2
  16. package/cli/opt/show-router.js +1 -2
  17. package/dist/k99.browser.js +3110 -0
  18. package/dist/k99.browser.min.js +6 -0
  19. package/dist/k99.esm.js +3082 -0
  20. package/dist/k99.esm.min.js +6 -0
  21. package/dist/k99.js +3104 -0
  22. package/dist/k99.mjs +3082 -0
  23. package/dist/k99Browser.browser.js +490 -0
  24. package/dist/k99Browser.browser.min.js +6 -0
  25. package/dist/k99Browser.esm.js +475 -0
  26. package/dist/k99Browser.esm.min.js +6 -0
  27. package/dist/k99Browser.js +484 -0
  28. package/dist/k99Browser.mjs +475 -0
  29. package/dist/k99Services.browser.js +145 -0
  30. package/dist/k99Services.browser.min.js +6 -0
  31. package/dist/k99Services.esm.js +136 -0
  32. package/dist/k99Services.esm.min.js +6 -0
  33. package/dist/k99Services.js +141 -0
  34. package/dist/k99Services.mjs +136 -0
  35. package/node/index.js +1386 -0
  36. package/node/index.mjs +1350 -0
  37. package/node/package.json +5 -0
  38. package/node/types.d.ts +166 -0
  39. package/package.json +77 -11
  40. package/services/package.json +8 -0
  41. package/services/types.d.ts +22 -0
  42. package/starter.js +0 -1
  43. package/types.d.ts +748 -0
  44. package/Container.d.ts +0 -92
  45. package/Container.js +0 -242
  46. package/Container.js.map +0 -1
  47. package/Controller/index.d.ts +0 -178
  48. package/Controller/index.js +0 -576
  49. package/Controller/index.js.map +0 -1
  50. package/Controller/patch/cookie.d.ts +0 -33
  51. package/Controller/patch/cookie.js +0 -168
  52. package/Controller/patch/cookie.js.map +0 -1
  53. package/Controller/patch/index.d.ts +0 -7
  54. package/Controller/patch/index.js +0 -26
  55. package/Controller/patch/index.js.map +0 -1
  56. package/Controller/patch/render.d.ts +0 -5
  57. package/Controller/patch/render.js +0 -24
  58. package/Controller/patch/render.js.map +0 -1
  59. package/ExitSignal.d.ts +0 -14
  60. package/ExitSignal.js +0 -29
  61. package/ExitSignal.js.map +0 -1
  62. package/Extension.d.ts +0 -56
  63. package/Extension.js +0 -93
  64. package/Extension.js.map +0 -1
  65. package/ExtensionContainer.d.ts +0 -55
  66. package/ExtensionContainer.js +0 -105
  67. package/ExtensionContainer.js.map +0 -1
  68. package/Plugin.d.ts +0 -52
  69. package/Plugin.js +0 -278
  70. package/Plugin.js.map +0 -1
  71. package/Preprocessor.d.ts +0 -86
  72. package/Preprocessor.js +0 -135
  73. package/Preprocessor.js.map +0 -1
  74. package/Router/assets.d.ts +0 -33
  75. package/Router/assets.js +0 -106
  76. package/Router/assets.js.map +0 -1
  77. package/Router/callback.d.ts +0 -9
  78. package/Router/callback.js +0 -152
  79. package/Router/callback.js.map +0 -1
  80. package/Router/extendsInterface.d.ts +0 -8
  81. package/Router/extendsInterface.js +0 -43
  82. package/Router/extendsInterface.js.map +0 -1
  83. package/Router/index.d.ts +0 -184
  84. package/Router/index.js +0 -615
  85. package/Router/index.js.map +0 -1
  86. package/Router/log.d.ts +0 -23
  87. package/Router/log.js +0 -120
  88. package/Router/log.js.map +0 -1
  89. package/Router/order.d.ts +0 -14
  90. package/Router/order.js +0 -71
  91. package/Router/order.js.map +0 -1
  92. package/Router/register.d.ts +0 -9
  93. package/Router/register.js +0 -252
  94. package/Router/register.js.map +0 -1
  95. package/Router/registerManager.d.ts +0 -22
  96. package/Router/registerManager.js +0 -102
  97. package/Router/registerManager.js.map +0 -1
  98. package/Router/scan.d.ts +0 -2
  99. package/Router/scan.js +0 -72
  100. package/Router/scan.js.map +0 -1
  101. package/Router/setHandleItem.d.ts +0 -3
  102. package/Router/setHandleItem.js +0 -94
  103. package/Router/setHandleItem.js.map +0 -1
  104. package/Router/settings.d.ts +0 -12
  105. package/Router/settings.js +0 -74
  106. package/Router/settings.js.map +0 -1
  107. package/Router/start.d.ts +0 -3
  108. package/Router/start.js +0 -270
  109. package/Router/start.js.map +0 -1
  110. package/Router/vars.d.ts +0 -10
  111. package/Router/vars.js +0 -40
  112. package/Router/vars.js.map +0 -1
  113. package/Service.d.ts +0 -12
  114. package/Service.js +0 -20
  115. package/Service.js.map +0 -1
  116. package/cli/command/create.d.ts +0 -7
  117. package/cli/command/create.js.map +0 -1
  118. package/cli/command/index.d.ts +0 -7
  119. package/cli/command/index.js.map +0 -1
  120. package/cli/command/init.d.ts +0 -6
  121. package/cli/command/init.js.map +0 -1
  122. package/cli/command/start.d.ts +0 -6
  123. package/cli/command/start.js.map +0 -1
  124. package/cli/index.d.ts +0 -2
  125. package/cli/index.js.map +0 -1
  126. package/cli/opt/bind.d.ts +0 -3
  127. package/cli/opt/bind.js.map +0 -1
  128. package/cli/opt/index.d.ts +0 -16
  129. package/cli/opt/index.js.map +0 -1
  130. package/cli/opt/listen.d.ts +0 -3
  131. package/cli/opt/listen.js.map +0 -1
  132. package/cli/opt/path.d.ts +0 -3
  133. package/cli/opt/path.js.map +0 -1
  134. package/cli/opt/port.d.ts +0 -3
  135. package/cli/opt/port.js.map +0 -1
  136. package/cli/opt/show-router.d.ts +0 -3
  137. package/cli/opt/show-router.js.map +0 -1
  138. package/index.d.ts +0 -354
  139. package/index.js +0 -155
  140. package/index.js.map +0 -1
  141. package/setOptions.d.ts +0 -12
  142. package/setOptions.js +0 -60
  143. package/setOptions.js.map +0 -1
  144. package/starter.d.ts +0 -2
  145. package/starter.js.map +0 -1
  146. package/symbols.d.ts +0 -13
  147. package/symbols.js +0 -31
  148. package/symbols.js.map +0 -1
  149. package/util/index.d.ts +0 -5
  150. package/util/index.js +0 -92
  151. package/util/index.js.map +0 -1
  152. package/util/stream.d.ts +0 -19
  153. package/util/stream.js +0 -66
  154. 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
@@ -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"}
@@ -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;