koatty 3.5.7 → 3.5.12-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.commitlintrc.js +3 -0
- package/.eslintignore +2 -0
- package/.huskyrc +5 -0
- package/.versionrc.js +16 -0
- package/CHANGELOG.md +1 -38
- package/README.md +5 -9
- package/api-extractor.json +345 -0
- package/dist/LICENSE +29 -0
- package/dist/README.md +147 -0
- package/dist/index.d.ts +363 -19
- package/dist/index.js +1266 -26
- package/dist/index.mjs +1197 -0
- package/dist/package.json +99 -0
- package/docs/api/index.md +12 -0
- package/docs/api/koatty.apiinput.code.md +11 -0
- package/docs/api/koatty.apiinput.data.md +11 -0
- package/docs/api/koatty.apiinput.md +22 -0
- package/docs/api/koatty.apiinput.message.md +11 -0
- package/docs/api/koatty.apioutput.code.md +11 -0
- package/docs/api/koatty.apioutput.data.md +11 -0
- package/docs/api/koatty.apioutput.md +22 -0
- package/docs/api/koatty.apioutput.message.md +11 -0
- package/docs/api/koatty.appreadyhookfunc.md +11 -0
- package/docs/api/koatty.basecontroller._constructor_.md +20 -0
- package/docs/api/koatty.basecontroller._options.md +11 -0
- package/docs/api/koatty.basecontroller.app.md +11 -0
- package/docs/api/koatty.basecontroller.ctx.md +11 -0
- package/docs/api/koatty.basecontroller.fail.md +28 -0
- package/docs/api/koatty.basecontroller.init.md +19 -0
- package/docs/api/koatty.basecontroller.md +39 -0
- package/docs/api/koatty.basecontroller.ok.md +28 -0
- package/docs/api/koatty.baseservice._constructor_.md +20 -0
- package/docs/api/koatty.baseservice._options.md +11 -0
- package/docs/api/koatty.baseservice.app.md +11 -0
- package/docs/api/koatty.baseservice.init.md +25 -0
- package/docs/api/koatty.baseservice.md +36 -0
- package/docs/api/koatty.bindappreadyhook.md +26 -0
- package/docs/api/koatty.bootstrap.md +27 -0
- package/docs/api/koatty.component.md +27 -0
- package/docs/api/koatty.componentscan.md +27 -0
- package/docs/api/koatty.configurationscan.md +27 -0
- package/docs/api/koatty.controller.md +27 -0
- package/docs/api/koatty.httpcontroller.body.md +28 -0
- package/docs/api/koatty.httpcontroller.deny.md +26 -0
- package/docs/api/koatty.httpcontroller.expires.md +26 -0
- package/docs/api/koatty.httpcontroller.fail.md +28 -0
- package/docs/api/koatty.httpcontroller.header.md +27 -0
- package/docs/api/koatty.httpcontroller.isget.md +19 -0
- package/docs/api/koatty.httpcontroller.ismethod.md +26 -0
- package/docs/api/koatty.httpcontroller.ispost.md +19 -0
- package/docs/api/koatty.httpcontroller.json.md +26 -0
- package/docs/api/koatty.httpcontroller.md +35 -0
- package/docs/api/koatty.httpcontroller.ok.md +28 -0
- package/docs/api/koatty.httpcontroller.param.md +26 -0
- package/docs/api/koatty.httpcontroller.redirect.md +27 -0
- package/docs/api/koatty.httpcontroller.type.md +27 -0
- package/docs/api/koatty.icontroller.__after.md +11 -0
- package/docs/api/koatty.icontroller.__befor.md +11 -0
- package/docs/api/koatty.icontroller.app.md +11 -0
- package/docs/api/koatty.icontroller.ctx.md +11 -0
- package/docs/api/koatty.icontroller.fail.md +11 -0
- package/docs/api/koatty.icontroller.md +25 -0
- package/docs/api/koatty.icontroller.ok.md +11 -0
- package/docs/api/koatty.imiddleware.md +20 -0
- package/docs/api/koatty.imiddleware.run.md +11 -0
- package/docs/api/koatty.iplugin.md +20 -0
- package/docs/api/koatty.iplugin.run.md +11 -0
- package/docs/api/koatty.iservice.app.md +11 -0
- package/docs/api/koatty.iservice.md +20 -0
- package/docs/api/koatty.logger.md +11 -0
- package/docs/api/koatty.md +51 -0
- package/docs/api/koatty.middleware.md +27 -0
- package/docs/api/koatty.plugin.md +27 -0
- package/docs/api/koatty.service.md +27 -0
- package/jest.config.js +0 -2
- package/jest_html_reporters.html +1 -1
- package/package.json +40 -39
- package/rollup.config.js +63 -0
- package/scripts/copyright.js +28 -0
- package/scripts/postBuild.js +10 -0
- package/tsconfig.json +4 -2
- package/babel.config.js +0 -21
- package/commitlint.config.js +0 -14
- package/dist/config/config.d.ts +0 -21
- package/dist/config/config.js +0 -25
- package/dist/config/config.js.map +0 -1
- package/dist/config/middleware.d.ts +0 -23
- package/dist/config/middleware.js +0 -34
- package/dist/config/middleware.js.map +0 -1
- package/dist/config/plugin.d.ts +0 -11
- package/dist/config/plugin.js +0 -15
- package/dist/config/plugin.js.map +0 -1
- package/dist/config/router.d.ts +0 -8
- package/dist/config/router.js +0 -32
- package/dist/config/router.js.map +0 -1
- package/dist/controller/BaseController.d.ts +0 -60
- package/dist/controller/BaseController.js +0 -137
- package/dist/controller/BaseController.js.map +0 -1
- package/dist/controller/HttpController.d.ts +0 -131
- package/dist/controller/HttpController.js +0 -215
- package/dist/controller/HttpController.js.map +0 -1
- package/dist/core/Bootstrap.d.ts +0 -50
- package/dist/core/Bootstrap.js +0 -217
- package/dist/core/Bootstrap.js.map +0 -1
- package/dist/core/Component.d.ts +0 -94
- package/dist/core/Component.js +0 -89
- package/dist/core/Component.js.map +0 -1
- package/dist/core/Constants.d.ts +0 -11
- package/dist/core/Constants.js +0 -24
- package/dist/core/Constants.js.map +0 -1
- package/dist/core/Loader.d.ts +0 -110
- package/dist/core/Loader.js +0 -407
- package/dist/core/Loader.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/middleware/PayloadMiddleware.d.ts +0 -11
- package/dist/middleware/PayloadMiddleware.js +0 -22
- package/dist/middleware/PayloadMiddleware.js.map +0 -1
- package/dist/middleware/TraceMiddleware.d.ts +0 -11
- package/dist/middleware/TraceMiddleware.js +0 -22
- package/dist/middleware/TraceMiddleware.js.map +0 -1
- package/dist/service/BaseService.d.ts +0 -33
- package/dist/service/BaseService.js +0 -32
- package/dist/service/BaseService.js.map +0 -1
- package/dist/util/Helper.d.ts +0 -25
- package/dist/util/Helper.js +0 -117
- package/dist/util/Helper.js.map +0 -1
- package/dist/util/Logger.d.ts +0 -27
- package/dist/util/Logger.js +0 -41
- package/dist/util/Logger.js.map +0 -1
package/dist/util/Helper.js
DELETED
@@ -1,117 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.checkClass = exports.checkRuntime = exports.getParamNames = exports.ControllerMatch = exports.requireDefault = exports.Helper = void 0;
|
4
|
-
const tslib_1 = require("tslib");
|
5
|
-
/**
|
6
|
-
* @ author: richen
|
7
|
-
* @ copyright: Copyright (c) - <richenlin(at)gmail.com>
|
8
|
-
* @ license: BSD (3-Clause)
|
9
|
-
* @ version: 2020-05-10 11:49:15
|
10
|
-
*/
|
11
|
-
const Helper = (0, tslib_1.__importStar)(require("koatty_lib"));
|
12
|
-
const Logger_1 = require("./Logger");
|
13
|
-
const STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;
|
14
|
-
const ARGUMENT_NAMES = /([^\s,]+)/g;
|
15
|
-
const pkg = require("../../package.json");
|
16
|
-
// export Helper
|
17
|
-
exports.Helper = (0, tslib_1.__importStar)(require("koatty_lib"));
|
18
|
-
/**
|
19
|
-
*
|
20
|
-
*
|
21
|
-
* @export
|
22
|
-
* @param {string} p
|
23
|
-
* @returns
|
24
|
-
*/
|
25
|
-
function requireDefault(p) {
|
26
|
-
/* eslint-disable global-require */
|
27
|
-
const ex = require(p);
|
28
|
-
return (ex && (typeof ex === "object") && "default" in ex) ? ex.default : ex;
|
29
|
-
}
|
30
|
-
exports.requireDefault = requireDefault;
|
31
|
-
/**
|
32
|
-
*
|
33
|
-
*
|
34
|
-
* @export
|
35
|
-
* @param {string} name
|
36
|
-
* @param {string} [controllerSuffix=""]
|
37
|
-
* @returns
|
38
|
-
*/
|
39
|
-
let controllerReg = null;
|
40
|
-
function ControllerMatch(name, controllerSuffix = "") {
|
41
|
-
if (!controllerReg) {
|
42
|
-
controllerReg = new RegExp(`([a-zA-Z0-9_]+)${controllerSuffix}`);
|
43
|
-
}
|
44
|
-
const result = name.split(".")[0].match(controllerReg);
|
45
|
-
return result;
|
46
|
-
}
|
47
|
-
exports.ControllerMatch = ControllerMatch;
|
48
|
-
/**
|
49
|
-
* get parameter name from function
|
50
|
-
* @param func
|
51
|
-
*/
|
52
|
-
function getParamNames(func) {
|
53
|
-
const fnStr = func.toString().replace(STRIP_COMMENTS, "");
|
54
|
-
let result = fnStr.slice(fnStr.indexOf("(") + 1, fnStr.indexOf(")")).match(ARGUMENT_NAMES);
|
55
|
-
if (result === null) {
|
56
|
-
result = [];
|
57
|
-
}
|
58
|
-
return result;
|
59
|
-
}
|
60
|
-
exports.getParamNames = getParamNames;
|
61
|
-
/**
|
62
|
-
* check node version
|
63
|
-
* @return {void} []
|
64
|
-
*/
|
65
|
-
function checkRuntime() {
|
66
|
-
let nodeEngines = pkg.engines.node.slice(1) || '12.0.0';
|
67
|
-
nodeEngines = nodeEngines.slice(0, nodeEngines.lastIndexOf('.'));
|
68
|
-
let nodeVersion = process.version;
|
69
|
-
if (nodeVersion[0] === 'v') {
|
70
|
-
nodeVersion = nodeVersion.slice(1);
|
71
|
-
}
|
72
|
-
nodeVersion = nodeVersion.slice(0, nodeVersion.lastIndexOf('.'));
|
73
|
-
if (Helper.toNumber(nodeEngines) > Helper.toNumber(nodeVersion)) {
|
74
|
-
Logger_1.Logger.Error(`Koatty need node version > ${nodeEngines}, current version is ${nodeVersion}, please upgrade it.`);
|
75
|
-
process.exit(-1);
|
76
|
-
}
|
77
|
-
}
|
78
|
-
exports.checkRuntime = checkRuntime;
|
79
|
-
/**
|
80
|
-
* Check class file
|
81
|
-
* name should be always the same as class name
|
82
|
-
* class must be unique
|
83
|
-
*
|
84
|
-
* @export
|
85
|
-
* @param {string} fileName
|
86
|
-
* @param {string} xpath
|
87
|
-
* @param {*} target
|
88
|
-
* @param {Set<unknown>} [exSet]
|
89
|
-
* @returns {*}
|
90
|
-
*/
|
91
|
-
const exSet = new Set();
|
92
|
-
function checkClass(fileName, xpath, target, exSet) {
|
93
|
-
if (Helper.isClass(target) && target.name != fileName) { // export default class name{}
|
94
|
-
throw Error(`The file(${xpath}) name should be always the same as class name.`);
|
95
|
-
}
|
96
|
-
if (target["__esModule"]) {
|
97
|
-
if (target.name === undefined) { // export class name{}
|
98
|
-
const keys = Object.keys(target);
|
99
|
-
if (keys[0] != fileName && Helper.isClass(target[keys[0]])) {
|
100
|
-
throw Error(`The file(${xpath}) name should be always the same as class name.`);
|
101
|
-
}
|
102
|
-
}
|
103
|
-
else if (target.name != fileName) { // export default class {}
|
104
|
-
throw Error(`The file(${xpath}) name should be always the same as class name.`);
|
105
|
-
}
|
106
|
-
}
|
107
|
-
if (!exSet) {
|
108
|
-
return;
|
109
|
-
}
|
110
|
-
if (exSet.has(fileName)) {
|
111
|
-
throw new Error(`A same class already exists. at \`${xpath}\`.`);
|
112
|
-
}
|
113
|
-
exSet.add(fileName);
|
114
|
-
return;
|
115
|
-
}
|
116
|
-
exports.checkClass = checkClass;
|
117
|
-
//# sourceMappingURL=Helper.js.map
|
package/dist/util/Helper.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"Helper.js","sourceRoot":"","sources":["../../src/util/Helper.ts"],"names":[],"mappings":"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"}
|
package/dist/util/Logger.d.ts
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @ author: richen
|
3
|
-
* @ copyright: Copyright (c) - <richenlin(at)gmail.com>
|
4
|
-
* @ license: BSD (3-Clause)
|
5
|
-
* @ version: 2020-05-10 11:49:15
|
6
|
-
*/
|
7
|
-
import { LogLevelType } from "koatty_logger";
|
8
|
-
export declare const Logger: import("koatty_logger").Logger;
|
9
|
-
/**
|
10
|
-
* SetLogger
|
11
|
-
*
|
12
|
-
* @export
|
13
|
-
* @param {{
|
14
|
-
* logLevel?: LogLevelType;
|
15
|
-
* logConsole?: boolean;
|
16
|
-
* logFile?: boolean;
|
17
|
-
* logFileLevel?: LogLevelType;
|
18
|
-
* logFilePath?: string;
|
19
|
-
* }} config
|
20
|
-
*/
|
21
|
-
export declare function SetLogger(config: {
|
22
|
-
logLevel?: LogLevelType;
|
23
|
-
logConsole?: boolean;
|
24
|
-
logFile?: boolean;
|
25
|
-
logFileLevel?: LogLevelType;
|
26
|
-
logFilePath?: string;
|
27
|
-
}): void;
|
package/dist/util/Logger.js
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
/**
|
3
|
-
* @ author: richen
|
4
|
-
* @ copyright: Copyright (c) - <richenlin(at)gmail.com>
|
5
|
-
* @ license: BSD (3-Clause)
|
6
|
-
* @ version: 2020-05-10 11:49:15
|
7
|
-
*/
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
9
|
-
exports.SetLogger = exports.Logger = void 0;
|
10
|
-
const koatty_logger_1 = require("koatty_logger");
|
11
|
-
// Logger
|
12
|
-
exports.Logger = koatty_logger_1.DefaultLogger;
|
13
|
-
/**
|
14
|
-
* SetLogger
|
15
|
-
*
|
16
|
-
* @export
|
17
|
-
* @param {{
|
18
|
-
* logLevel?: LogLevelType;
|
19
|
-
* logConsole?: boolean;
|
20
|
-
* logFile?: boolean;
|
21
|
-
* logFileLevel?: LogLevelType;
|
22
|
-
* logFilePath?: string;
|
23
|
-
* }} config
|
24
|
-
*/
|
25
|
-
function SetLogger(config) {
|
26
|
-
if (config.logLevel !== undefined) {
|
27
|
-
koatty_logger_1.DefaultLogger.setLevel(config.logLevel);
|
28
|
-
}
|
29
|
-
if (config.logConsole !== undefined) {
|
30
|
-
koatty_logger_1.DefaultLogger.setLogConsole(config.logConsole);
|
31
|
-
}
|
32
|
-
if (config.logFile !== undefined) {
|
33
|
-
koatty_logger_1.DefaultLogger.setLogFile(config.logFile);
|
34
|
-
koatty_logger_1.DefaultLogger.setLogFilePath(config.logFilePath);
|
35
|
-
}
|
36
|
-
if (config.logFileLevel !== undefined) {
|
37
|
-
koatty_logger_1.DefaultLogger.setLogFileLevel(config.logFileLevel);
|
38
|
-
}
|
39
|
-
}
|
40
|
-
exports.SetLogger = SetLogger;
|
41
|
-
//# sourceMappingURL=Logger.js.map
|
package/dist/util/Logger.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/util/Logger.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,iDAA4D;AAE5D,SAAS;AACI,QAAA,MAAM,GAAG,6BAAa,CAAC;AAEpC;;;;;;;;;;;GAWG;AACH,SAAgB,SAAS,CAAC,MAMzB;IACG,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;QAC/B,6BAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;KAC3C;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE;QACjC,6BAAa,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KAClD;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;QAC9B,6BAAa,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,6BAAa,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;KACpD;IACD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE;QACnC,6BAAa,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;KACtD;AACL,CAAC;AApBD,8BAoBC"}
|