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/Router/log.d.ts DELETED
@@ -1,23 +0,0 @@
1
- import extendsInterface from './extendsInterface';
2
- import Router from './index';
3
- import { LogPackOpt } from '../index';
4
- interface ILog {
5
- /** 读取日志 */
6
- read(path: string): Promise<string>;
7
- /** 写入日志 */
8
- write(path: string, log: string, opt?: LogPackOpt): Promise<boolean>;
9
- /** 清除日志 */
10
- clear(path: string): Promise<void>;
11
- }
12
- interface ILogExt {
13
- /** 输出信息日志 */
14
- info(log: string, opt?: LogPackOpt): Promise<boolean>;
15
- /** 输出警告日志 */
16
- warn(log: string, opt?: LogPackOpt): Promise<boolean>;
17
- /** 输出错误日志 */
18
- error(log: string, opt?: LogPackOpt): Promise<boolean>;
19
- }
20
- interface Log extends ILog, ILogExt, extendsInterface {
21
- }
22
- declare function Log(router: Router): Log;
23
- export default Log;
package/Router/log.js DELETED
@@ -1,120 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var fsFn = _interopRequireWildcard(require("fs"));
9
-
10
- var pathFn = _interopRequireWildcard(require("path"));
11
-
12
- var _extendsInterface = _interopRequireDefault(require("./extendsInterface"));
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
17
-
18
- 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; }
19
-
20
- async function write(router, path, log, opt) {
21
- path = getPath(router, path);
22
-
23
- if (opt) {
24
- log = pack(log, opt);
25
- }
26
-
27
- if (log[log.length - 1] !== '\n') {
28
- log += '\n';
29
- }
30
-
31
- await new Promise(r => fsFn.mkdir(pathFn.dirname(path), {
32
- recursive: true
33
- }, () => r()));
34
- return new Promise(resolve => fsFn.appendFile(path, log, e => resolve(!e)));
35
- }
36
- /** 获取查询路径 */
37
-
38
-
39
- function getPath(router, path) {
40
- path = `${pathFn.join('.', path, '.')}.log`;
41
- return pathFn.resolve(router.runtime.path, router.runtime.log, path);
42
- }
43
- /**
44
- * 包装日志文本
45
- * @param log 原始的日志
46
- * @param opt 包装选项
47
- */
48
-
49
-
50
- function pack(log, {
51
- tags,
52
- date,
53
- indent
54
- }) {
55
- if (tags) {
56
- if (!Array.isArray(tags)) {
57
- tags = [tags];
58
- }
59
-
60
- log = tags.map(tag => `[${tag}] `).join('') + log;
61
- }
62
-
63
- if (date) {
64
- log = `${new Date().toISOString()} ${log}`;
65
- }
66
-
67
- if (indent) {
68
- if (typeof indent === 'number') {
69
- indent = Math.floor(indent);
70
-
71
- if (isNaN(indent) || !isFinite(indent) || indent <= 0) {
72
- indent = '';
73
- } else {
74
- indent = Array(indent).fill(' ').join('');
75
- }
76
- }
77
-
78
- if (indent) {
79
- log = log.split('\n').join(`\n${indent}`);
80
- }
81
- }
82
-
83
- return log;
84
- }
85
-
86
- function Log(router) {
87
- return (0, _extendsInterface.default)(router, {
88
- async read(path) {
89
- path = getPath(this, path);
90
- return new Promise(resolve => fsFn.readFile(path, 'utf-8', (e, d) => resolve(e ? '' : d)));
91
- },
92
-
93
- async write(path, log, opt) {
94
- return write(this, path, log, opt);
95
- },
96
-
97
- async clear(path) {
98
- path = getPath(this, path);
99
- return new Promise(resolve => fsFn.writeFile(path, '', () => resolve()));
100
- }
101
-
102
- }, {
103
- async info(log, opt) {
104
- return write(this, 'info', log, opt);
105
- },
106
-
107
- async warn(log, opt) {
108
- return write(this, 'warn', log, opt);
109
- },
110
-
111
- async error(log, opt) {
112
- return write(this, 'error', log, opt);
113
- }
114
-
115
- });
116
- }
117
-
118
- var _default = Log;
119
- exports.default = _default;
120
- //# sourceMappingURL=log.js.map
package/Router/log.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/k99/Router/log.ts"],"names":["write","router","path","log","opt","getPath","pack","length","Promise","r","fsFn","mkdir","pathFn","dirname","recursive","resolve","appendFile","e","join","runtime","tags","date","indent","Array","isArray","map","tag","Date","toISOString","Math","floor","isNaN","isFinite","fill","split","Log","read","readFile","d","clear","writeFile","info","warn","error"],"mappings":"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","sourcesContent":["import * as fsFn from 'fs';\nimport * as pathFn from 'path';\nimport extendsInterface from './extendsInterface';\nimport Router from './index';\nimport { LogPackOpt } from '../index';\ninterface ILog {\n\t/** 读取日志 */\n\tread(path: string): Promise<string>;\n\t/** 写入日志 */\n\twrite(path: string, log: string, opt?: LogPackOpt): Promise<boolean>;\n\t/** 清除日志 */\n\tclear(path: string): Promise<void>;\n}\n\ninterface ILogExt {\n\t/** 输出信息日志 */\n\tinfo(log: string, opt?: LogPackOpt): Promise<boolean>;\n\t/** 输出警告日志 */\n\twarn(log: string, opt?: LogPackOpt): Promise<boolean>;\n\t/** 输出错误日志 */\n\terror(log: string, opt?: LogPackOpt): Promise<boolean>;\n}\n\ninterface Log extends ILog, ILogExt, extendsInterface {}\n\n\nasync function write(router: Router, path: string, log: string, opt?: LogPackOpt): Promise<boolean> {\n\tpath = getPath(router, path);\n\tif (opt) { log = pack(log, opt); }\n\tif (log[log.length - 1] !== '\\n') { log += '\\n'; }\n\tawait new Promise(r => fsFn.mkdir(pathFn.dirname(path), { recursive: true }, () => r()));\n\treturn new Promise(resolve => fsFn.appendFile(path, log, e => resolve(!e)));\n}\n\n/** 获取查询路径 */\nfunction getPath(router: Router, path: string) {\n\tpath = `${ pathFn.join('.', path, '.') }.log`;\n\treturn pathFn.resolve(router.runtime.path, router.runtime.log, path);\n}\n\n/**\n * 包装日志文本\n * @param log 原始的日志\n * @param opt 包装选项\n */\nfunction pack(log: string, { tags, date, indent }: LogPackOpt) {\n\tif (tags) {\n\t\tif (!Array.isArray(tags)) { tags = [tags]; }\n\t\tlog = tags.map(tag => `[${ tag }] `).join('') + log;\n\t}\n\tif (date) { log = `${ new Date().toISOString() } ${ log }`; }\n\tif (indent) {\n\t\tif (typeof indent === 'number') {\n\t\t\tindent = Math.floor(indent);\n\t\t\tif (isNaN(indent) || !isFinite(indent) || indent <= 0) {\n\t\t\t\tindent = '';\n\t\t\t} else {\n\t\t\t\tindent = Array(indent).fill(' ').join('');\n\t\t\t}\n\t\t}\n\t\tif (indent) { log = log.split('\\n').join(`\\n${ indent }`); }\n\t}\n\treturn log;\n}\n\nfunction Log(router: Router) {\n\treturn extendsInterface<ILog, ILogExt, Log>(router, {\n\t\tasync read(this: Router, path: string) {\n\t\t\tpath = getPath(this, path);\n\t\t\treturn new Promise(resolve => fsFn.readFile(path, 'utf-8', (e, d)=> resolve(e ? '' : d)));\n\t\t},\n\t\tasync write(this: Router, path: string, log: string, opt?: LogPackOpt) {\n\t\t\treturn write(this, path, log, opt);\n\t\t},\n\t\tasync clear(this: Router, path: string): Promise<void> {\n\t\t\tpath = getPath(this, path);\n\t\t\treturn new Promise(resolve => fsFn.writeFile(path, '', () => resolve()));\n\t\t},\n\t}, {\n\t\tasync info(this: Router, log: string, opt?: LogPackOpt) {\n\t\t\treturn write(this, 'info', log, opt);\n\t\t},\n\t\tasync warn(this: Router, log: string, opt?: LogPackOpt) {\n\t\t\treturn write(this, 'warn', log, opt);\n\t\t},\n\t\tasync error(this: Router, log: string, opt?: LogPackOpt) {\n\t\t\treturn write(this, 'error', log, opt);\n\t\t},\n\t});\n}\n\nexport default Log;\n"],"file":"log.js"}
package/Router/order.d.ts DELETED
@@ -1,14 +0,0 @@
1
- /** 获取指定类型的顺序列表 */
2
- export declare function getOrder(orders: {
3
- [key: string]: [string[], {
4
- [key: string]: number;
5
- }];
6
- }, type: string): [string[], {
7
- [key: string]: number;
8
- }];
9
- /** 设置顺序配置 */
10
- export declare function setOrder(orders: {
11
- [key: string]: [string[], {
12
- [key: string]: number;
13
- }];
14
- }, group: string, order?: number, type?: string): void;
package/Router/order.js DELETED
@@ -1,71 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getOrder = getOrder;
7
- exports.setOrder = setOrder;
8
-
9
- /** 获取指定类型的顺序列表 */
10
- function getOrder(orders, type) {
11
- if (type in orders) {
12
- return orders[type];
13
- }
14
-
15
- const groups = [];
16
- const order = Object.create(null);
17
- orders[type] = [groups, order];
18
- return [groups, order];
19
- }
20
- /** 设置顺序配置 */
21
-
22
-
23
- function setOrder(orders, group, order, type = 'default') {
24
- const [groups, groupOrder] = getOrder(orders, type);
25
-
26
- if (group in groupOrder) {
27
- return;
28
- }
29
-
30
- order = typeof order === 'number' && isFinite(order) ? Number(order) : 0;
31
-
32
- if (group in groupOrder) {
33
- const index = groups.findIndex(t => t === name);
34
-
35
- if (index > -1) {
36
- groups.splice(index, 1);
37
- }
38
- }
39
-
40
- groupOrder[group] = order;
41
-
42
- if (!groups.length) {
43
- groups.push(name);
44
- return;
45
- }
46
-
47
- let i = 0,
48
- j = groups.length;
49
-
50
- while (j - i > 1) {
51
- let k = Math.floor((i + j) / 2);
52
- let o = groupOrder[groups[k]];
53
-
54
- if (o < order) {
55
- i = k;
56
- } else if (order < o) {
57
- j = k;
58
- } else {
59
- i = j = k;
60
- }
61
- }
62
-
63
- if (order < groupOrder[groups[i]]) {
64
- groups.splice(i, 0, group);
65
- } else if (groupOrder[groups[i]] < order) {
66
- groups.splice(j + 1, 0, group);
67
- } else {
68
- groups.splice(j, 0, group);
69
- }
70
- }
71
- //# sourceMappingURL=order.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/k99/Router/order.ts"],"names":["getOrder","orders","type","groups","order","Object","create","setOrder","group","groupOrder","isFinite","Number","index","findIndex","t","name","splice","length","push","i","j","k","Math","floor","o"],"mappings":";;;;;;;;AACA;AACO,SAASA,QAAT,CAAkBC,MAAlB,EAAoFC,IAApF,EAAwI;AAC9I,MAAIA,IAAI,IAAID,MAAZ,EAAoB;AAAE,WAAOA,MAAM,CAACC,IAAD,CAAb;AAAsB;;AAC5C,QAAMC,MAAgB,GAAG,EAAzB;AACA,QAAMC,KAA+B,GAAGC,MAAM,CAACC,MAAP,CAAc,IAAd,CAAxC;AACAL,EAAAA,MAAM,CAACC,IAAD,CAAN,GAAe,CAACC,MAAD,EAASC,KAAT,CAAf;AACA,SAAO,CAACD,MAAD,EAASC,KAAT,CAAP;AACA;AACD;;;AACO,SAASG,QAAT,CAAkBN,MAAlB,EAAoFO,KAApF,EAAmGJ,KAAnG,EAAmHF,IAAI,GAAG,SAA1H,EAAqI;AAC3I,QAAM,CAACC,MAAD,EAASM,UAAT,IAAuBT,QAAQ,CAACC,MAAD,EAASC,IAAT,CAArC;;AACA,MAAIM,KAAK,IAAIC,UAAb,EAAyB;AAAE;AAAS;;AACpCL,EAAAA,KAAK,GAAG,OAAOA,KAAP,KAAiB,QAAjB,IAA6BM,QAAQ,CAACN,KAAD,CAArC,GAA+CO,MAAM,CAACP,KAAD,CAArD,GAA+D,CAAvE;;AACA,MAAII,KAAK,IAAIC,UAAb,EAAyB;AACxB,UAAMG,KAAK,GAAGT,MAAM,CAACU,SAAP,CAAiBC,CAAC,IAAIA,CAAC,KAAKC,IAA5B,CAAd;;AACA,QAAIH,KAAK,GAAG,CAAC,CAAb,EAAgB;AACfT,MAAAA,MAAM,CAACa,MAAP,CAAcJ,KAAd,EAAqB,CAArB;AACA;AACD;;AACDH,EAAAA,UAAU,CAACD,KAAD,CAAV,GAAoBJ,KAApB;;AACA,MAAI,CAACD,MAAM,CAACc,MAAZ,EAAoB;AACnBd,IAAAA,MAAM,CAACe,IAAP,CAAYH,IAAZ;AACA;AACA;;AACD,MAAII,CAAC,GAAG,CAAR;AAAA,MAAWC,CAAC,GAAGjB,MAAM,CAACc,MAAtB;;AACA,SAAOG,CAAC,GAAGD,CAAJ,GAAQ,CAAf,EAAkB;AACjB,QAAIE,CAAC,GAAGC,IAAI,CAACC,KAAL,CAAW,CAACJ,CAAC,GAAGC,CAAL,IAAU,CAArB,CAAR;AACA,QAAII,CAAC,GAAGf,UAAU,CAACN,MAAM,CAACkB,CAAD,CAAP,CAAlB;;AACA,QAAIG,CAAC,GAAGpB,KAAR,EAAe;AACde,MAAAA,CAAC,GAAGE,CAAJ;AACA,KAFD,MAEO,IAAIjB,KAAK,GAAGoB,CAAZ,EAAe;AACrBJ,MAAAA,CAAC,GAAGC,CAAJ;AACA,KAFM,MAEA;AACNF,MAAAA,CAAC,GAAGC,CAAC,GAAGC,CAAR;AACA;AACD;;AACD,MAAIjB,KAAK,GAAGK,UAAU,CAACN,MAAM,CAACgB,CAAD,CAAP,CAAtB,EAAmC;AAClChB,IAAAA,MAAM,CAACa,MAAP,CAAcG,CAAd,EAAiB,CAAjB,EAAoBX,KAApB;AACA,GAFD,MAEO,IAAIC,UAAU,CAACN,MAAM,CAACgB,CAAD,CAAP,CAAV,GAAwBf,KAA5B,EAAmC;AACzCD,IAAAA,MAAM,CAACa,MAAP,CAAcI,CAAC,GAAG,CAAlB,EAAqB,CAArB,EAAwBZ,KAAxB;AACA,GAFM,MAEA;AACNL,IAAAA,MAAM,CAACa,MAAP,CAAcI,CAAd,EAAiB,CAAjB,EAAoBZ,KAApB;AACA;AACD","sourcesContent":["\n/** 获取指定类型的顺序列表 */\nexport function getOrder(orders: { [key: string]: [string[], {[key: string]: number }]; }, type: string): [string[], {[key: string]: number }] {\n\tif (type in orders) { return orders[type]; }\n\tconst groups: string[] = [];\n\tconst order: {[key: string]: number } = Object.create(null);\n\torders[type] = [groups, order];\n\treturn [groups, order];\n}\n/** 设置顺序配置 */\nexport function setOrder(orders: { [key: string]: [string[], {[key: string]: number }]; }, group: string, order?: number, type = 'default') {\n\tconst [groups, groupOrder] = getOrder(orders, type);\n\tif (group in groupOrder) { return; }\n\torder = typeof order === 'number' && isFinite(order) ? Number(order) : 0;\n\tif (group in groupOrder) {\n\t\tconst index = groups.findIndex(t => t === name);\n\t\tif (index > -1) {\n\t\t\tgroups.splice(index, 1);\n\t\t}\n\t}\n\tgroupOrder[group] = order;\n\tif (!groups.length) {\n\t\tgroups.push(name);\n\t\treturn;\n\t}\n\tlet i = 0, j = groups.length;\n\twhile (j - i > 1) {\n\t\tlet k = Math.floor((i + j) / 2);\n\t\tlet o = groupOrder[groups[k]];\n\t\tif (o < order) {\n\t\t\ti = k;\n\t\t} else if (order < o) {\n\t\t\tj = k;\n\t\t} else {\n\t\t\ti = j = k;\n\t\t}\n\t}\n\tif (order < groupOrder[groups[i]]) {\n\t\tgroups.splice(i, 0, group);\n\t} else if (groupOrder[groups[i]] < order) {\n\t\tgroups.splice(j + 1, 0, group);\n\t} else {\n\t\tgroups.splice(j, 0, group);\n\t}\n}\n"],"file":"order.js"}
@@ -1,9 +0,0 @@
1
- import { FileItem, ROptions, Register } from '../index';
2
- import Router from './index';
3
- declare const registers: {
4
- [key: string]: Register;
5
- };
6
- export declare function setRegister({ extname, type, needName, register }: Register, list?: typeof registers): boolean;
7
- /** 注册文件 */
8
- export declare function register(file: FileItem, { order, group }: ROptions, router: Router): Promise<boolean>;
9
- export {};
@@ -1,252 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.setRegister = setRegister;
7
- exports.register = register;
8
-
9
- var pathFn = _interopRequireWildcard(require("path"));
10
-
11
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
12
-
13
- 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; }
14
-
15
- const registers = Object.create(null);
16
-
17
- function setRegister({
18
- extname,
19
- type,
20
- needName,
21
- register
22
- }, list = registers) {
23
- const key = `${type || ''}.${extname}`;
24
-
25
- if (!/^(?:[a-z]+)?\.[a-z]+$/.test(key)) {
26
- return false;
27
- }
28
-
29
- if (key in list) {
30
- return false;
31
- }
32
-
33
- if (typeof register !== 'function') {
34
- return false;
35
- }
36
-
37
- list[key] = {
38
- extname,
39
- type,
40
- needName,
41
- register
42
- };
43
- return true;
44
- }
45
- /** 注册文件 */
46
-
47
-
48
- async function register(file, {
49
- order,
50
- group
51
- }, router) {
52
- const {
53
- extname,
54
- type,
55
- name
56
- } = file;
57
- const key = `${type || ''}.${extname}`;
58
- const register = router._registers[key] || registers[key];
59
-
60
- if (!register) {
61
- return false;
62
- }
63
-
64
- if (!name && register.needName) {
65
- return false;
66
- }
67
-
68
- return register.register({ ...file,
69
- order,
70
- group
71
- }, router);
72
- }
73
-
74
- setRegister({
75
- extname: 'js',
76
-
77
- async register({
78
- root,
79
- path,
80
- scope,
81
- group,
82
- order
83
- }, router) {
84
- const item = await Promise.resolve().then(() => _interopRequireWildcard(require(`${pathFn.join(root, path)}`)));
85
-
86
- if (!item) {
87
- return false;
88
- }
89
-
90
- router.resource(scope, item, {
91
- group,
92
- order,
93
- root,
94
- filePath: path
95
- });
96
- return true;
97
- }
98
-
99
- });
100
- setRegister({
101
- extname: 'js',
102
- type: 'collection',
103
-
104
- async register({
105
- root,
106
- path,
107
- scope,
108
- group,
109
- order
110
- }, router) {
111
- const item = await Promise.resolve().then(() => _interopRequireWildcard(require(`${pathFn.join(root, path)}`)));
112
-
113
- if (!item) {
114
- return false;
115
- }
116
-
117
- router.collection(scope, item, {
118
- group,
119
- order,
120
- root,
121
- filePath: path
122
- });
123
- return true;
124
- }
125
-
126
- });
127
- setRegister({
128
- extname: 'js',
129
- type: 'members',
130
-
131
- async register({
132
- root,
133
- path,
134
- scope,
135
- group,
136
- order
137
- }, router) {
138
- const item = await Promise.resolve().then(() => _interopRequireWildcard(require(`${pathFn.join(root, path)}`)));
139
-
140
- if (!item) {
141
- return false;
142
- }
143
-
144
- router.member(scope, item, {
145
- group,
146
- order,
147
- root,
148
- filePath: path
149
- });
150
- return true;
151
- }
152
-
153
- });
154
- setRegister({
155
- extname: 'js',
156
- type: 'static',
157
-
158
- async register({
159
- root,
160
- path,
161
- scope,
162
- group,
163
- order
164
- }, router) {
165
- const item = await Promise.resolve().then(() => _interopRequireWildcard(require(`${pathFn.join(root, path)}`)));
166
-
167
- if (!item) {
168
- return false;
169
- }
170
-
171
- router.collection(scope, item, {
172
- group,
173
- order,
174
- root,
175
- filePath: path
176
- });
177
- return true;
178
- }
179
-
180
- });
181
- setRegister({
182
- extname: 'js',
183
- type: 'controller',
184
- needName: true,
185
-
186
- async register({
187
- root,
188
- path,
189
- name,
190
- group
191
- }, router) {
192
- const item = await Promise.resolve().then(() => _interopRequireWildcard(require(`${pathFn.join(root, path)}`)));
193
-
194
- if (!item) {
195
- return false;
196
- }
197
-
198
- if (typeof item.default !== 'function') {
199
- return false;
200
- }
201
-
202
- return router.controller(group ? `${group}.${name}` : name, item.default);
203
- }
204
-
205
- });
206
- setRegister({
207
- extname: 'js',
208
- type: 'service',
209
- needName: true,
210
-
211
- async register({
212
- root,
213
- path,
214
- name,
215
- group
216
- }, router) {
217
- const item = await Promise.resolve().then(() => _interopRequireWildcard(require(`${pathFn.join(root, path)}`)));
218
-
219
- if (!item) {
220
- return false;
221
- }
222
-
223
- if (typeof item.default !== 'function') {
224
- return false;
225
- }
226
-
227
- return router.service(group ? `${group}.${name}` : name, item.default);
228
- }
229
-
230
- });
231
- setRegister({
232
- extname: 'js',
233
- type: 'extension',
234
- needName: true,
235
-
236
- async register({
237
- root,
238
- path,
239
- name,
240
- group
241
- }, router) {
242
- const item = await Promise.resolve().then(() => _interopRequireWildcard(require(`${pathFn.join(root, path)}`)));
243
-
244
- if (!item) {
245
- return false;
246
- }
247
-
248
- return router.extension(group ? `${group}.${name}` : name, item.default);
249
- }
250
-
251
- });
252
- //# sourceMappingURL=register.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/k99/Router/register.ts"],"names":["registers","Object","create","setRegister","extname","type","needName","register","list","key","test","file","order","group","router","name","_registers","root","path","scope","item","pathFn","join","resource","filePath","collection","member","default","controller","service","extension"],"mappings":";;;;;;;;AAsBA;;;;;;AAnBA,MAAMA,SAAuC,GAAGC,MAAM,CAACC,MAAP,CAAc,IAAd,CAAhD;;AACO,SAASC,WAAT,CAAqB;AAACC,EAAAA,OAAD;AAAUC,EAAAA,IAAV;AAAgBC,EAAAA,QAAhB;AAA0BC,EAAAA;AAA1B,CAArB,EAAoEC,IAAsB,GAAGR,SAA7F,EAAiH;AACvH,QAAMS,GAAG,GAAI,GAAGJ,IAAI,IAAI,EAAI,IAAID,OAAS,EAAzC;;AACA,MAAI,CAAC,wBAAwBM,IAAxB,CAA6BD,GAA7B,CAAL,EAAwC;AAAE,WAAO,KAAP;AAAe;;AACzD,MAAIA,GAAG,IAAID,IAAX,EAAiB;AAAE,WAAO,KAAP;AAAe;;AAClC,MAAI,OAAOD,QAAP,KAAoB,UAAxB,EAAoC;AAAE,WAAO,KAAP;AAAe;;AACrDC,EAAAA,IAAI,CAACC,GAAD,CAAJ,GAAY;AAACL,IAAAA,OAAD;AAAUC,IAAAA,IAAV;AAAgBC,IAAAA,QAAhB;AAA0BC,IAAAA;AAA1B,GAAZ;AACA,SAAO,IAAP;AACA;AACD;;;AACO,eAAeA,QAAf,CAAwBI,IAAxB,EAAwC;AAAEC,EAAAA,KAAF;AAASC,EAAAA;AAAT,CAAxC,EAAoEC,MAApE,EAAsG;AAC5G,QAAM;AAAEV,IAAAA,OAAF;AAAWC,IAAAA,IAAX;AAAiBU,IAAAA;AAAjB,MAA0BJ,IAAhC;AACA,QAAMF,GAAG,GAAI,GAAGJ,IAAI,IAAI,EAAI,IAAID,OAAS,EAAzC;AACA,QAAMG,QAAQ,GAAGO,MAAM,CAACE,UAAP,CAAkBP,GAAlB,KAA0BT,SAAS,CAACS,GAAD,CAApD;;AACA,MAAI,CAACF,QAAL,EAAe;AAAE,WAAO,KAAP;AAAe;;AAChC,MAAI,CAACQ,IAAD,IAASR,QAAQ,CAACD,QAAtB,EAAgC;AAAE,WAAO,KAAP;AAAe;;AACjD,SAAOC,QAAQ,CAACA,QAAT,CAAkB,EAAE,GAAGI,IAAL;AAAWC,IAAAA,KAAX;AAAkBC,IAAAA;AAAlB,GAAlB,EAA6CC,MAA7C,CAAP;AACA;;AAQDX,WAAW,CAAC;AACXC,EAAAA,OAAO,EAAE,IADE;;AAEX,QAAMG,QAAN,CAAe;AAAEU,IAAAA,IAAF;AAAQC,IAAAA,IAAR;AAAcC,IAAAA,KAAd;AAAqBN,IAAAA,KAArB;AAA4BD,IAAAA;AAA5B,GAAf,EAAoDE,MAApD,EAA4D;AAC3D,UAAMM,IAAI,GAAG,sEAAaC,MAAM,CAACC,IAAP,CAAYL,IAAZ,EAAkBC,IAAlB,CAAb,KAAb;;AACA,QAAI,CAACE,IAAL,EAAW;AAAE,aAAO,KAAP;AAAe;;AAC5BN,IAAAA,MAAM,CAACS,QAAP,CAAgBJ,KAAhB,EAAuBC,IAAvB,EAA6B;AAAEP,MAAAA,KAAF;AAASD,MAAAA,KAAT;AAAgBK,MAAAA,IAAhB;AAAsBO,MAAAA,QAAQ,EAAEN;AAAhC,KAA7B;AACA,WAAO,IAAP;AACA;;AAPU,CAAD,CAAX;AASAf,WAAW,CAAC;AACXC,EAAAA,OAAO,EAAE,IADE;AAEXC,EAAAA,IAAI,EAAE,YAFK;;AAGX,QAAME,QAAN,CAAe;AAAEU,IAAAA,IAAF;AAAQC,IAAAA,IAAR;AAAcC,IAAAA,KAAd;AAAqBN,IAAAA,KAArB;AAA4BD,IAAAA;AAA5B,GAAf,EAAoDE,MAApD,EAA4D;AAC3D,UAAMM,IAAI,GAAG,sEAAaC,MAAM,CAACC,IAAP,CAAYL,IAAZ,EAAkBC,IAAlB,CAAb,KAAb;;AACA,QAAI,CAACE,IAAL,EAAW;AAAE,aAAO,KAAP;AAAe;;AAC5BN,IAAAA,MAAM,CAACW,UAAP,CAAkBN,KAAlB,EAAyBC,IAAzB,EAA+B;AAAEP,MAAAA,KAAF;AAASD,MAAAA,KAAT;AAAgBK,MAAAA,IAAhB;AAAsBO,MAAAA,QAAQ,EAAEN;AAAhC,KAA/B;AACA,WAAO,IAAP;AACA;;AARU,CAAD,CAAX;AAWAf,WAAW,CAAC;AACXC,EAAAA,OAAO,EAAE,IADE;AAEXC,EAAAA,IAAI,EAAE,SAFK;;AAGX,QAAME,QAAN,CAAe;AAAEU,IAAAA,IAAF;AAAQC,IAAAA,IAAR;AAAcC,IAAAA,KAAd;AAAqBN,IAAAA,KAArB;AAA4BD,IAAAA;AAA5B,GAAf,EAAoDE,MAApD,EAA4D;AAC3D,UAAMM,IAAI,GAAG,sEAAaC,MAAM,CAACC,IAAP,CAAYL,IAAZ,EAAkBC,IAAlB,CAAb,KAAb;;AACA,QAAI,CAACE,IAAL,EAAW;AAAE,aAAO,KAAP;AAAe;;AAC5BN,IAAAA,MAAM,CAACY,MAAP,CAAcP,KAAd,EAAqBC,IAArB,EAA2B;AAAEP,MAAAA,KAAF;AAASD,MAAAA,KAAT;AAAgBK,MAAAA,IAAhB;AAAsBO,MAAAA,QAAQ,EAAEN;AAAhC,KAA3B;AACA,WAAO,IAAP;AACA;;AARU,CAAD,CAAX;AAUAf,WAAW,CAAC;AACXC,EAAAA,OAAO,EAAE,IADE;AAEXC,EAAAA,IAAI,EAAE,QAFK;;AAGX,QAAME,QAAN,CAAe;AAAEU,IAAAA,IAAF;AAAQC,IAAAA,IAAR;AAAcC,IAAAA,KAAd;AAAqBN,IAAAA,KAArB;AAA4BD,IAAAA;AAA5B,GAAf,EAAoDE,MAApD,EAA4D;AAC3D,UAAMM,IAAI,GAAG,sEAAaC,MAAM,CAACC,IAAP,CAAYL,IAAZ,EAAkBC,IAAlB,CAAb,KAAb;;AACA,QAAI,CAACE,IAAL,EAAW;AAAE,aAAO,KAAP;AAAe;;AAC5BN,IAAAA,MAAM,CAACW,UAAP,CAAkBN,KAAlB,EAAyBC,IAAzB,EAA+B;AAAEP,MAAAA,KAAF;AAASD,MAAAA,KAAT;AAAgBK,MAAAA,IAAhB;AAAsBO,MAAAA,QAAQ,EAAEN;AAAhC,KAA/B;AACA,WAAO,IAAP;AACA;;AARU,CAAD,CAAX;AAUAf,WAAW,CAAC;AACXC,EAAAA,OAAO,EAAE,IADE;AAEXC,EAAAA,IAAI,EAAE,YAFK;AAGXC,EAAAA,QAAQ,EAAE,IAHC;;AAIX,QAAMC,QAAN,CAAe;AAAEU,IAAAA,IAAF;AAAQC,IAAAA,IAAR;AAAcH,IAAAA,IAAd;AAAoBF,IAAAA;AAApB,GAAf,EAA4CC,MAA5C,EAAoD;AACnD,UAAMM,IAAI,GAAG,sEAAaC,MAAM,CAACC,IAAP,CAAYL,IAAZ,EAAkBC,IAAlB,CAAb,KAAb;;AACA,QAAI,CAACE,IAAL,EAAW;AAAE,aAAO,KAAP;AAAe;;AAC5B,QAAI,OAAOA,IAAI,CAACO,OAAZ,KAAwB,UAA5B,EAAwC;AAAE,aAAO,KAAP;AAAe;;AACzD,WAAOb,MAAM,CAACc,UAAP,CAAkBf,KAAK,GAAI,GAAGA,KAAO,IAAIE,IAAM,EAAxB,GAA4BA,IAAnD,EAAyDK,IAAI,CAACO,OAA9D,CAAP;AACA;;AATU,CAAD,CAAX;AAWAxB,WAAW,CAAC;AACXC,EAAAA,OAAO,EAAE,IADE;AAEXC,EAAAA,IAAI,EAAE,SAFK;AAGXC,EAAAA,QAAQ,EAAE,IAHC;;AAIX,QAAMC,QAAN,CAAe;AAAEU,IAAAA,IAAF;AAAQC,IAAAA,IAAR;AAAcH,IAAAA,IAAd;AAAoBF,IAAAA;AAApB,GAAf,EAA4CC,MAA5C,EAAoD;AACnD,UAAMM,IAAI,GAAG,sEAAaC,MAAM,CAACC,IAAP,CAAYL,IAAZ,EAAkBC,IAAlB,CAAb,KAAb;;AACA,QAAI,CAACE,IAAL,EAAW;AAAE,aAAO,KAAP;AAAe;;AAC5B,QAAI,OAAOA,IAAI,CAACO,OAAZ,KAAwB,UAA5B,EAAwC;AAAE,aAAO,KAAP;AAAe;;AACzD,WAAOb,MAAM,CAACe,OAAP,CAAehB,KAAK,GAAI,GAAGA,KAAO,IAAIE,IAAM,EAAxB,GAA4BA,IAAhD,EAAsDK,IAAI,CAACO,OAA3D,CAAP;AACA;;AATU,CAAD,CAAX;AAWAxB,WAAW,CAAC;AACXC,EAAAA,OAAO,EAAE,IADE;AAEXC,EAAAA,IAAI,EAAE,WAFK;AAGXC,EAAAA,QAAQ,EAAE,IAHC;;AAIX,QAAMC,QAAN,CAAe;AAAEU,IAAAA,IAAF;AAAQC,IAAAA,IAAR;AAAcH,IAAAA,IAAd;AAAoBF,IAAAA;AAApB,GAAf,EAA4CC,MAA5C,EAAoD;AACnD,UAAMM,IAAI,GAAG,sEAAaC,MAAM,CAACC,IAAP,CAAYL,IAAZ,EAAkBC,IAAlB,CAAb,KAAb;;AACA,QAAI,CAACE,IAAL,EAAW;AAAE,aAAO,KAAP;AAAe;;AAC5B,WAAON,MAAM,CAACgB,SAAP,CAAiBjB,KAAK,GAAI,GAAGA,KAAO,IAAIE,IAAM,EAAxB,GAA4BA,IAAlD,EAAwDK,IAAI,CAACO,OAA7D,CAAP;AACA;;AARU,CAAD,CAAX","sourcesContent":["import { FileItem, ROptions, Register } from '../index';\nimport Router from './index';\n\nconst registers: { [key: string]: Register; } = Object.create(null);\nexport function setRegister({extname, type, needName, register}: Register, list: typeof registers = registers): boolean {\n\tconst key = `${ type || '' }.${ extname }`;\n\tif (!/^(?:[a-z]+)?\\.[a-z]+$/.test(key)) { return false; }\n\tif (key in list) { return false; }\n\tif (typeof register !== 'function') { return false; }\n\tlist[key] = {extname, type, needName, register};\n\treturn true;\n}\n/** 注册文件 */\nexport async function register(file: FileItem, { order, group }: ROptions, router: Router): Promise<boolean> {\n\tconst { extname, type, name } = file;\n\tconst key = `${ type || '' }.${ extname }`;\n\tconst register = router._registers[key] || registers[key];\n\tif (!register) { return false; }\n\tif (!name && register.needName) { return false; }\n\treturn register.register({ ...file, order, group }, router);\n}\n\nimport * as pathFn from 'path';\n\nimport { Class as ControllerClass } from '../Controller';\nimport { Class as ServiceClass } from '../Service';\nimport { Class as ExtensionClass } from '../Extension';\n\nsetRegister({\n\textname: 'js',\n\tasync register({ root, path, scope, group, order }, router) {\n\t\tconst item = await import(pathFn.join(root, path));\n\t\tif (!item) { return false; }\n\t\trouter.resource(scope, item, { group, order, root, filePath: path});\n\t\treturn true;\n\t},\n});\nsetRegister({\n\textname: 'js',\n\ttype: 'collection',\n\tasync register({ root, path, scope, group, order }, router) {\n\t\tconst item = await import(pathFn.join(root, path));\n\t\tif (!item) { return false; }\n\t\trouter.collection(scope, item, { group, order, root, filePath: path});\n\t\treturn true;\n\t},\n});\n\nsetRegister({\n\textname: 'js',\n\ttype: 'members',\n\tasync register({ root, path, scope, group, order }, router) {\n\t\tconst item = await import(pathFn.join(root, path));\n\t\tif (!item) { return false; }\n\t\trouter.member(scope, item, { group, order, root, filePath: path});\n\t\treturn true;\n\t},\n});\nsetRegister({\n\textname: 'js',\n\ttype: 'static',\n\tasync register({ root, path, scope, group, order }, router) {\n\t\tconst item = await import(pathFn.join(root, path));\n\t\tif (!item) { return false; }\n\t\trouter.collection(scope, item, { group, order, root, filePath: path});\n\t\treturn true;\n\t},\n});\nsetRegister({\n\textname: 'js',\n\ttype: 'controller',\n\tneedName: true,\n\tasync register({ root, path, name, group }, router) {\n\t\tconst item = await import(pathFn.join(root, path));\n\t\tif (!item) { return false; }\n\t\tif (typeof item.default !== 'function') { return false; }\n\t\treturn router.controller(group ? `${ group }.${ name }` : name, item.default as ControllerClass<any>);\n\t},\n});\nsetRegister({\n\textname: 'js',\n\ttype: 'service',\n\tneedName: true,\n\tasync register({ root, path, name, group }, router) {\n\t\tconst item = await import(pathFn.join(root, path));\n\t\tif (!item) { return false; }\n\t\tif (typeof item.default !== 'function') { return false; }\n\t\treturn router.service(group ? `${ group }.${ name }` : name, item.default as ServiceClass<any>);\n\t},\n});\nsetRegister({\n\textname: 'js',\n\ttype: 'extension',\n\tneedName: true,\n\tasync register({ root, path, name, group }, router) {\n\t\tconst item = await import(pathFn.join(root, path));\n\t\tif (!item) { return false; }\n\t\treturn router.extension(group ? `${ group }.${ name }` : name, item.default as ExtensionClass<any>);\n\t},\n});\n"],"file":"register.js"}
@@ -1,22 +0,0 @@
1
- import { IClass } from '../index';
2
- export interface ClassList<T extends object, P extends any[], S extends {
3
- [key: string]: any;
4
- } = {}> {
5
- [key: string]: IClass<T, P, S>;
6
- }
7
- /**
8
- * 注册项目
9
- * @param type 要注册的类型
10
- * @param list 注册列表
11
- * @param id 注册 id
12
- * @param item 要注册的项目或已经注册的 id
13
- */
14
- export declare function register<B extends object, P extends any[], T extends B, S extends {
15
- [key: string]: any;
16
- }>(type: IClass<B, P, S>, list: ClassList<B, P, S>, id: string, item: IClass<T, P, S> | string): boolean;
17
- export declare function find<B extends object, P extends any[], T extends B, S extends {
18
- [key: string]: any;
19
- }>(type: IClass<B, P, S>, list: ClassList<B, P, S>, id?: string, nodefault?: false): IClass<T, P, S>;
20
- export declare function find<B extends object, P extends any[], T extends B, S extends {
21
- [key: string]: any;
22
- }>(type: IClass<B, P, S>, list: ClassList<B, P, S>, id?: string, nodefault?: boolean): IClass<T, P, S> | undefined;
@@ -1,102 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.register = register;
7
- exports.find = find;
8
-
9
- /** 获取 id */
10
- function getIds(id) {
11
- if (!(id && typeof id === 'string')) {
12
- return;
13
- }
14
-
15
- const ids = id.split('.');
16
- const index = ids.findIndex(it => !/^[a-z][a-zA-Z0-9]*$/.test(it));
17
-
18
- if (index >= 0 && index !== ids.length - 1) {
19
- return;
20
- }
21
-
22
- if (index === -1) {
23
- ids.push('Default');
24
- } else {
25
- const name = ids[ids.length - 1];
26
-
27
- if (!/^[A-Z][a-zA-Z0-9]*$/.test(name)) {
28
- return;
29
- }
30
- }
31
-
32
- return ids;
33
- }
34
- /**
35
- * 注册项目
36
- * @param type 要注册的类型
37
- * @param list 注册列表
38
- * @param id 注册 id
39
- * @param item 要注册的项目或已经注册的 id
40
- */
41
-
42
-
43
- function register(type, list, id, item) {
44
- if (typeof item === 'string') {
45
- const it = find(type, list, item, true);
46
-
47
- if (!it) {
48
- return false;
49
- }
50
-
51
- item = it;
52
- }
53
-
54
- if (!(item && Object.prototype.isPrototypeOf.call(type, item))) {
55
- return false;
56
- }
57
-
58
- const ids = getIds(id);
59
-
60
- if (!ids) {
61
- return false;
62
- }
63
-
64
- id = ids.join('.');
65
-
66
- if (id in list) {
67
- return false;
68
- }
69
-
70
- list[id] = item;
71
- return true;
72
- }
73
-
74
- function find(type, list, id, nodefault) {
75
- let Default = nodefault ? undefined : list.Default || type;
76
- const ids = getIds(id);
77
-
78
- if (!ids) {
79
- return Default;
80
- }
81
-
82
- id = ids.join('.');
83
-
84
- if (id in list) {
85
- return list[id];
86
- }
87
-
88
- if (nodefault) {
89
- return;
90
- }
91
-
92
- for (ids.pop(); ids.length; ids.pop()) {
93
- const id = `${ids.join('.')}.Default`;
94
-
95
- if (id in list) {
96
- return list[id];
97
- }
98
- }
99
-
100
- return Default;
101
- }
102
- //# sourceMappingURL=registerManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/k99/Router/registerManager.ts"],"names":["getIds","id","ids","split","index","findIndex","it","test","length","push","name","register","type","list","item","find","Object","prototype","isPrototypeOf","call","join","nodefault","Default","undefined","pop"],"mappings":";;;;;;;;AAMA;AACA,SAASA,MAAT,CAAgBC,EAAhB,EAAmD;AAClD,MAAI,EAAEA,EAAE,IAAI,OAAOA,EAAP,KAAc,QAAtB,CAAJ,EAAqC;AAAE;AAAS;;AAChD,QAAMC,GAAG,GAAGD,EAAE,CAACE,KAAH,CAAS,GAAT,CAAZ;AACA,QAAMC,KAAK,GAAGF,GAAG,CAACG,SAAJ,CAAcC,EAAE,IAAI,CAAC,sBAAsBC,IAAtB,CAA2BD,EAA3B,CAArB,CAAd;;AACA,MAAIF,KAAK,IAAI,CAAT,IAAcA,KAAK,KAAKF,GAAG,CAACM,MAAJ,GAAa,CAAzC,EAA4C;AAAE;AAAS;;AACvD,MAAIJ,KAAK,KAAK,CAAC,CAAf,EAAkB;AACjBF,IAAAA,GAAG,CAACO,IAAJ,CAAS,SAAT;AACA,GAFD,MAEO;AACN,UAAMC,IAAI,GAAGR,GAAG,CAACA,GAAG,CAACM,MAAJ,GAAa,CAAd,CAAhB;;AACA,QAAI,CAAC,sBAAsBD,IAAtB,CAA2BG,IAA3B,CAAL,EAAuC;AAAE;AAAS;AAClD;;AACD,SAAOR,GAAP;AACA;AACD;;;;;;;;;AAOO,SAASS,QAAT,CACNC,IADM,EAENC,IAFM,EAGNZ,EAHM,EAINa,IAJM,EAKI;AACV,MAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;AAC7B,UAAMR,EAAE,GAAGS,IAAI,CAAaH,IAAb,EAAmBC,IAAnB,EAAyBC,IAAzB,EAA+B,IAA/B,CAAf;;AACA,QAAI,CAACR,EAAL,EAAS;AAAE,aAAO,KAAP;AAAe;;AAC1BQ,IAAAA,IAAI,GAAGR,EAAP;AACA;;AACD,MAAI,EAAEQ,IAAI,IAAIE,MAAM,CAACC,SAAP,CAAiBC,aAAjB,CAA+BC,IAA/B,CAAoCP,IAApC,EAA0CE,IAA1C,CAAV,CAAJ,EAAgE;AAAE,WAAO,KAAP;AAAe;;AACjF,QAAMZ,GAAG,GAAGF,MAAM,CAACC,EAAD,CAAlB;;AACA,MAAI,CAACC,GAAL,EAAU;AAAE,WAAO,KAAP;AAAe;;AAC3BD,EAAAA,EAAE,GAAGC,GAAG,CAACkB,IAAJ,CAAS,GAAT,CAAL;;AACA,MAAInB,EAAE,IAAIY,IAAV,EAAgB;AAAE,WAAO,KAAP;AAAe;;AACjCA,EAAAA,IAAI,CAACZ,EAAD,CAAJ,GAAWa,IAAX;AACA,SAAO,IAAP;AACA;;AAaM,SAASC,IAAT,CACNH,IADM,EAENC,IAFM,EAGNZ,EAHM,EAINoB,SAJM,EAKwB;AAC9B,MAAIC,OAAsC,GAAGD,SAAS,GAAGE,SAAH,GAAeV,IAAI,CAACS,OAAL,IAAgBV,IAArF;AACA,QAAMV,GAAG,GAAGF,MAAM,CAACC,EAAD,CAAlB;;AACA,MAAI,CAACC,GAAL,EAAU;AAAE,WAAOoB,OAAP;AAAiB;;AAC7BrB,EAAAA,EAAE,GAAGC,GAAG,CAACkB,IAAJ,CAAS,GAAT,CAAL;;AACA,MAAInB,EAAE,IAAIY,IAAV,EAAgB;AAAE,WAAOA,IAAI,CAACZ,EAAD,CAAX;AAAuC;;AACzD,MAAIoB,SAAJ,EAAe;AAAE;AAAS;;AAC1B,OAAKnB,GAAG,CAACsB,GAAJ,EAAL,EAAgBtB,GAAG,CAACM,MAApB,EAA4BN,GAAG,CAACsB,GAAJ,EAA5B,EAAuC;AACtC,UAAMvB,EAAE,GAAI,GAAGC,GAAG,CAACkB,IAAJ,CAAS,GAAT,CAAe,UAA9B;;AACA,QAAInB,EAAE,IAAIY,IAAV,EAAgB;AAAE,aAAOA,IAAI,CAACZ,EAAD,CAAX;AAAuC;AACzD;;AACD,SAAOqB,OAAP;AACA","sourcesContent":["import { IClass } from '../index';\n\n\nexport interface ClassList<T extends object, P extends any[], S extends {[key: string]: any} = {}> {\n\t[key: string]: IClass<T, P, S>;\n}\n/** 获取 id */\nfunction getIds(id?: string): string[] | undefined {\n\tif (!(id && typeof id === 'string')) { return; }\n\tconst ids = id.split('.');\n\tconst index = ids.findIndex(it => !/^[a-z][a-zA-Z0-9]*$/.test(it));\n\tif (index >= 0 && index !== ids.length - 1) { return; }\n\tif (index === -1) {\n\t\tids.push('Default');\n\t} else {\n\t\tconst name = ids[ids.length - 1];\n\t\tif (!/^[A-Z][a-zA-Z0-9]*$/.test(name)) { return; }\n\t}\n\treturn ids;\n}\n/**\n * 注册项目\n * @param type 要注册的类型\n * @param list 注册列表\n * @param id 注册 id\n * @param item 要注册的项目或已经注册的 id\n */\nexport function register<B extends object, P extends any[], T extends B, S extends {[key: string]: any}>(\n\ttype: IClass<B, P, S>,\n\tlist: ClassList<B, P, S>,\n\tid: string,\n\titem: IClass<T, P, S> | string,\n): boolean {\n\tif (typeof item === 'string') {\n\t\tconst it = find<B, P, T, S>(type, list, item, true);\n\t\tif (!it) { return false; }\n\t\titem = it;\n\t}\n\tif (!(item && Object.prototype.isPrototypeOf.call(type, item))) { return false; }\n\tconst ids = getIds(id);\n\tif (!ids) { return false; }\n\tid = ids.join('.');\n\tif (id in list) { return false; }\n\tlist[id] = item;\n\treturn true;\n}\nexport function find<B extends object, P extends any[], T extends B, S extends {[key: string]: any}>(\n\ttype: IClass<B, P, S>,\n\tlist: ClassList<B, P, S>,\n\tid?: string,\n\tnodefault?: false,\n): IClass<T, P, S>;\nexport function find<B extends object, P extends any[], T extends B, S extends {[key: string]: any}>(\n\ttype: IClass<B, P, S>,\n\tlist: ClassList<B, P, S>,\n\tid?: string,\n\tnodefault?: boolean,\n): IClass<T, P, S> | undefined;\nexport function find<B extends object, P extends any[], T extends B, S extends {[key: string]: any}>(\n\ttype: IClass<B, P, S>,\n\tlist: ClassList<B, P, S>,\n\tid?: string,\n\tnodefault?: boolean,\n): IClass<T, P, S> | undefined {\n\tlet Default: IClass<any, P, S> | undefined = nodefault ? undefined : list.Default || type;\n\tconst ids = getIds(id);\n\tif (!ids) { return Default; }\n\tid = ids.join('.');\n\tif (id in list) { return list[id] as IClass<any, P, S>; }\n\tif (nodefault) { return; }\n\tfor (ids.pop(); ids.length; ids.pop()) {\n\t\tconst id = `${ ids.join('.') }.Default`;\n\t\tif (id in list) { return list[id] as IClass<any, P, S>; }\n\t}\n\treturn Default;\n}\n"],"file":"registerManager.js"}
package/Router/scan.d.ts DELETED
@@ -1,2 +0,0 @@
1
- import { FileItem } from '../index';
2
- export default function scan(root: string): AsyncIterableIterator<FileItem>;