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/scan.js DELETED
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = scan;
7
-
8
- var fsFn = _interopRequireWildcard(require("fs"));
9
-
10
- var pathFn = _interopRequireWildcard(require("path"));
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
- async function readdir(path) {
17
- return new Promise(resolve => fsFn.readdir(path, {
18
- encoding: 'utf-8'
19
- }, (err, files) => err ? resolve([]) : resolve(files)));
20
- }
21
-
22
- async function stat(path) {
23
- return new Promise(resolve => fsFn.stat(path, (err, stat) => err ? resolve() : resolve(stat)));
24
- }
25
-
26
- async function isFile(path) {
27
- const s = await stat(path);
28
- return s && s.isFile();
29
- }
30
-
31
- async function isDir(path) {
32
- const s = await stat(path);
33
- return s && s.isDirectory();
34
- }
35
-
36
- async function* scanFile(root, path = '/') {
37
- for (let name of await readdir(pathFn.join(root, path))) {
38
- if (/^[:$]?[a-zA-Z0-9_-]+(?:\${0,3}|[?*+])$/.test(name)) {
39
- const newPath = pathFn.join(path, name);
40
-
41
- if (isDir(pathFn.join(root, newPath))) {
42
- yield* scanFile(root, newPath);
43
- }
44
- } else if (/^[:$]?[a-zA-Z0-9_-]+(?:\${0,3}|[?*+])(?:\.[a-z]+)?\.[a-z]+$/.test(name)) {
45
- const newPath = pathFn.join(path, name);
46
-
47
- if (isFile(pathFn.join(root, newPath))) {
48
- yield newPath;
49
- }
50
- }
51
- }
52
- }
53
-
54
- async function* scan(root) {
55
- root = pathFn.resolve(root);
56
-
57
- for await (const path of scanFile(root)) {
58
- const pathInfo = path.split('.');
59
- const paths = pathInfo[0].split(/[\\/]/).map(it => it === '-' ? it : it.replace(/^\$/, ':').replace(/\${3}$/, '+').replace(/\${2}$/, '*').replace(/\${1}$/, '?').toLowerCase()).filter(Boolean);
60
- const filename = paths[paths.length - 1];
61
- const extname = pathInfo.pop();
62
- yield {
63
- extname,
64
- root,
65
- path,
66
- type: pathInfo[1] || '',
67
- scope: (filename === 'index' ? paths.slice(0, -1) : paths).join('/'),
68
- name: /^:?[a-zA-Z][a-zA-Z0-9]*(?:-_[a-zA-Z][a-zA-Z0-9]*)*[+*?]?$/.test(filename) ? filename.replace(/^:?[a-z]|-[a-z]/g, a => a.toUpperCase()).replace(/[^a-zA-Z0-9]/g, '') : ''
69
- };
70
- }
71
- }
72
- //# sourceMappingURL=scan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/k99/Router/scan.ts"],"names":["readdir","path","Promise","resolve","fsFn","encoding","err","files","stat","isFile","s","isDir","isDirectory","scanFile","root","name","pathFn","join","test","newPath","scan","pathInfo","split","paths","map","it","replace","toLowerCase","filter","Boolean","filename","length","extname","pop","type","scope","slice","a","toUpperCase"],"mappings":"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","sourcesContent":["import * as fsFn from 'fs';\nimport * as pathFn from 'path';\nimport { FileItem } from '../index';\n\nasync function readdir(path: string): Promise<string[]> {\n\treturn new Promise(resolve => fsFn.readdir(path, {encoding: 'utf-8'}, (err, files) => err ? resolve([]) : resolve(files)));\n}\nasync function stat(path: string): Promise<fsFn.Stats | undefined> {\n\treturn new Promise(resolve => fsFn.stat(path, (err, stat) => err ? resolve() : resolve(stat)));\n}\nasync function isFile(path: string) {\n\tconst s = await stat(path);\n\treturn s && s.isFile();\n}\nasync function isDir(path: string) {\n\tconst s = await stat(path);\n\treturn s && s.isDirectory();\n}\nasync function *scanFile(root: string, path: string = '/'): AsyncIterableIterator<string> {\n\tfor (let name of await readdir(pathFn.join(root, path))) {\n\t\tif (/^[:$]?[a-zA-Z0-9_-]+(?:\\${0,3}|[?*+])$/.test(name)) {\n\t\t\tconst newPath = pathFn.join(path, name);\n\t\t\tif (isDir(pathFn.join(root, newPath))) {\n\t\t\t\tyield *scanFile(root, newPath);\n\t\t\t}\n\t\t} else if (/^[:$]?[a-zA-Z0-9_-]+(?:\\${0,3}|[?*+])(?:\\.[a-z]+)?\\.[a-z]+$/.test(name)) {\n\t\t\tconst newPath = pathFn.join(path, name);\n\t\t\tif (isFile(pathFn.join(root, newPath))) {\n\t\t\t\tyield newPath;\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport default async function *scan(root: string): AsyncIterableIterator<FileItem> {\n\troot = pathFn.resolve(root);\n\tfor await (const path of scanFile(root)) {\n\t\tconst pathInfo = path.split('.');\n\t\tconst paths = pathInfo[0]\n\t\t\t.split(/[\\\\/]/).map(it => it === '-' ? it : it\n\t\t\t\t.replace(/^\\$/, ':')\n\t\t\t\t.replace(/\\${3}$/, '+')\n\t\t\t\t.replace(/\\${2}$/, '*')\n\t\t\t\t.replace(/\\${1}$/, '?')\n\t\t\t\t.toLowerCase())\n\t\t\t.filter(Boolean);\n\t\tconst filename = paths[paths.length - 1];\n\t\tconst extname = pathInfo.pop()!;\n\t\tyield {\n\t\t\textname, root, path, type: pathInfo[1] || '',\n\t\t\tscope: (filename === 'index' ? paths.slice(0, -1) : paths).join('/'),\n\t\t\tname: /^:?[a-zA-Z][a-zA-Z0-9]*(?:-_[a-zA-Z][a-zA-Z0-9]*)*[+*?]?$/.test(filename) ? filename.replace(/^:?[a-z]|-[a-z]/g, a => a.toUpperCase()).replace(/[^a-zA-Z0-9]/g, '') : '',\n\t\t};\n\t}\n}\n"],"file":"scan.js"}
@@ -1,3 +0,0 @@
1
- import Router from '.';
2
- import { Handle, Handles, HandleOption } from '..';
3
- export default function setHandleItem(router: Router, path: string, item: Handle | Handles, opt: Omit<HandleOption, 'test' | 'methods'>, name?: string): (() => void)[];
@@ -1,94 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = setHandleItem;
7
-
8
- var symbols = _interopRequireWildcard(require("../symbols"));
9
-
10
- var _vars = require("./vars");
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
- function setHandleItem(router, path, item, opt, name = '') {
17
- if (!item) {
18
- return [];
19
- }
20
-
21
- const removeList = [];
22
- let order = item[symbols.order];
23
- order = typeof order === 'number' && isFinite(order) ? order : opt.order;
24
- const config = { ...opt.config,
25
- ...item[symbols.config]
26
- };
27
-
28
- if (typeof item === 'function') {
29
- let methods = item[symbols.methods];
30
-
31
- if (typeof methods === 'string') {
32
- methods = [methods];
33
- } else if (!Array.isArray(methods)) {
34
- methods = ['GET', 'POST', 'PUT', 'DELETE'];
35
- }
36
-
37
- const remove = router.verb(path, item, { ...opt,
38
- config,
39
- test: item[symbols.test],
40
- order,
41
- methods
42
- });
43
-
44
- if (remove) {
45
- removeList.push(remove);
46
- }
47
-
48
- if (!methods.includes('OPTIONS')) {
49
- const remove = router.verb(path, function (data, ...any) {
50
- return this[symbols.options](data, ...any);
51
- }, { ...opt,
52
- config,
53
- order,
54
- methods: ['OPTIONS'],
55
- name: `${name}:OPTIONS`
56
- });
57
-
58
- if (remove) {
59
- removeList.push(remove);
60
- }
61
- }
62
-
63
- return removeList;
64
- }
65
-
66
- if (typeof item !== 'object') {
67
- return removeList;
68
- }
69
-
70
- for (const method of _vars.methods) {
71
- const f = item[method];
72
-
73
- if (typeof f !== 'function') {
74
- continue;
75
- }
76
-
77
- const remove = router.verb(path, f, { ...opt,
78
- config: { ...config,
79
- ...f[symbols.config]
80
- },
81
- test: f[symbols.test] || item[symbols.test],
82
- order,
83
- methods: [method],
84
- name: name || method
85
- });
86
-
87
- if (remove) {
88
- removeList.push(remove);
89
- }
90
- }
91
-
92
- return removeList;
93
- }
94
- //# sourceMappingURL=setHandleItem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/k99/Router/setHandleItem.ts"],"names":["setHandleItem","router","path","item","opt","name","removeList","order","symbols","isFinite","config","methods","Array","isArray","remove","verb","test","push","includes","data","any","options","method","f"],"mappings":"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","sourcesContent":["import * as symbols from '../symbols';\nimport Router from '.';\nimport { Handle, Handles, HandleOption } from '..';\nimport { methods } from './vars';\n\nexport default function setHandleItem(router: Router, path: string, item: Handle | Handles, opt: Omit<HandleOption, 'test' | 'methods'>, name: string = ''): (() => void)[] {\n\tif (!item) { return []; }\n\tconst removeList: (() => void)[] = [];\n\tlet order = item[symbols.order];\n\torder = typeof order === 'number' && isFinite(order) ? order : opt.order;\n\tconst config = { ...opt.config, ...item[symbols.config] };\n\tif (typeof item === 'function') {\n\t\tlet methods = item[symbols.methods];\n\t\tif (typeof methods === 'string') {\n\t\t\tmethods = [methods];\n\t\t} else if (!Array.isArray(methods)) {\n\t\t\tmethods = ['GET', 'POST', 'PUT', 'DELETE'];\n\t\t}\n\t\tconst remove = router.verb(path, item, {...opt, config, test: item[symbols.test], order, methods });\n\t\tif (remove) { removeList.push(remove); }\n\t\tif (!methods.includes('OPTIONS')) {\n\t\t\tconst remove = router.verb(\n\t\t\t\tpath,\n\t\t\t\tfunction(data, ...any) { return this[symbols.options](data, ...any); },\n\t\t\t\t{...opt, config, order, methods: ['OPTIONS'], name: `${ name }:OPTIONS` }\n\t\t\t)\n\t\t\tif (remove) { removeList.push(remove); }\n\t\t}\n\t\treturn removeList;\n\t}\n\tif (typeof item !== 'object') { return removeList; }\n\tfor (const method of methods) {\n\t\tconst f = item[method];\n\t\tif (typeof f !== 'function') { continue; }\n\t\tconst remove = router.verb(path, f, {...opt, config: {...config, ...f[symbols.config]}, test: f[symbols.test] || item[symbols.test], order, methods: [method], name: name || method });\n\t\tif (remove) { removeList.push(remove); }\n\t}\n\treturn removeList;\n}\n"],"file":"setHandleItem.js"}
@@ -1,12 +0,0 @@
1
- import extendsInterface from './extendsInterface';
2
- import Router from './index';
3
- interface ISettings {
4
- /** 读取配置 */
5
- read(path: string): Promise<object | null | undefined>;
6
- /** 写入配置 */
7
- write(path: string, cfg?: object | null | undefined): Promise<boolean>;
8
- }
9
- interface Settings extends ISettings, extendsInterface {
10
- }
11
- declare function Settings(router: Router): Settings;
12
- export default Settings;
@@ -1,74 +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
- /** 获取查询路径 */
21
- function* getPaths(router, path, usePlugin) {
22
- path = `${pathFn.join('.', path, '.')}.json`;
23
- yield pathFn.resolve(router.runtime.path, router.runtime.settings, path);
24
-
25
- if (!usePlugin) {
26
- return;
27
- }
28
-
29
- const r = /^\/group\/([a-zA-Z][a-zA-Z0-9_-]*(?:\.[a-zA-Z][a-zA-Z0-9_-]*)*)(\/.*)$/.exec(path);
30
-
31
- if (!r) {
32
- return;
33
- }
34
-
35
- const plugin = router.plugin(r[1]);
36
-
37
- if (!plugin) {
38
- return;
39
- }
40
-
41
- yield pathFn.join(plugin.path, r[2]);
42
- }
43
-
44
- function Settings(router) {
45
- return (0, _extendsInterface.default)(router, {
46
- async read(path) {
47
- for (const p of getPaths(this, path, true)) {
48
- try {
49
- return JSON.parse((await new Promise((resolve, reject) => fsFn.readFile(p, 'utf-8', (e, d) => e ? reject(e) : resolve(d)))));
50
- } catch {}
51
- }
52
- },
53
-
54
- async write(path, cfg) {
55
- for (const p of getPaths(this, path, true)) {
56
- if (cfg === undefined) {
57
- return new Promise(resolve => fsFn.unlink(p, e => resolve(!e)));
58
- }
59
-
60
- await new Promise(r => fsFn.mkdir(pathFn.dirname(p), {
61
- recursive: true
62
- }, () => r()));
63
- return new Promise(resolve => fsFn.writeFile(p, JSON.stringify(cfg), e => resolve(!e)));
64
- }
65
-
66
- return false;
67
- }
68
-
69
- }, {});
70
- }
71
-
72
- var _default = Settings;
73
- exports.default = _default;
74
- //# sourceMappingURL=settings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/k99/Router/settings.ts"],"names":["getPaths","router","path","usePlugin","pathFn","join","resolve","runtime","settings","r","exec","plugin","Settings","read","p","JSON","parse","Promise","reject","fsFn","readFile","e","d","write","cfg","undefined","unlink","mkdir","dirname","recursive","writeFile","stringify"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAUA;AACA,UAAUA,QAAV,CAAmBC,MAAnB,EAAmCC,IAAnC,EAAiDC,SAAjD,EAAsE;AACrED,EAAAA,IAAI,GAAK,GAAGE,MAAM,CAACC,IAAP,CAAY,GAAZ,EAAkBH,IAAlB,EAAwB,GAAxB,CAA8B,OAA1C;AACA,QAAME,MAAM,CAACE,OAAP,CAAeL,MAAM,CAACM,OAAP,CAAeL,IAA9B,EAAoCD,MAAM,CAACM,OAAP,CAAeC,QAAnD,EAA6DN,IAA7D,CAAN;;AACA,MAAI,CAACC,SAAL,EAAgB;AAAE;AAAS;;AAC3B,QAAMM,CAAC,GAAG,yEAAyEC,IAAzE,CAA8ER,IAA9E,CAAV;;AACA,MAAI,CAACO,CAAL,EAAQ;AAAE;AAAS;;AACnB,QAAME,MAAM,GAAGV,MAAM,CAACU,MAAP,CAAcF,CAAC,CAAC,CAAD,CAAf,CAAf;;AACA,MAAI,CAACE,MAAL,EAAa;AAAE;AAAS;;AACxB,QAAMP,MAAM,CAACC,IAAP,CAAYM,MAAM,CAACT,IAAnB,EAAyBO,CAAC,CAAC,CAAD,CAA1B,CAAN;AACA;;AAED,SAASG,QAAT,CAAkBX,MAAlB,EAAkC;AACjC,SAAO,+BAA0CA,MAA1C,EAAkD;AACxD,UAAMY,IAAN,CAAyBX,IAAzB,EAAuC;AACtC,WAAK,MAAMY,CAAX,IAAgBd,QAAQ,CAAC,IAAD,EAAOE,IAAP,EAAa,IAAb,CAAxB,EAA4C;AAC3C,YAAI;AACH,iBAAOa,IAAI,CAACC,KAAL,EAAW,MAAM,IAAIC,OAAJ,CAAY,CAACX,OAAD,EAAUY,MAAV,KAAqBC,IAAI,CAACC,QAAL,CAAcN,CAAd,EAAiB,OAAjB,EAA0B,CAACO,CAAD,EAAIC,CAAJ,KAAUD,CAAC,GAAGH,MAAM,CAACG,CAAD,CAAT,GAAef,OAAO,CAACgB,CAAD,CAA3D,CAAjC,CAAjB,EAAP;AACA,SAFD,CAEE,MAAM,CAAE;AACV;AACD,KAPuD;;AAQxD,UAAMC,KAAN,CAA0BrB,IAA1B,EAAwCsB,GAAxC,EAAyE;AACxE,WAAK,MAAMV,CAAX,IAAgBd,QAAQ,CAAC,IAAD,EAAOE,IAAP,EAAa,IAAb,CAAxB,EAA4C;AAC3C,YAAIsB,GAAG,KAAKC,SAAZ,EAAuB;AACtB,iBAAO,IAAIR,OAAJ,CAAqBX,OAAO,IAAIa,IAAI,CAACO,MAAL,CAAYZ,CAAZ,EAAeO,CAAC,IAAEf,OAAO,CAAC,CAACe,CAAF,CAAzB,CAAhC,CAAP;AACA;;AACD,cAAM,IAAIJ,OAAJ,CAAYR,CAAC,IAAIU,IAAI,CAACQ,KAAL,CAAWvB,MAAM,CAACwB,OAAP,CAAed,CAAf,CAAX,EAA8B;AAAEe,UAAAA,SAAS,EAAE;AAAb,SAA9B,EAAmD,MAAMpB,CAAC,EAA1D,CAAjB,CAAN;AACA,eAAO,IAAIQ,OAAJ,CAAYX,OAAO,IAAIa,IAAI,CAACW,SAAL,CAAehB,CAAf,EAAkBC,IAAI,CAACgB,SAAL,CAAeP,GAAf,CAAlB,EAAuCH,CAAC,IAAIf,OAAO,CAAC,CAACe,CAAF,CAAnD,CAAvB,CAAP;AACA;;AACD,aAAO,KAAP;AACA;;AAjBuD,GAAlD,EAkBJ,EAlBI,CAAP;AAmBA;;eAEcT,Q","sourcesContent":["import * as fsFn from 'fs';\nimport * as pathFn from 'path';\nimport extendsInterface from './extendsInterface';\nimport Router from './index';\ninterface ISettings {\n\t/** 读取配置 */\n\tread(path: string): Promise<object | null | undefined>;\n\t/** 写入配置 */\n\twrite(path: string, cfg?: object | null | undefined): Promise<boolean>;\n\t// todo: watch, unwatch\n}\ninterface Settings extends ISettings, extendsInterface {}\n/** 获取查询路径 */\nfunction *getPaths(router: Router, path: string, usePlugin?: boolean) {\n\tpath = `${ pathFn.join('.', path, '.') }.json`;\n\tyield pathFn.resolve(router.runtime.path, router.runtime.settings, path);\n\tif (!usePlugin) { return; }\n\tconst r = /^\\/group\\/([a-zA-Z][a-zA-Z0-9_-]*(?:\\.[a-zA-Z][a-zA-Z0-9_-]*)*)(\\/.*)$/.exec(path);\n\tif (!r) { return; }\n\tconst plugin = router.plugin(r[1]);\n\tif (!plugin) { return; }\n\tyield pathFn.join(plugin.path, r[2]);\n}\n\nfunction Settings(router: Router) {\n\treturn extendsInterface<ISettings, {}, Settings>(router, {\n\t\tasync read(this: Router, path: string) {\n\t\t\tfor (const p of getPaths(this, path, true)) {\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(await new Promise((resolve, reject) => fsFn.readFile(p, 'utf-8', (e, d) => e ? reject(e) : resolve(d))));\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t},\n\t\tasync write(this: Router, path: string, cfg?: object | null | undefined) {\n\t\t\tfor (const p of getPaths(this, path, true)) {\n\t\t\t\tif (cfg === undefined) {\n\t\t\t\t\treturn new Promise<boolean>(resolve => fsFn.unlink(p, e=>resolve(!e)));\n\t\t\t\t}\n\t\t\t\tawait new Promise(r => fsFn.mkdir(pathFn.dirname(p), { recursive: true }, () => r()));\n\t\t\t\treturn new Promise(resolve => fsFn.writeFile(p, JSON.stringify(cfg), e => resolve(!e)));\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t}, {});\n}\n\nexport default Settings;\n"],"file":"settings.js"}
package/Router/start.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { StartOption } from '../index';
2
- import Router from './index';
3
- export default function start(router: Router, { showRouter }?: StartOption): Promise<Router>;
package/Router/start.js DELETED
@@ -1,270 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = start;
7
-
8
- var fsFn = _interopRequireWildcard(require("fs"));
9
-
10
- var pathFn = _interopRequireWildcard(require("path"));
11
-
12
- var _Plugin = _interopRequireWildcard(require("../Plugin"));
13
-
14
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
15
-
16
- 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; }
17
-
18
- /**
19
- * 将插件添加到系统
20
- */
21
- async function addPlugin(plugins, router, name, added) {
22
- if (added.has(name)) {
23
- return;
24
- }
25
-
26
- added.add(name);
27
- const plugin = plugins[name];
28
-
29
- if (!plugin) {
30
- throw new Error(`don't find the plugin '${name}'`);
31
- }
32
-
33
- for (const p of plugin.dependencies) {
34
- await addPlugin(plugins, router, p, added);
35
- } // await plugin.callHook('');
36
-
37
-
38
- router.plugin(plugin);
39
-
40
- for (const {
41
- type,
42
- path = '',
43
- scope
44
- } of plugin.resources) {
45
- switch (type) {
46
- case 'app':
47
- await router.scan(pathFn.join(plugin.path, path), {
48
- group: plugin.name,
49
- scope
50
- });
51
- break;
52
- }
53
- }
54
- }
55
- /** 判断是否为文件 */
56
-
57
-
58
- async function isFile(path) {
59
- return new Promise((resolve, reject) => fsFn.stat(path, (err, stats) => err ? reject(err) : resolve(stats))).then(s => s.isFile()).catch(() => false);
60
- }
61
- /**
62
- * 设置配置
63
- * @param pluginPath 插件路径
64
- * @param config 配置
65
- * @param hasParent 是否存在父配置
66
- */
67
-
68
-
69
- function set(plugins, pluginPath, baseConfig, hasParent) {
70
- let plugin = plugins[pluginPath];
71
-
72
- if (plugin) {
73
- return plugin;
74
- }
75
-
76
- let {
77
- name
78
- } = baseConfig || {};
79
- name = typeof name === 'string' && _Plugin.nameRegex.test(name) && name || '';
80
- plugin = plugins[name];
81
-
82
- if (plugin) {
83
- return plugin;
84
- }
85
-
86
- if (hasParent && !name) {
87
- return;
88
- }
89
-
90
- plugin = new _Plugin.default(name, pluginPath, baseConfig);
91
- plugins[name] = plugin;
92
- plugins[pluginPath] = plugin;
93
- return plugin;
94
- }
95
- /**
96
- * 获取配置
97
- * @param path 插件路径
98
- * @param configName 配置文件名
99
- * @param hasParent 是否存在父配置
100
- */
101
-
102
-
103
- async function readConfig(plugins, path, configName, hasParent) {
104
- try {
105
- return set(plugins, path, (await Promise.resolve().then(() => _interopRequireWildcard(require(`${pathFn.resolve(path, configName)}`)))), hasParent);
106
- } catch (e) {
107
- console.error(e);
108
- }
109
-
110
- return hasParent ? undefined : set(plugins, path, {});
111
- }
112
- /**
113
- * 从 npm 包目录中查找
114
- * @param id 相对 node_modules 的路径
115
- * @param parent 父配置
116
- */
117
-
118
-
119
- async function find(plugins, id, parent) {
120
- let {
121
- path
122
- } = parent;
123
-
124
- for (;;) {
125
- for (let f of _Plugin.default.configFileNames) {
126
- const p = pathFn.join(path, 'node_modules', id, f);
127
-
128
- if (!(await isFile(p))) {
129
- continue;
130
- }
131
-
132
- const resPath = pathFn.join(path, 'node_modules', id);
133
- return plugins[resPath] || readConfig(plugins, resPath, f, true);
134
- }
135
-
136
- const p = pathFn.dirname(path);
137
-
138
- if (p === path) {
139
- return;
140
- }
141
-
142
- path = p;
143
- }
144
- }
145
- /**
146
- * 从目录读取插件信息
147
- * @param path 目录
148
- * @param hasParent 是否存在父配置
149
- */
150
-
151
-
152
- async function read(plugins, path, parent) {
153
- if (parent) {
154
- path = pathFn.resolve(parent.path, path);
155
- }
156
-
157
- for (let f of _Plugin.default.configFileNames) {
158
- const p = pathFn.resolve(path, f);
159
-
160
- if (!(await isFile(p))) {
161
- continue;
162
- }
163
-
164
- return readConfig(plugins, path, f, Boolean(parent));
165
- }
166
-
167
- if (parent) {
168
- return;
169
- }
170
-
171
- const plugin = new _Plugin.default('', path);
172
- plugins[path] = plugin;
173
- plugins[''] = plugin;
174
- return plugin;
175
- }
176
-
177
- async function start(router, {
178
- showRouter
179
- } = {}) {
180
- /** 插件映射 */
181
- const plugins = Object.create(null);
182
- /** 入口模块 */
183
-
184
- const main = await read(plugins, process.cwd());
185
- /** 插件集合 */
186
-
187
- const pluginSet = new Set([main]); // 查找插件
188
-
189
- for (const path of main.plugins) {
190
- const item = await read(plugins, path, main);
191
-
192
- if (!item) {
193
- continue;
194
- }
195
-
196
- if (pluginSet.has(item)) {
197
- continue;
198
- }
199
-
200
- pluginSet.add(item);
201
- } // 扫描目录
202
-
203
-
204
- if (main.scan) {
205
- const path = pathFn.join(process.cwd(), main.scan);
206
- const list = await new Promise(resolve => fsFn.readdir(path, {
207
- encoding: 'utf-8'
208
- }, (err, files) => err ? resolve([]) : resolve(files)));
209
-
210
- for (let p of list) {
211
- const item = await read(plugins, pathFn.join(path, p), main);
212
-
213
- if (!item) {
214
- continue;
215
- }
216
-
217
- if (pluginSet.has(item)) {
218
- continue;
219
- }
220
-
221
- pluginSet.add(item);
222
- }
223
- } // 递归 npm 包插件
224
-
225
-
226
- for (let pluginlist = [...pluginSet], plugin = pluginlist.shift(); plugin; plugin = pluginlist.shift()) {
227
- for (let p of plugin.packages) {
228
- const item = await find(plugins, p, plugin);
229
-
230
- if (!item) {
231
- continue;
232
- }
233
-
234
- if (pluginSet.has(item)) {
235
- continue;
236
- }
237
-
238
- pluginSet.add(item);
239
- pluginlist.push(item);
240
- }
241
- }
242
-
243
- for (let p of pluginSet) {
244
- await p.callHook('inited').catch(() => {});
245
- } // 添加插件
246
-
247
-
248
- const added = new Set();
249
-
250
- for (let t of [...pluginSet].map(p => p.name)) {
251
- await addPlugin(plugins, router, t, added);
252
- }
253
-
254
- if (showRouter) {
255
- console.table([...router].map(({
256
- methods,
257
- path,
258
- name,
259
- group
260
- }) => ({
261
- methods: methods.join(' '),
262
- path,
263
- name,
264
- group
265
- })));
266
- }
267
-
268
- return router;
269
- }
270
- //# sourceMappingURL=start.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/k99/Router/start.ts"],"names":["addPlugin","plugins","router","name","added","has","add","plugin","Error","p","dependencies","type","path","scope","resources","scan","pathFn","join","group","isFile","Promise","resolve","reject","fsFn","stat","err","stats","then","s","catch","set","pluginPath","baseConfig","hasParent","nameRegex","test","Plugin","readConfig","configName","e","console","error","undefined","find","id","parent","f","configFileNames","resPath","dirname","read","Boolean","start","showRouter","Object","create","main","process","cwd","pluginSet","Set","item","list","readdir","encoding","files","pluginlist","shift","packages","push","callHook","t","map","table","methods"],"mappings":"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","sourcesContent":["import * as fsFn from 'fs';\nimport * as pathFn from 'path';\n\nimport { StartOption, PluginConfig } from '../index';\nimport Plugin, { nameRegex } from '../Plugin';\nimport Router from './index';\n\ninterface Plugins {\n\t[k: string]: Plugin;\n}\n/**\n * 将插件添加到系统\n */\nasync function addPlugin(plugins: Plugins, router: Router, name: string, added: Set<string>) {\n\tif (added.has(name)) { return; }\n\tadded.add(name);\n\tconst plugin = plugins[name];\n\tif (!plugin) {\n\t\tthrow new Error(`don't find the plugin '${ name }'`);\n\t}\n\tfor (const p of plugin.dependencies) {\n\t\tawait addPlugin(plugins, router, p, added);\n\t}\n\t// await plugin.callHook('');\n\trouter.plugin(plugin);\n\tfor (const {type, path = '', scope} of plugin.resources) {\n\t\tswitch (type) {\n\t\t\tcase 'app':\n\t\t\t\tawait router.scan(pathFn.join(plugin.path, path), { group: plugin.name, scope });\n\t\t\t\tbreak;\n\t\t}\n\t}\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\n/**\n * 设置配置\n * @param pluginPath 插件路径\n * @param config 配置\n * @param hasParent 是否存在父配置\n */\nfunction set(plugins: Plugins, pluginPath: string, baseConfig: PluginConfig, hasParent?: false): Plugin;\nfunction set(plugins: Plugins, pluginPath: string, baseConfig: PluginConfig, hasParent?: boolean): Plugin | undefined;\nfunction set(plugins: Plugins, pluginPath: string, baseConfig: PluginConfig, hasParent?: boolean): Plugin | undefined {\n\tlet plugin = plugins[pluginPath];\n\tif (plugin) { return plugin; }\n\tlet { name } = baseConfig || {};\n\tname = typeof name === 'string' && nameRegex.test(name) && name || '';\n\tplugin = plugins[name];\n\tif (plugin) { return plugin; }\n\tif (hasParent && !name) { return; }\n\tplugin = new Plugin(name, pluginPath, baseConfig);\n\tplugins[name] = plugin;\n\tplugins[pluginPath] = plugin;\n\treturn plugin;\n}\n/**\n * 获取配置\n * @param path 插件路径\n * @param configName 配置文件名\n * @param hasParent 是否存在父配置\n */\nasync function readConfig(plugins: Plugins, path: string, configName: string, hasParent: boolean): Promise<Plugin | undefined> {\n\ttry {\n\t\treturn set(plugins, path, await import(pathFn.resolve(path, configName)), hasParent);\n\t} catch (e) {\n\t\tconsole.error(e);\n\t}\n\treturn hasParent ? undefined : set(plugins, path, {});\n}\n/**\n * 从 npm 包目录中查找\n * @param id 相对 node_modules 的路径\n * @param parent 父配置\n */\nasync function find(plugins: Plugins, id: string, parent: Plugin): Promise<Plugin | undefined> {\n\tlet { path } = parent;\n\tfor (;;) {\n\t\tfor (let f of Plugin.configFileNames) {\n\t\t\tconst p = pathFn.join(path, 'node_modules', id, f);\n\t\t\tif (!await isFile(p)) { continue; }\n\t\t\tconst resPath = pathFn.join(path, 'node_modules', id);\n\t\t\treturn plugins[resPath] || readConfig(plugins, resPath, f, true);\n\t\t}\n\t\tconst p = pathFn.dirname(path);\n\t\tif (p === path) { return; }\n\t\tpath = p;\n\t}\n}\n/**\n * 从目录读取插件信息\n * @param path 目录\n * @param hasParent 是否存在父配置\n */\nasync function read(plugins: Plugins, path: string): Promise<Plugin>;\nasync function read(plugins: Plugins, path: string, parent: Plugin): Promise<Plugin | undefined>;\nasync function read(plugins: Plugins, path: string, parent?: Plugin): Promise<Plugin | undefined> {\n\tif (parent) { path = pathFn.resolve(parent.path, path); }\n\tfor (let f of Plugin.configFileNames) {\n\t\tconst p = pathFn.resolve(path, f);\n\t\tif (!await isFile(p)) { continue; }\n\t\treturn readConfig(plugins, path, f, Boolean(parent));\n\t}\n\tif (parent) { return; }\n\tconst plugin = new Plugin('', path);\n\tplugins[path] = plugin;\n\tplugins[''] = plugin;\n\treturn plugin;\n}\n\nexport default async function start(router: Router, {showRouter}: StartOption = {}): Promise<Router> {\n\t/** 插件映射 */\n\tconst plugins: Plugins = Object.create(null);\n\t/** 入口模块 */\n\tconst main = await read(plugins, process.cwd());\n\t/** 插件集合 */\n\tconst pluginSet = new Set<Plugin>([main]);\n\t// 查找插件\n\tfor (const path of main.plugins) {\n\t\tconst item = await read(plugins, path, main);\n\t\tif (!item) { continue; }\n\t\tif (pluginSet.has(item)) { continue; }\n\t\tpluginSet.add(item);\n\t}\n\t// 扫描目录\n\tif (main.scan) {\n\t\tconst path = pathFn.join(process.cwd(), main.scan);\n\t\tconst list: string[] = await new Promise(resolve => fsFn.readdir(path, {encoding: 'utf-8'}, (err, files) => err ? resolve([]) : resolve(files)));\n\t\tfor (let p of list) {\n\t\t\tconst item = await read(plugins, pathFn.join(path, p), main);\n\t\t\tif (!item) { continue; }\n\t\t\tif (pluginSet.has(item)) { continue; }\n\t\t\tpluginSet.add(item);\n\t\t}\n\t}\n\n\t// 递归 npm 包插件\n\tfor (let pluginlist = [...pluginSet], plugin = pluginlist.shift(); plugin; plugin = pluginlist.shift()) {\n\t\tfor (let p of plugin.packages) {\n\t\t\tconst item = await find(plugins, p, plugin);\n\t\t\tif (!item) { continue; }\n\t\t\tif (pluginSet.has(item)) { continue; }\n\t\t\tpluginSet.add(item);\n\t\t\tpluginlist.push(item);\n\t\t}\n\t}\n\tfor (let p of pluginSet) {\n\t\tawait p.callHook('inited').catch(() => {});\n\t}\n\t// 添加插件\n\tconst added = new Set<string>();\n\tfor (let t of [...pluginSet].map(p => p.name)) {\n\t\tawait addPlugin(plugins, router, t, added);\n\t}\n\tif (showRouter) {\n\t\tconsole.table([...router].map(({methods, path, name, group}) => ({methods: methods.join(' '), path, name, group})));\n\t}\n\treturn router;\n}\n"],"file":"start.js"}
package/Router/vars.d.ts DELETED
@@ -1,10 +0,0 @@
1
- import { Method } from '..';
2
- /** 方法列表 */
3
- export declare const methods: Set<Method>;
4
- /** 资源的处理函数配置 */
5
- export declare const resourceHandleMap: {
6
- [key: string]: {
7
- methods: Method[];
8
- path: string;
9
- };
10
- };
package/Router/vars.js DELETED
@@ -1,40 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.resourceHandleMap = exports.methods = void 0;
7
-
8
- /** 方法列表 */
9
- const methods = new Set(['GET', 'POST', 'PUT', 'DELETE', 'HEAD', 'OPTIONS']);
10
- /** 资源的处理函数配置 */
11
-
12
- exports.methods = methods;
13
- const resourceHandleMap = {
14
- index: {
15
- methods: ['GET'],
16
- path: ''
17
- },
18
- create: {
19
- methods: ['POST'],
20
- path: ''
21
- },
22
- new: {
23
- methods: ['GET'],
24
- path: '/new'
25
- },
26
- show: {
27
- methods: ['GET'],
28
- path: '/:id'
29
- },
30
- update: {
31
- methods: ['PUT'],
32
- path: '/:id'
33
- },
34
- destroy: {
35
- methods: ['DELETE'],
36
- path: '/:id'
37
- }
38
- };
39
- exports.resourceHandleMap = resourceHandleMap;
40
- //# sourceMappingURL=vars.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/k99/Router/vars.ts"],"names":["methods","Set","resourceHandleMap","index","path","create","new","show","update","destroy"],"mappings":";;;;;;;AAEA;AACO,MAAMA,OAAO,GAAG,IAAIC,GAAJ,CAAgB,CAAC,KAAD,EAAQ,MAAR,EAAgB,KAAhB,EAAuB,QAAvB,EAAiC,MAAjC,EAAyC,SAAzC,CAAhB,CAAhB;AAEP;;;AACO,MAAMC,iBAAoE,GAAG;AACnFC,EAAAA,KAAK,EAAI;AAAEH,IAAAA,OAAO,EAAE,CAAC,KAAD,CAAX;AAAuBI,IAAAA,IAAI,EAAE;AAA7B,GAD0E;AAEnFC,EAAAA,MAAM,EAAG;AAAEL,IAAAA,OAAO,EAAE,CAAC,MAAD,CAAX;AAAuBI,IAAAA,IAAI,EAAE;AAA7B,GAF0E;AAGnFE,EAAAA,GAAG,EAAM;AAAEN,IAAAA,OAAO,EAAE,CAAC,KAAD,CAAX;AAAuBI,IAAAA,IAAI,EAAE;AAA7B,GAH0E;AAInFG,EAAAA,IAAI,EAAK;AAAEP,IAAAA,OAAO,EAAE,CAAC,KAAD,CAAX;AAAuBI,IAAAA,IAAI,EAAE;AAA7B,GAJ0E;AAKnFI,EAAAA,MAAM,EAAG;AAAER,IAAAA,OAAO,EAAE,CAAC,KAAD,CAAX;AAAuBI,IAAAA,IAAI,EAAE;AAA7B,GAL0E;AAMnFK,EAAAA,OAAO,EAAE;AAAET,IAAAA,OAAO,EAAE,CAAC,QAAD,CAAX;AAAuBI,IAAAA,IAAI,EAAE;AAA7B;AAN0E,CAA7E","sourcesContent":["import { Method } from '..';\n\n/** 方法列表 */\nexport const methods = new Set<Method>(['GET', 'POST', 'PUT', 'DELETE', 'HEAD', 'OPTIONS']);\n\n/** 资源的处理函数配置 */\nexport const resourceHandleMap: {[key: string]:{methods: Method[], path: string}} = {\n\tindex: { methods: ['GET' ], path: '' },\n\tcreate: { methods: ['POST' ], path: '' },\n\tnew: { methods: ['GET' ], path: '/new' },\n\tshow: { methods: ['GET' ], path: '/:id' },\n\tupdate: { methods: ['PUT' ], path: '/:id' },\n\tdestroy: { methods: ['DELETE'], path: '/:id' },\n};\n"],"file":"vars.js"}