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/index.js DELETED
@@ -1,155 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _exportNames = {
7
- Handle: true,
8
- Router: true,
9
- Controller: true,
10
- ControllerClass: true,
11
- Container: true,
12
- ContainerClass: true,
13
- Extension: true,
14
- ExtensionClass: true,
15
- Preprocessor: true,
16
- PreprocessorClass: true,
17
- Service: true,
18
- ServiceClass: true,
19
- ExitSignal: true,
20
- Plugin: true,
21
- StreamUtil: true,
22
- symbols: true
23
- };
24
- exports.Handle = Handle;
25
- Object.defineProperty(exports, "Router", {
26
- enumerable: true,
27
- get: function () {
28
- return _Router.default;
29
- }
30
- });
31
- Object.defineProperty(exports, "Controller", {
32
- enumerable: true,
33
- get: function () {
34
- return _Controller.default;
35
- }
36
- });
37
- Object.defineProperty(exports, "ControllerClass", {
38
- enumerable: true,
39
- get: function () {
40
- return _Controller.Class;
41
- }
42
- });
43
- Object.defineProperty(exports, "Container", {
44
- enumerable: true,
45
- get: function () {
46
- return _Container.default;
47
- }
48
- });
49
- Object.defineProperty(exports, "ContainerClass", {
50
- enumerable: true,
51
- get: function () {
52
- return _Container.Class;
53
- }
54
- });
55
- Object.defineProperty(exports, "Extension", {
56
- enumerable: true,
57
- get: function () {
58
- return _Extension.default;
59
- }
60
- });
61
- Object.defineProperty(exports, "ExtensionClass", {
62
- enumerable: true,
63
- get: function () {
64
- return _Extension.Class;
65
- }
66
- });
67
- Object.defineProperty(exports, "Preprocessor", {
68
- enumerable: true,
69
- get: function () {
70
- return _Preprocessor.default;
71
- }
72
- });
73
- Object.defineProperty(exports, "PreprocessorClass", {
74
- enumerable: true,
75
- get: function () {
76
- return _Preprocessor.Class;
77
- }
78
- });
79
- Object.defineProperty(exports, "Service", {
80
- enumerable: true,
81
- get: function () {
82
- return _Service.default;
83
- }
84
- });
85
- Object.defineProperty(exports, "ServiceClass", {
86
- enumerable: true,
87
- get: function () {
88
- return _Service.Class;
89
- }
90
- });
91
- Object.defineProperty(exports, "ExitSignal", {
92
- enumerable: true,
93
- get: function () {
94
- return _ExitSignal.default;
95
- }
96
- });
97
- Object.defineProperty(exports, "Plugin", {
98
- enumerable: true,
99
- get: function () {
100
- return _Plugin.default;
101
- }
102
- });
103
- Object.defineProperty(exports, "StreamUtil", {
104
- enumerable: true,
105
- get: function () {
106
- return _util.StreamUtil;
107
- }
108
- });
109
- exports.symbols = void 0;
110
-
111
- var _Router = _interopRequireDefault(require("./Router"));
112
-
113
- var _Controller = _interopRequireWildcard(require("./Controller"));
114
-
115
- var _Container = _interopRequireWildcard(require("./Container"));
116
-
117
- var _Extension = _interopRequireWildcard(require("./Extension"));
118
-
119
- var _Preprocessor = _interopRequireWildcard(require("./Preprocessor"));
120
-
121
- var _Service = _interopRequireWildcard(require("./Service"));
122
-
123
- var _ExitSignal = _interopRequireDefault(require("./ExitSignal"));
124
-
125
- var _Plugin = _interopRequireDefault(require("./Plugin"));
126
-
127
- var _setOptions = require("./setOptions");
128
-
129
- Object.keys(_setOptions).forEach(function (key) {
130
- if (key === "default" || key === "__esModule") return;
131
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
132
- Object.defineProperty(exports, key, {
133
- enumerable: true,
134
- get: function () {
135
- return _setOptions[key];
136
- }
137
- });
138
- });
139
-
140
- var _util = require("./util");
141
-
142
- var symbols = _interopRequireWildcard(require("./symbols"));
143
-
144
- exports.symbols = symbols;
145
-
146
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
147
-
148
- 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; }
149
-
150
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
151
-
152
- function Handle(handle) {
153
- return handle;
154
- }
155
- //# sourceMappingURL=index.js.map
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/k99/index.ts"],"names":["Handle","handle"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAEA;;;;;;;;;;AA8CO,SAASA,MAAT,CAAmDC,MAAnD,EAAmF;AACzF,SAAOA,MAAP;AACA","sourcesContent":["export { default as Router } from './Router';\nexport { default as Controller, Class as ControllerClass } from './Controller';\nexport { default as Container, Class as ContainerClass } from './Container';\nexport { default as Extension, Class as ExtensionClass } from './Extension';\nexport { default as Preprocessor, Class as PreprocessorClass } from './Preprocessor';\nexport { default as Service, Class as ServiceClass } from './Service';\nexport { default as ExitSignal } from './ExitSignal';\nexport { default as Plugin } from './Plugin';\n\nexport * from './setOptions';\n\nexport { StreamUtil } from './util';\n\nimport * as symbols from './symbols';\nexport { symbols };\n\nimport Controller, { Class as ControllerClass } from './Controller';\nimport Preprocessor, { Class as PreprocessorClass } from './Preprocessor';\nimport { StreamUtil } from './util';\nimport Router from './Router';\nimport { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http';\nimport { ParsedUrlQuery } from 'querystring';\nimport * as stream from 'stream';\nimport Service from './Service';\n\n\ntype PromiseValue<T> = T extends PromiseLike<infer V> ? V : T;\nexport type ControllerArgv<C extends Controller> = PromiseValue<ReturnType<C[typeof symbols.argv]>>;\n\n/** 处理函数选项选项 */\nexport interface HandleOptions<C extends Controller = Controller> {\n\t/** 顺序 */\n\t[symbols.order]?: number;\n\t/** 方法列表 */\n\t[symbols.methods]?: Method | Method[];\n\t// /** 配置信息 */\n\t[symbols.config]?: object;\n\t[symbols.test]?(param : {[k: string]: string | string[] | undefined}): boolean | Promise<boolean>;\n\t[symbols.options]?: Handle<C> | Options;\n}\n/** 处理函数定义 */\nexport interface Handle<C extends Controller = Controller> extends HandleOptions<C> {\n\t(this: C, data: { [key: string]: any; }, ...argv: ControllerArgv<C>): void | undefined | StreamUtil.WriteType | object | Promise<void | undefined | StreamUtil.WriteType | object>;\n\n}\nexport interface Services {\n\t[key: string]: undefined | Service<any, any>;\n}\n\n/** 处理函数定义 */\nexport interface Handles<C extends Controller = Controller> extends HandleOptions<C> {\n\tOPTIONS?: Handle<C>;\n\tGET?: Handle<C>;\n\tPOST?: Handle<C>;\n\tPUT?: Handle<C>;\n\tDELETE?: Handle<C>;\n\tHEAD?: Handle<C>;\n}\n\nexport function Handle<C extends Controller = Controller>(handle: Handle<C> | Handles<C>) {\n\treturn handle;\n}\n\nexport type IClass<T extends object, P extends any[], S extends {[key: string]: any} = {}> = S & {\n\tnew(...p: P): T;\n\tprototype: T;\n};\n\nexport interface ResourceOption {\n\t/** 控制器 */\n\tcontroller?: ControllerClass<any>;\n\t/** 所属组 */\n\tgroup?: string;\n\t/** 顺序 */\n\torder?: number;\n\t/** 包根目录 */\n\troot?: string;\n\t/** 当前文件相对于包根目录的路径 */\n\tfilePath?: string;\n\t/** 当前文件的绝对路径 */\n\tabsPath?: string;\n\t/** 配置信息 */\n\tconfig?: object;\n}\n\nexport interface HandleOption extends ResourceOption {\n\t/** 处理函数的名称 */\n\tname?: string;\n\t/** 方法列表 */\n\tmethods?: Method | Method[];\n\t/** 文件导出的内容 */\n\texports?: Exports;\n\t/** 测试函数 */\n\ttest?(param : {[k: string]: string | string[] | undefined}): boolean | Promise<boolean>;\n}\n\nexport interface HandleInfo extends HandleOption {\n\t/** 处理函数的名称 */\n\tname: string;\n\t/** 所属组 */\n\tgroup: string;\n\t/** 顺序 */\n\torder: number;\n\t/** 处理函数 */\n\thandle: Handle;\n\t/** 请求路径 */\n\tpath: string;\n\t/** 方法列表 */\n\tmethods: Method[];\n\t/** 域 */\n\tscope: string[];\n\t/** 路径匹配 */\n\tmatch(path: string): any;\n\t/** 文件导出的内容 */\n\texports: Exports;\n\t/** 包根目录 */\n\troot: string;\n\t/** 当前文件相对于包根目录的路径 */\n\tfilePath: string;\n\t/** 当前文件的绝对路径 */\n\tabsPath: string;\n\t/** 配置信息 */\n\tconfig: object;\n}\n\nexport interface FileItem {\n\t/** 扩展名 */\n\textname: string;\n\t/** 类型 */\n\ttype: string;\n\t/** 扫描根路径 */\n\troot: string;\n\t/** 相对于扫描根路径的路径 */\n\tpath: string;\n\t/** 名称,处理后的文件名,不含扩展名及类型,大驼峰式 */\n\tname: string;\n\t/** 范围 经过处理的相对路径,不含扩展名及类型,且不含文件名 index,中划线式 */\n\tscope: string;\n}\n\n/** 启动配置 */\nexport interface StartOption {\n\t/** 是否打印路由列表 */\n\tshowRouter?: boolean;\n}\n\n/** 注册的附加选项 */\nexport interface ROptions {\n\t/** 所在组 */\n\tgroup?: string;\n\t/** 顺序 */\n\torder?: number;\n}\n/** 要注册的文件信息 */\nexport interface RFile extends FileItem, ROptions { }\n\nexport interface Register {\n\t/** 文件扩展名 */\n\textname: string;\n\t/** 文件类型名 */\n\ttype?: string;\n\t/** 是否需要名称 */\n\tneedName?: boolean;\n\t/**\n\t * 注册函数\n\t * @param file 要注册的文件的信息\n\t * @param opt 注册选项\n\t * @param router 当前的路由\n\t */\n\tregister(file: RFile, router: Router): boolean | Promise<boolean>;\n}\n\nexport interface Order {\n\t/** 默认顺序,也是控制器的顺序 */\n\tdefault?: number;\n\t/** 预加载器顺序 */\n\tpreprocessor?: number;\n\t[key: string]: number | undefined;\n}\n\n/** 钩子类型 */\nexport type Hook = string | (() => Promise<void> | void);\n/** 钩子列表 */\nexport interface Hooks {\n\t[key: string]: Hook | undefined;\n}\n\nexport interface AddOptions {\n\tgroup?: string;\n\tscope?: string;\n\torder?: number;\n}\n\n\nexport interface RouterRuntime {\n\t/** 工作路径(绝对路径) */\n\treadonly path: string;\n\t/** 配置路径(相对于工作路径) */\n\treadonly settings: string;\n\t/** assets 路径(相对于工作路径) */\n\treadonly assets: string;\n\t/** log 路径(相对于工作路径) */\n\treadonly log: string;\n}\nexport interface RouterOptions {\n\t/** 工作路径 */\n\tpath?: string;\n\t/** 设置路径 */\n\tsettings?: string;\n\t/** assets 路径 */\n\tassets?: string;\n\t/** assets 路径 */\n\tlog?: string;\n}\n\n\nexport type Method = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'OPTIONS';\nexport interface Options {\n\t[key: string]: any;\n}\n\n\n/** 处理项目文件导出 */\nexport interface Exports<C extends Controller = any> extends Handles<C> {\n\tController?: ControllerClass<C>;\n\tPreprocessor?: PreprocessorClass<Preprocessor<C, ControllerClass<C>>>;\n\tConfig?: object;\n\n\tindex?: Handle<C> | Handles<C>;\n\tnew?: Handle<C> | Handles<C>;\n\tcreate?: Handle<C> | Handles<C>;\n\tshow?: Handle<C> | Handles<C>;\n\tupdate?: Handle<C> | Handles<C>;\n\tdestroy?: Handle<C> | Handles<C>;\n\t[key: string]: any;\n}\n\nexport interface CookieClearOption {\n\tdomain?: string;\n\tpath?: string;\n\tsecure?: boolean;\n\thttpOnly?: boolean;\n}\nexport interface CookieOption extends CookieClearOption {\n\texpire?: string;\n}\n\nexport interface CookieOptionInfo extends CookieOption {\n\tvalue: string;\n}\n\nexport interface FileInfo {\n\t/** 包根目录 */\n\troot: string;\n\t/** 当前文件相对于包根目录的路径 */\n\tpath: string;\n\t/** 当前文件的绝对路径 */\n\tabsPath: string;\n\t/** 域 */\n\tscope: string[];\n\t/** 所属组 */\n\tgroup: string;\n}\n\nexport interface BaseRequest {\n\t/** 请求头 */\n\treadonly headers: Readonly<IncomingHttpHeaders>;\n\t/** 请求头原始数组 */\n\treadonly rawHeaders: Readonly<string[]>;\n\t/** 请求方法 */\n\treadonly method?: Method;\n\t/** 请求 url (不含协议及主机名等) */\n\treadonly url: string;\n\t/** 请求路径 */\n\treadonly pathname: string;\n\t/** 查询字符串 */\n\treadonly search: string;\n\t/** 查询参数 */\n\treadonly query: ParsedUrlQuery;\n\t/** 来源路径 */\n\treadonly referer: string;\n\t/** 请求主机 */\n\treadonly host: string;\n\t/** 请求主机名 */\n\treadonly hostname: string;\n\t/** 请求端口 */\n\treadonly port: string;\n\t/** 客户端 UA */\n\treadonly userAgent: string;\n}\n/** 插件配置 */\nexport interface PluginConfig {\n\t/** 包名 */\n\tname?: string;\n\t/** 版本 */\n\tversion?: string;\n\t/** 依赖项 */\n\tdependencies?: string[];\n\t/** 作者 */\n\tauthor?: string;\n\t/** 开源协议 */\n\tlicense?: string;\n\t/** 钩子配置 */\n\thooks?: Hooks;\n\t/** 依赖的包所在的 npm 模块 */\n\tpackages?: string[],\n\t/** 导入的子插件 */\n\tplugins?: string[],\n\t/** 资源定义 */\n\tresources?: Resource[],\n\t/** 顺序配置 */\n\torder?: Order;\n\t/** 插件扫描列表,仅入口有效 */\n\tscan?: string;\n}\n/** 资源定义 */\nexport interface Resource {\n\t/** 资源类型 */\n\ttype: string;\n\t/** 资源路径,不同的资源的资源路径的起点可能不同 */\n\tpath?: string;\n\t/** 资源域 */\n\tscope?: string;\n}\n\n\nexport interface K99Request extends stream.Readable {\n\treadonly method?: string;\n\treadonly url?: string;\n\treadonly headers: IncomingHttpHeaders;\n\treadonly rawHeaders: string[];\n\t/** 请求路径 */\n\treadonly pathname?: string;\n\t/** 查询字符串 */\n\treadonly search?: string;\n\t/** 查询参数 */\n\treadonly query?: ParsedUrlQuery;\n}\n\nexport interface ResponseEvent {\n\tclose: [];\n\tdrain: [];\n\terror: [Error];\n\tfinish: [];\n\tpipe: [stream.Readable];\n\tunpipe: [stream.Readable];\n}\n\nexport interface K99Response extends stream.Stream {\n\treadonly finished: boolean;\n\treadonly headersSent: boolean;\n\tstatusCode: number;\n\n\thasHeader(name: string): boolean;\n\tgetHeader(name: string): string | string[] | undefined | number;\n\tsetHeader(name: string, value: number | string | string[]): void;\n\tremoveHeader(name: string): void;\n\tgetHeaderNames(): string[];\n\tgetHeaders(): OutgoingHttpHeaders;\n\tend(callback?: () => void): void;\n\tend(data: string | Uint8Array, callback?: () => void): void;\n\tend(data: string | Uint8Array, encoding: string, callback?: () => void): void;\n\n\tstream?: stream.Writable;\n\n\taddListener<E extends keyof ResponseEvent>(event: E, listener: (...p: ResponseEvent[E]) => void): this;\n\taddListener(event: string | symbol, listener: (...args: any[]) => void): this;\n\n\temit<E extends keyof ResponseEvent>(event: E, ...p: ResponseEvent[E]): boolean;\n\temit(event: string | symbol, ...args: any[]): boolean;\n\n\ton<E extends keyof ResponseEvent>(event: E, listener: (...p: ResponseEvent[E]) => void): this;\n\ton(event: string | symbol, listener: (...args: any[]) => void): this;\n\n\tonce<E extends keyof ResponseEvent>(event: E, listener: (...p: ResponseEvent[E]) => void): this;\n\tonce(event: string | symbol, listener: (...args: any[]) => void): this;\n\n\tprependListener<E extends keyof ResponseEvent>(event: E, listener: (...p: ResponseEvent[E]) => void): this;\n\tprependListener(event: string | symbol, listener: (...args: any[]) => void): this;\n\n\tprependOnceListener<E extends keyof ResponseEvent>(event: E, listener: (...p: ResponseEvent[E]) => void): this;\n\tprependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;\n}\n\nexport interface LogPackOpt {\n\t/** 在日志前添加的标签 */\n\ttags?: string | string[];\n\t/** 是否为日志添加时间 */\n\tdate?: boolean;\n\t/** 从第二行开始为日志添加缩进用到字符串,或者是空格的数量 */\n\tindent?: string | number;\n}\n"],"file":"index.js"}
package/setOptions.d.ts DELETED
@@ -1,12 +0,0 @@
1
- import { Handle, Handles, Method } from '.';
2
- import * as symbols from './symbols';
3
- /** 设置顺序 */
4
- export declare function setOrder(order?: number): <H extends Handle<import("./Controller").default> | Handles<import("./Controller").default>>(h: H) => H;
5
- /** 设置配置 */
6
- export declare function setConfig(config?: Handle[typeof symbols.config]): <H extends Handle<import("./Controller").default> | Handles<import("./Controller").default>>(h: H) => H;
7
- /** 设置配置 */
8
- export declare function setTest(test?: Handle[typeof symbols.test]): <H extends Handle<import("./Controller").default> | Handles<import("./Controller").default>>(h: H) => H;
9
- /** 设置方法 */
10
- export declare function setMethods(...methods: Method[]): <H extends Handle<import("./Controller").default> | Handles<import("./Controller").default>>(h: H) => H;
11
- /** 设置选项 */
12
- export declare function setOptions(options?: Handle[typeof symbols.options]): <H extends Handle<import("./Controller").default> | Handles<import("./Controller").default>>(h: H) => H;
package/setOptions.js DELETED
@@ -1,60 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.setOrder = setOrder;
7
- exports.setConfig = setConfig;
8
- exports.setTest = setTest;
9
- exports.setMethods = setMethods;
10
- exports.setOptions = setOptions;
11
-
12
- var symbols = _interopRequireWildcard(require("./symbols"));
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
- function set(handle, key, value) {
19
- if (value === undefined) {
20
- delete handle[key];
21
- }
22
-
23
- handle[key] = value;
24
- return handle;
25
- }
26
- /** 设置顺序 */
27
-
28
-
29
- function setOrder(order) {
30
- if (typeof order === 'number' && !isFinite(order)) {
31
- order = undefined;
32
- }
33
-
34
- return h => set(h, symbols.order, order);
35
- }
36
- /** 设置配置 */
37
-
38
-
39
- function setConfig(config) {
40
- return h => set(h, symbols.config, config);
41
- }
42
- /** 设置配置 */
43
-
44
-
45
- function setTest(test) {
46
- return h => set(h, symbols.test, test);
47
- }
48
- /** 设置方法 */
49
-
50
-
51
- function setMethods(...methods) {
52
- return h => set(h, symbols.methods, methods.length ? methods : undefined);
53
- }
54
- /** 设置选项 */
55
-
56
-
57
- function setOptions(options) {
58
- return h => set(h, symbols.options, options);
59
- }
60
- //# sourceMappingURL=setOptions.js.map
package/setOptions.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/k99/setOptions.ts"],"names":["set","handle","key","value","undefined","setOrder","order","isFinite","h","symbols","setConfig","config","setTest","test","setMethods","methods","length","setOptions","options"],"mappings":";;;;;;;;;;;AACA;;;;;;AAEA,SAASA,GAAT,CAA2EC,MAA3E,EAAsFC,GAAtF,EAA8FC,KAA9F,EAA8G;AAC7G,MAAIA,KAAK,KAAKC,SAAd,EAAyB;AACxB,WAAOH,MAAM,CAACC,GAAD,CAAb;AACA;;AACDD,EAAAA,MAAM,CAACC,GAAD,CAAN,GAAcC,KAAd;AACA,SAAOF,MAAP;AACA;AAED;;;AACO,SAASI,QAAT,CAAkBC,KAAlB,EAAkC;AACxC,MAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,CAACC,QAAQ,CAACD,KAAD,CAA1C,EAAmD;AAClDA,IAAAA,KAAK,GAAGF,SAAR;AACA;;AACD,SAAoCI,CAA7B,IAAsCR,GAAG,CAACQ,CAAD,EAAIC,OAAO,CAACH,KAAZ,EAAmBA,KAAnB,CAAhD;AACA;AACD;;;AACO,SAASI,SAAT,CAAmBC,MAAnB,EAA2D;AACjE,SAAoCH,CAA7B,IAAsCR,GAAG,CAACQ,CAAD,EAAIC,OAAO,CAACE,MAAZ,EAAoBA,MAApB,CAAhD;AACA;AACD;;;AACO,SAASC,OAAT,CAAiBC,IAAjB,EAAqD;AAC3D,SAAoCL,CAA7B,IAAsCR,GAAG,CAACQ,CAAD,EAAIC,OAAO,CAACI,IAAZ,EAAkBA,IAAlB,CAAhD;AACA;AACD;;;AACO,SAASC,UAAT,CAAoB,GAAGC,OAAvB,EAA0C;AAChD,SAAoCP,CAA7B,IAAsCR,GAAG,CAACQ,CAAD,EAAIC,OAAO,CAACM,OAAZ,EAAqBA,OAAO,CAACC,MAAR,GAAiBD,OAAjB,GAA2BX,SAAhD,CAAhD;AACA;AACD;;;AACO,SAASa,UAAT,CAAoBC,OAApB,EAA8D;AACpE,SAAoCV,CAA7B,IAAsCR,GAAG,CAACQ,CAAD,EAAIC,OAAO,CAACS,OAAZ,EAAqBA,OAArB,CAAhD;AACA","sourcesContent":["import { Handle, Handles, Method } from '.';\nimport * as symbols from './symbols';\n\nfunction set<H extends Handle | Handles, K extends keyof Handles & symbol>(handle: H, key: K, value: H[K]): H {\n\tif (value === undefined) {\n\t\tdelete handle[key];\n\t}\n\thandle[key] = value;\n\treturn handle;\n}\n\n/** 设置顺序 */\nexport function setOrder(order?: number) {\n\tif (typeof order === 'number' && !isFinite(order)) {\n\t\torder = undefined;\n\t}\n\treturn <H extends Handle | Handles>(h: H) => set(h, symbols.order, order);\n}\n/** 设置配置 */\nexport function setConfig(config?: Handle[typeof symbols.config]) {\n\treturn <H extends Handle | Handles>(h: H) => set(h, symbols.config, config);\n}\n/** 设置配置 */\nexport function setTest(test?: Handle[typeof symbols.test]) {\n\treturn <H extends Handle | Handles>(h: H) => set(h, symbols.test, test);\n}\n/** 设置方法 */\nexport function setMethods(...methods: Method[]) {\n\treturn <H extends Handle | Handles>(h: H) => set(h, symbols.methods, methods.length ? methods : undefined);\n}\n/** 设置选项 */\nexport function setOptions(options?: Handle[typeof symbols.options]) {\n\treturn <H extends Handle | Handles>(h: H) => set(h, symbols.options, options);\n}\n"],"file":"setOptions.js"}
package/starter.d.ts DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
package/starter.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/k99/starter.ts"],"names":["argv","opt","args","optInfo","start","process","slice"],"mappings":"AAAA;;;AACA;;AACA;;AACA;;;;;;;;AAEA,CAAC,MAAOA,IAAP,IAA0B;AAC1B,QAAM,CAACC,GAAD,EAAMC,IAAN,IAAc,MAAM,uBAAiBC,YAAjB,EAA0BH,IAA1B,CAA1B;AACA,qBAAaI,KAAb,EAAwCH,GAAxC,EAAwD,GAAGC,IAA3D;AACA,CAHD,EAGGG,OAAO,CAACL,IAAR,CAAaM,KAAb,CAAmB,CAAnB,CAHH","sourcesContent":["#!/usr/bin/env node\nimport * as start from './cli/command/start';\nimport optInfo from './cli/opt';\nimport { run, getArgv, Command } from 'entry-cli';\n\n(async (argv: string[]) => {\n\tconst [opt, args] = await getArgv<optInfo>(optInfo, argv);\n\trun<optInfo>(start as Command<optInfo>, opt as optInfo, ...args);\n})(process.argv.slice(2));\n"],"file":"starter.js"}
package/symbols.d.ts DELETED
@@ -1,13 +0,0 @@
1
- declare const returnSymbol: unique symbol;
2
- declare const catchSymbol: unique symbol;
3
- declare const finallySymbol: unique symbol;
4
- declare const argvSymbol: unique symbol;
5
- declare const execExtensionsSymbol: unique symbol;
6
- declare const execSymbol: unique symbol;
7
- declare const initSymbol: unique symbol;
8
- declare const orderSymbol: unique symbol;
9
- declare const methodsSymbol: unique symbol;
10
- declare const testSymbol: unique symbol;
11
- declare const optionsSymbol: unique symbol;
12
- declare const configSymbol: unique symbol;
13
- export { initSymbol as init, execExtensionsSymbol as execExtensions, execSymbol as exec, argvSymbol as argv, returnSymbol as return, catchSymbol as catch, finallySymbol as finally, orderSymbol as order, methodsSymbol as methods, testSymbol as test, optionsSymbol as options, configSymbol as config, };
package/symbols.js DELETED
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.config = exports.options = exports.test = exports.methods = exports.order = exports.finally = exports.catch = exports.return = exports.argv = exports.exec = exports.execExtensions = exports.init = void 0;
7
- const returnSymbol = Symbol();
8
- exports.return = returnSymbol;
9
- const catchSymbol = Symbol();
10
- exports.catch = catchSymbol;
11
- const finallySymbol = Symbol();
12
- exports.finally = finallySymbol;
13
- const argvSymbol = Symbol();
14
- exports.argv = argvSymbol;
15
- const execExtensionsSymbol = Symbol();
16
- exports.execExtensions = execExtensionsSymbol;
17
- const execSymbol = Symbol();
18
- exports.exec = execSymbol;
19
- const initSymbol = Symbol();
20
- exports.init = initSymbol;
21
- const orderSymbol = Symbol();
22
- exports.order = orderSymbol;
23
- const methodsSymbol = Symbol();
24
- exports.methods = methodsSymbol;
25
- const testSymbol = Symbol();
26
- exports.test = testSymbol;
27
- const optionsSymbol = Symbol();
28
- exports.options = optionsSymbol;
29
- const configSymbol = Symbol();
30
- exports.config = configSymbol;
31
- //# sourceMappingURL=symbols.js.map
package/symbols.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/k99/symbols.ts"],"names":["returnSymbol","Symbol","catchSymbol","finallySymbol","argvSymbol","execExtensionsSymbol","execSymbol","initSymbol","orderSymbol","methodsSymbol","testSymbol","optionsSymbol","configSymbol"],"mappings":";;;;;;AACA,MAAMA,YAAY,GAAGC,MAAM,EAA3B;;AACA,MAAMC,WAAW,GAAGD,MAAM,EAA1B;;AACA,MAAME,aAAa,GAAGF,MAAM,EAA5B;;AACA,MAAMG,UAAU,GAAGH,MAAM,EAAzB;;AACA,MAAMI,oBAAoB,GAAGJ,MAAM,EAAnC;;AACA,MAAMK,UAAU,GAAGL,MAAM,EAAzB;;AACA,MAAMM,UAAU,GAAGN,MAAM,EAAzB;;AAEA,MAAMO,WAAW,GAAGP,MAAM,EAA1B;;AACA,MAAMQ,aAAa,GAAGR,MAAM,EAA5B;;AACA,MAAMS,UAAU,GAAGT,MAAM,EAAzB;;AACA,MAAMU,aAAa,GAAGV,MAAM,EAA5B;;AACA,MAAMW,YAAY,GAAGX,MAAM,EAA3B","sourcesContent":["\nconst returnSymbol = Symbol();\nconst catchSymbol = Symbol();\nconst finallySymbol = Symbol();\nconst argvSymbol = Symbol();\nconst execExtensionsSymbol = Symbol();\nconst execSymbol = Symbol();\nconst initSymbol = Symbol();\n\nconst orderSymbol = Symbol();\nconst methodsSymbol = Symbol();\nconst testSymbol = Symbol();\nconst optionsSymbol = Symbol();\nconst configSymbol = Symbol();\n\nexport {\n\tinitSymbol as init,\n\texecExtensionsSymbol as execExtensions,\n\texecSymbol as exec,\n\targvSymbol as argv,\n\treturnSymbol as return,\n\tcatchSymbol as catch,\n\tfinallySymbol as finally,\n\n\torderSymbol as order,\n\tmethodsSymbol as methods,\n\ttestSymbol as test,\n\toptionsSymbol as options,\n\tconfigSymbol as config,\n};\n"],"file":"symbols.js"}
package/util/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- import * as StreamUtil from './stream';
2
- export { StreamUtil };
3
- export declare function relateMap<T extends object, K extends object = T>(obj: T, maps: Map<K, Map<any, any>>, key: K): T;
4
- export declare function defineProperty<T extends Object, P extends keyof T>(router: T, prop: P, value: T[P]): void;
5
- export declare function onceExec(...fn: (() => void)[]): () => void;
package/util/index.js DELETED
@@ -1,92 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.relateMap = relateMap;
7
- exports.defineProperty = defineProperty;
8
- exports.onceExec = onceExec;
9
- exports.StreamUtil = void 0;
10
-
11
- var StreamUtil = _interopRequireWildcard(require("./stream"));
12
-
13
- exports.StreamUtil = StreamUtil;
14
-
15
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
16
-
17
- 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; }
18
-
19
- function relateMap(obj, maps, key) {
20
- let map = maps.get(key);
21
-
22
- if (!map) {
23
- map = new Map();
24
- maps.set(key, map);
25
- }
26
-
27
- Object.defineProperties(obj, {
28
- set: {
29
- configurable: true,
30
-
31
- value(k, v) {
32
- map.set(k, v);
33
- return this;
34
- }
35
-
36
- },
37
- get: {
38
- configurable: true,
39
- value: k => map.get(k)
40
- },
41
- delete: {
42
- configurable: true,
43
- value: k => map.delete(k)
44
- },
45
- has: {
46
- configurable: true,
47
- value: k => map.has(k)
48
- },
49
- keys: {
50
- configurable: true,
51
- value: () => map.keys()
52
- },
53
- clear: {
54
- configurable: true,
55
- value: () => map.clear()
56
- },
57
- size: {
58
- configurable: true,
59
- get: () => map.size
60
- }
61
- });
62
- return obj;
63
- }
64
-
65
- function enumerable(p) {
66
- if (typeof p === 'number') {
67
- return true;
68
- }
69
-
70
- if (typeof p === 'symbol') {
71
- return false;
72
- }
73
-
74
- return !['$', '_', '#', '.', '!', '-', '~', '&'].includes(p[0]);
75
- }
76
-
77
- function defineProperty(router, prop, value) {
78
- Reflect.defineProperty(router, prop, {
79
- configurable: true,
80
- enumerable: enumerable(prop),
81
- value
82
- });
83
- }
84
-
85
- function onceExec(...fn) {
86
- return () => {
87
- const list = fn;
88
- fn = [];
89
- list.forEach(f => f());
90
- };
91
- }
92
- //# sourceMappingURL=index.js.map
package/util/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/k99/util/index.ts"],"names":["relateMap","obj","maps","key","map","get","Map","set","Object","defineProperties","configurable","value","k","v","delete","has","keys","clear","size","enumerable","p","includes","defineProperty","router","prop","Reflect","onceExec","fn","list","forEach","f"],"mappings":";;;;;;;;;;AAAA;;;;;;;;AAIO,SAASA,SAAT,CAA2DC,GAA3D,EAAmEC,IAAnE,EAAgGC,GAAhG,EAA2G;AACjH,MAAIC,GAAG,GAAGF,IAAI,CAACG,GAAL,CAASF,GAAT,CAAV;;AACA,MAAI,CAACC,GAAL,EAAU;AACTA,IAAAA,GAAG,GAAG,IAAIE,GAAJ,EAAN;AACAJ,IAAAA,IAAI,CAACK,GAAL,CAASJ,GAAT,EAAcC,GAAd;AACA;;AACDI,EAAAA,MAAM,CAACC,gBAAP,CAAwBR,GAAxB,EAA6B;AAC5BM,IAAAA,GAAG,EAAE;AAAEG,MAAAA,YAAY,EAAE,IAAhB;;AAAsBC,MAAAA,KAAK,CAA+BC,CAA/B,EAAqCC,CAArC,EAA2C;AAAET,QAAAA,GAAG,CAAEG,GAAL,CAASK,CAAT,EAAYC,CAAZ;AAAgB,eAAO,IAAP;AAAc;;AAAtG,KADuB;AAE5BR,IAAAA,GAAG,EAAE;AAAEK,MAAAA,YAAY,EAAE,IAAhB;AAAsBC,MAAAA,KAAK,EAAiCC,CAA/B,IAAuDR,GAAG,CAAEC,GAAL,CAASO,CAAT;AAApF,KAFuB;AAG5BE,IAAAA,MAAM,EAAE;AAAEJ,MAAAA,YAAY,EAAE,IAAhB;AAAsBC,MAAAA,KAAK,EAAkBC,CAAhB,IAAyBR,GAAG,CAAEU,MAAL,CAAYF,CAAZ;AAAtD,KAHoB;AAI5BG,IAAAA,GAAG,EAAE;AAAEL,MAAAA,YAAY,EAAE,IAAhB;AAAsBC,MAAAA,KAAK,EAAkBC,CAAhB,IAAyBR,GAAG,CAAEW,GAAL,CAASH,CAAT;AAAtD,KAJuB;AAK5BI,IAAAA,IAAI,EAAE;AAAEN,MAAAA,YAAY,EAAE,IAAhB;AAAsBC,MAAAA,KAAK,EAAE,MAAMP,GAAG,CAAEY,IAAL;AAAnC,KALsB;AAM5BC,IAAAA,KAAK,EAAE;AAAEP,MAAAA,YAAY,EAAE,IAAhB;AAAsBC,MAAAA,KAAK,EAAE,MAAMP,GAAG,CAAEa,KAAL;AAAnC,KANqB;AAO5BC,IAAAA,IAAI,EAAE;AAAER,MAAAA,YAAY,EAAE,IAAhB;AAAsBL,MAAAA,GAAG,EAAE,MAAMD,GAAG,CAAEc;AAAtC;AAPsB,GAA7B;AASA,SAAOjB,GAAP;AACA;;AAED,SAASkB,UAAT,CAAoBC,CAApB,EAAiD;AAChD,MAAI,OAAOA,CAAP,KAAa,QAAjB,EAA2B;AAAE,WAAO,IAAP;AAAc;;AAC3C,MAAI,OAAOA,CAAP,KAAa,QAAjB,EAA2B;AAAE,WAAO,KAAP;AAAe;;AAC5C,SAAQ,CAAC,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,EAAoC,GAApC,EAAyCC,QAAzC,CAAkDD,CAAC,CAAC,CAAD,CAAnD,CAAT;AACA;;AACM,SAASE,cAAT,CAA6DC,MAA7D,EAAwEC,IAAxE,EAAiFb,KAAjF,EAA8F;AACpGc,EAAAA,OAAO,CAACH,cAAR,CAAuBC,MAAvB,EAA+BC,IAA/B,EAAqC;AAAEd,IAAAA,YAAY,EAAE,IAAhB;AAAsBS,IAAAA,UAAU,EAAEA,UAAU,CAACK,IAAD,CAA5C;AAAoDb,IAAAA;AAApD,GAArC;AACA;;AAEM,SAASe,QAAT,CAAkB,GAAGC,EAArB,EAAqD;AAC3D,SAAO,MAAM;AACZ,UAAMC,IAAI,GAAGD,EAAb;AACAA,IAAAA,EAAE,GAAG,EAAL;AACAC,IAAAA,IAAI,CAACC,OAAL,CAAaC,CAAC,IAAIA,CAAC,EAAnB;AACA,GAJD;AAKA","sourcesContent":["import * as StreamUtil from './stream';\nexport { StreamUtil };\n\n\nexport function relateMap<T extends object, K extends object = T>(obj: T, maps: Map<K, Map<any, any>>, key: K): T {\n\tlet map = maps.get(key);\n\tif (!map) {\n\t\tmap = new Map();\n\t\tmaps.set(key, map);\n\t}\n\tObject.defineProperties(obj, {\n\t\tset: { configurable: true, value<K extends any, V extends any>(k: K, v: V) { map!.set(k, v); return this; } },\n\t\tget: { configurable: true, value: <K extends any, V extends any>(k: K): V | undefined => map!.get(k) },\n\t\tdelete: { configurable: true, value: <K extends any>(k: K) => map!.delete(k) },\n\t\thas: { configurable: true, value: <K extends any>(k: K) => map!.has(k) },\n\t\tkeys: { configurable: true, value: () => map!.keys() },\n\t\tclear: { configurable: true, value: () => map!.clear() },\n\t\tsize: { configurable: true, get: () => map!.size },\n\t});\n\treturn obj;\n}\n\nfunction enumerable(p: string | number | symbol) {\n\tif (typeof p === 'number') { return true; }\n\tif (typeof p === 'symbol') { return false; }\n\treturn !['$', '_', '#', '.', '!', '-', '~', '&'].includes(p[0]);\n}\nexport function defineProperty<T extends Object, P extends keyof T>(router: T, prop: P, value: T[P]) {\n\tReflect.defineProperty(router, prop, { configurable: true, enumerable: enumerable(prop), value });\n}\n\nexport function onceExec(...fn: (() => void)[]): () => void {\n\treturn () => {\n\t\tconst list = fn;\n\t\tfn = [];\n\t\tlist.forEach(f => f());\n\t};\n}\n"],"file":"index.js"}
package/util/stream.d.ts DELETED
@@ -1,19 +0,0 @@
1
- /// <reference types="node" />
2
- import { Readable, Writable } from 'stream';
3
- export interface BufferViewOrTypeArray {
4
- buffer: ArrayBuffer | SharedArrayBuffer;
5
- }
6
- export declare type BaseWriteType = string | Readable | Buffer | ArrayBuffer | SharedArrayBuffer | BufferViewOrTypeArray;
7
- export declare type WriteType = BaseWriteType | AsyncIterable<BaseWriteType> | Iterable<BaseWriteType>;
8
- /**
9
- * 向可写流中写入数据
10
- * @param writable 可写流
11
- * @param chunk 要写入的数据
12
- * @param encoding 如果要写入的数据是字符串,则可用此参数指定编码
13
- */
14
- export declare function write(writable: Writable, chunk: BaseWriteType, encoding?: string): Promise<void>;
15
- /**
16
- * 将可读流转为 Buffer
17
- * @param stream 要转为 Buffer 的流
18
- */
19
- export declare function readable2buffer(stream?: Readable): Promise<Buffer>;
package/util/stream.js DELETED
@@ -1,66 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.write = write;
7
- exports.readable2buffer = readable2buffer;
8
-
9
- var _stream = require("stream");
10
-
11
- /**
12
- * 向可写流中写入数据
13
- * @param writable 可写流
14
- * @param chunk 要写入的数据
15
- * @param encoding 如果要写入的数据是字符串,则可用此参数指定编码
16
- */
17
- async function write(writable, chunk, encoding) {
18
- if (chunk instanceof _stream.Readable) {
19
- chunk.pipe(writable, {
20
- end: false
21
- });
22
- return new Promise((r, e) => {
23
- chunk.on('end', r);
24
- chunk.on('error', e);
25
- });
26
- }
27
-
28
- let ret = true;
29
-
30
- if (typeof chunk === 'string' && typeof encoding === 'string') {
31
- ret = writable.write(chunk, encoding);
32
- } else if (typeof chunk === 'string' || chunk instanceof Buffer || chunk instanceof ArrayBuffer || chunk instanceof SharedArrayBuffer) {
33
- ret = writable.write(chunk);
34
- } else if (chunk && (chunk.buffer instanceof ArrayBuffer || chunk.buffer instanceof SharedArrayBuffer)) {
35
- ret = writable.write(chunk.buffer);
36
- }
37
-
38
- if (!ret) {
39
- return new Promise(cb => writable.once('drain', cb));
40
- }
41
- }
42
- /**
43
- * 将可读流转为 Buffer
44
- * @param stream 要转为 Buffer 的流
45
- */
46
-
47
-
48
- async function readable2buffer(stream) {
49
- if (!(stream instanceof _stream.Readable)) {
50
- return Buffer.alloc(0);
51
- }
52
-
53
- return new Promise((resolve, reject) => {
54
- let allData = [];
55
- let size = 0;
56
- stream.on('error', reject);
57
- stream.on('data', function (data) {
58
- allData.push(data);
59
- size += data.length;
60
- });
61
- stream.on('end', function () {
62
- return resolve(Buffer.concat(allData, size));
63
- });
64
- });
65
- }
66
- //# sourceMappingURL=stream.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/k99/util/stream.ts"],"names":["write","writable","chunk","encoding","Readable","pipe","end","Promise","r","e","on","ret","Buffer","ArrayBuffer","SharedArrayBuffer","buffer","cb","once","readable2buffer","stream","alloc","resolve","reject","allData","size","data","push","length","concat"],"mappings":";;;;;;;;AACA;;AAMA;;;;;;AAMO,eAAeA,KAAf,CAAqBC,QAArB,EAAyCC,KAAzC,EAA+DC,QAA/D,EAAiG;AACvG,MAAID,KAAK,YAAYE,gBAArB,EAA+B;AAC9BF,IAAAA,KAAK,CAACG,IAAN,CAAWJ,QAAX,EAAqB;AAAEK,MAAAA,GAAG,EAAE;AAAP,KAArB;AACA,WAAO,IAAIC,OAAJ,CAAY,CAACC,CAAD,EAAIC,CAAJ,KAAU;AAC5BP,MAAAA,KAAK,CAACQ,EAAN,CAAS,KAAT,EAAgBF,CAAhB;AACAN,MAAAA,KAAK,CAACQ,EAAN,CAAS,OAAT,EAAkBD,CAAlB;AACA,KAHM,CAAP;AAIA;;AACD,MAAIE,GAAG,GAAG,IAAV;;AACA,MAAI,OAAOT,KAAP,KAAiB,QAAjB,IAA6B,OAAOC,QAAP,KAAoB,QAArD,EAA+D;AAC9DQ,IAAAA,GAAG,GAAGV,QAAQ,CAACD,KAAT,CAAeE,KAAf,EAAsBC,QAAtB,CAAN;AACA,GAFD,MAEO,IAAI,OAAOD,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,YAAYU,MAA9C,IAAwDV,KAAK,YAAYW,WAAzE,IAAwFX,KAAK,YAAYY,iBAA7G,EAAgI;AACtIH,IAAAA,GAAG,GAAGV,QAAQ,CAACD,KAAT,CAAeE,KAAf,CAAN;AACA,GAFM,MAEA,IAAIA,KAAK,KAAKA,KAAK,CAACa,MAAN,YAAwBF,WAAxB,IAAuCX,KAAK,CAACa,MAAN,YAAwBD,iBAApE,CAAT,EAAiG;AACvGH,IAAAA,GAAG,GAAGV,QAAQ,CAACD,KAAT,CAAeE,KAAK,CAACa,MAArB,CAAN;AACA;;AACD,MAAI,CAACJ,GAAL,EAAU;AAAE,WAAO,IAAIJ,OAAJ,CAAYS,EAAE,IAAIf,QAAQ,CAACgB,IAAT,CAAc,OAAd,EAAuBD,EAAvB,CAAlB,CAAP;AAAuD;AACnE;AAED;;;;;;AAIO,eAAeE,eAAf,CAA+BC,MAA/B,EAAmE;AACzE,MAAI,EAAEA,MAAM,YAAYf,gBAApB,CAAJ,EAAmC;AAAE,WAAOQ,MAAM,CAACQ,KAAP,CAAa,CAAb,CAAP;AAAyB;;AAC9D,SAAO,IAAIb,OAAJ,CAAoB,CAACc,OAAD,EAAUC,MAAV,KAAqB;AAC/C,QAAIC,OAAiB,GAAG,EAAxB;AACA,QAAIC,IAAI,GAAG,CAAX;AACAL,IAAAA,MAAM,CAACT,EAAP,CAAU,OAAV,EAAmBY,MAAnB;AACAH,IAAAA,MAAM,CAACT,EAAP,CAAU,MAAV,EAAkB,UAAUe,IAAV,EAAwB;AACzCF,MAAAA,OAAO,CAACG,IAAR,CAAaD,IAAb;AACAD,MAAAA,IAAI,IAAIC,IAAI,CAACE,MAAb;AACA,KAHD;AAIAR,IAAAA,MAAM,CAACT,EAAP,CAAU,KAAV,EAAiB,YAAY;AAC5B,aAAOW,OAAO,CAACT,MAAM,CAACgB,MAAP,CAAcL,OAAd,EAAuBC,IAAvB,CAAD,CAAd;AACA,KAFD;AAGA,GAXM,CAAP;AAYA","sourcesContent":["\nimport { Readable, Writable } from 'stream';\n\nexport interface BufferViewOrTypeArray { buffer: ArrayBuffer | SharedArrayBuffer }\nexport type BaseWriteType = string | Readable | Buffer | ArrayBuffer | SharedArrayBuffer | BufferViewOrTypeArray;\nexport type WriteType = BaseWriteType | AsyncIterable<BaseWriteType> | Iterable<BaseWriteType>;\n\n/**\n * 向可写流中写入数据\n * @param writable 可写流\n * @param chunk 要写入的数据\n * @param encoding 如果要写入的数据是字符串,则可用此参数指定编码\n */\nexport async function write(writable: Writable, chunk: BaseWriteType, encoding?: string): Promise<void> {\n\tif (chunk instanceof Readable) {\n\t\tchunk.pipe(writable, { end: false });\n\t\treturn new Promise((r, e) => {\n\t\t\tchunk.on('end', r);\n\t\t\tchunk.on('error', e);\n\t\t});\n\t}\n\tlet ret = true;\n\tif (typeof chunk === 'string' && typeof encoding === 'string') {\n\t\tret = writable.write(chunk, encoding);\n\t} else if (typeof chunk === 'string' || chunk instanceof Buffer || chunk instanceof ArrayBuffer || chunk instanceof SharedArrayBuffer) {\n\t\tret = writable.write(chunk);\n\t} else if (chunk && (chunk.buffer instanceof ArrayBuffer || chunk.buffer instanceof SharedArrayBuffer)) {\n\t\tret = writable.write(chunk.buffer);\n\t}\n\tif (!ret) { return new Promise(cb => writable.once('drain', cb)); }\n}\n\n/**\n * 将可读流转为 Buffer\n * @param stream 要转为 Buffer 的流\n */\nexport async function readable2buffer(stream?: Readable): Promise<Buffer> {\n\tif (!(stream instanceof Readable)) { return Buffer.alloc(0); }\n\treturn new Promise<Buffer>((resolve, reject) => {\n\t\tlet allData: Buffer[] = [];\n\t\tlet size = 0;\n\t\tstream.on('error', reject);\n\t\tstream.on('data', function (data: Buffer) {\n\t\t\tallData.push(data);\n\t\t\tsize += data.length;\n\t\t});\n\t\tstream.on('end', function () {\n\t\t\treturn resolve(Buffer.concat(allData, size));\n\t\t});\n\t});\n}\n"],"file":"stream.js"}