@rdyl/node-koa-controller 0.0.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.
- package/CHANGELOG.md +4 -0
- package/README.md +20 -0
- package/dist/controller/index.js +179 -0
- package/dist/controller/meta.js +172 -0
- package/dist/index.js +17 -0
- package/package.json +34 -0
- package/types/controller/index.d.ts +7 -0
- package/types/controller/meta.d.ts +59 -0
- package/types/index.d.ts +1 -0
package/CHANGELOG.md
ADDED
package/README.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
## Installation
|
|
2
|
+
|
|
3
|
+
```bash
|
|
4
|
+
$ npm install @rdyl/react-router-connect
|
|
5
|
+
# or
|
|
6
|
+
$ yarn add @rdyl/react-router-connect
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Getting started
|
|
10
|
+
|
|
11
|
+
1. 配置tsconfig.json
|
|
12
|
+
```json
|
|
13
|
+
{
|
|
14
|
+
"compilerOptions": {
|
|
15
|
+
"types": [
|
|
16
|
+
"@rdyl/react-router-connect/types/type.d.ts"
|
|
17
|
+
],
|
|
18
|
+
},
|
|
19
|
+
}
|
|
20
|
+
```
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
36
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
37
|
+
};
|
|
38
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
39
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
40
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
41
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
42
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
43
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
44
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
48
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
49
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
50
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
51
|
+
function step(op) {
|
|
52
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
53
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
54
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
55
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
56
|
+
switch (op[0]) {
|
|
57
|
+
case 0: case 1: t = op; break;
|
|
58
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
59
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
60
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
61
|
+
default:
|
|
62
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
63
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
64
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
65
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
66
|
+
if (t[2]) _.ops.pop();
|
|
67
|
+
_.trys.pop(); continue;
|
|
68
|
+
}
|
|
69
|
+
op = body.call(thisArg, _);
|
|
70
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
71
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
75
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
76
|
+
};
|
|
77
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
78
|
+
exports.ASTCache = void 0;
|
|
79
|
+
exports.useController = useController;
|
|
80
|
+
var koa_router_1 = __importDefault(require("koa-router"));
|
|
81
|
+
var fs_1 = __importDefault(require("fs"));
|
|
82
|
+
var path_1 = require("path");
|
|
83
|
+
exports.ASTCache = {
|
|
84
|
+
routes: [],
|
|
85
|
+
whitelist: [],
|
|
86
|
+
};
|
|
87
|
+
function RegisterASTCacheRoutes(router) {
|
|
88
|
+
exports.ASTCache.routes.forEach(function (route) {
|
|
89
|
+
var handlers = route.handlers, prefix = route.prefix, Instance = route.Instance;
|
|
90
|
+
handlers.forEach(function (handler) {
|
|
91
|
+
var method = handler.method, url = handler.url, name = handler.name;
|
|
92
|
+
var path = (0, path_1.join)('/' + prefix, url);
|
|
93
|
+
var isPublic = route.isPublic || route.isPublic;
|
|
94
|
+
if (isPublic) {
|
|
95
|
+
exports.ASTCache.whitelist.push(path);
|
|
96
|
+
}
|
|
97
|
+
// @ts-ignore
|
|
98
|
+
router[method.toLowerCase()](path, function (_ctx) {
|
|
99
|
+
try {
|
|
100
|
+
var instance = new Instance(_ctx);
|
|
101
|
+
instance[name]();
|
|
102
|
+
}
|
|
103
|
+
catch (_a) {
|
|
104
|
+
console.log(path + ':配置错误!');
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
function useController(app_1, _a) {
|
|
111
|
+
return __awaiter(this, arguments, void 0, function (app, _b) {
|
|
112
|
+
var router, rootDir, initAST;
|
|
113
|
+
var _this = this;
|
|
114
|
+
var root = _b.root, _c = _b.prefix, prefix = _c === void 0 ? '' : _c;
|
|
115
|
+
return __generator(this, function (_d) {
|
|
116
|
+
switch (_d.label) {
|
|
117
|
+
case 0:
|
|
118
|
+
router = new koa_router_1.default({
|
|
119
|
+
prefix: prefix,
|
|
120
|
+
});
|
|
121
|
+
rootDir = (0, path_1.resolve)(process.cwd(), root);
|
|
122
|
+
initAST = function (dir) { return __awaiter(_this, void 0, void 0, function () {
|
|
123
|
+
var list, _i, list_1, p, url, stat, isDir, sp, ext, _a;
|
|
124
|
+
return __generator(this, function (_b) {
|
|
125
|
+
switch (_b.label) {
|
|
126
|
+
case 0:
|
|
127
|
+
list = fs_1.default.readdirSync(dir);
|
|
128
|
+
_i = 0, list_1 = list;
|
|
129
|
+
_b.label = 1;
|
|
130
|
+
case 1:
|
|
131
|
+
if (!(_i < list_1.length)) return [3 /*break*/, 8];
|
|
132
|
+
p = list_1[_i];
|
|
133
|
+
url = (0, path_1.resolve)(dir, p);
|
|
134
|
+
stat = fs_1.default.statSync(url);
|
|
135
|
+
isDir = stat.isDirectory();
|
|
136
|
+
if (!isDir) return [3 /*break*/, 3];
|
|
137
|
+
// 文件架
|
|
138
|
+
return [4 /*yield*/, initAST(url)];
|
|
139
|
+
case 2:
|
|
140
|
+
// 文件架
|
|
141
|
+
_b.sent();
|
|
142
|
+
return [3 /*break*/, 7];
|
|
143
|
+
case 3:
|
|
144
|
+
_b.trys.push([3, 6, , 7]);
|
|
145
|
+
sp = p.split('.');
|
|
146
|
+
ext = sp[sp.length - 1];
|
|
147
|
+
if (!(ext === 'ts' || ext === 'js')) return [3 /*break*/, 5];
|
|
148
|
+
// ts | js 文件
|
|
149
|
+
return [4 /*yield*/, Promise.resolve("".concat(url)).then(function (s) { return __importStar(require(s)); })];
|
|
150
|
+
case 4:
|
|
151
|
+
// ts | js 文件
|
|
152
|
+
_b.sent();
|
|
153
|
+
_b.label = 5;
|
|
154
|
+
case 5: return [3 /*break*/, 7];
|
|
155
|
+
case 6:
|
|
156
|
+
_a = _b.sent();
|
|
157
|
+
console.warn('解析出现错误!');
|
|
158
|
+
return [3 /*break*/, 7];
|
|
159
|
+
case 7:
|
|
160
|
+
_i++;
|
|
161
|
+
return [3 /*break*/, 1];
|
|
162
|
+
case 8: return [2 /*return*/];
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}); };
|
|
166
|
+
return [4 /*yield*/, initAST(rootDir)];
|
|
167
|
+
case 1:
|
|
168
|
+
_d.sent();
|
|
169
|
+
// 注册路由
|
|
170
|
+
RegisterASTCacheRoutes(router);
|
|
171
|
+
app.use(router.routes()).use(router.allowedMethods());
|
|
172
|
+
return [2 /*return*/, Promise.resolve({
|
|
173
|
+
whitelist: exports.ASTCache.whitelist,
|
|
174
|
+
})];
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
__exportStar(require("./meta"), exports);
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.Patch = exports.Put = exports.Delete = exports.Post = exports.Get = exports.BaseController = exports.HttpMethod = void 0;
|
|
40
|
+
exports.Controller = Controller;
|
|
41
|
+
var index_1 = require("./index");
|
|
42
|
+
var HttpMethod;
|
|
43
|
+
(function (HttpMethod) {
|
|
44
|
+
HttpMethod["GET"] = "GET";
|
|
45
|
+
HttpMethod["POST"] = "POST";
|
|
46
|
+
HttpMethod["PATCH"] = "PATCH";
|
|
47
|
+
HttpMethod["PUT"] = "PUT";
|
|
48
|
+
HttpMethod["DELETE"] = "DELETE";
|
|
49
|
+
})(HttpMethod || (exports.HttpMethod = HttpMethod = {}));
|
|
50
|
+
var BaseController = /** @class */ (function () {
|
|
51
|
+
function BaseController(_ctx) {
|
|
52
|
+
this._ctx = _ctx;
|
|
53
|
+
}
|
|
54
|
+
Object.defineProperty(BaseController.prototype, "pathname", {
|
|
55
|
+
get: function () {
|
|
56
|
+
return this._ctx.request.path;
|
|
57
|
+
},
|
|
58
|
+
enumerable: false,
|
|
59
|
+
configurable: true
|
|
60
|
+
});
|
|
61
|
+
Object.defineProperty(BaseController.prototype, "query", {
|
|
62
|
+
get: function () {
|
|
63
|
+
return this._ctx.query;
|
|
64
|
+
},
|
|
65
|
+
enumerable: false,
|
|
66
|
+
configurable: true
|
|
67
|
+
});
|
|
68
|
+
Object.defineProperty(BaseController.prototype, "params", {
|
|
69
|
+
get: function () {
|
|
70
|
+
return this._ctx.params || {};
|
|
71
|
+
},
|
|
72
|
+
enumerable: false,
|
|
73
|
+
configurable: true
|
|
74
|
+
});
|
|
75
|
+
Object.defineProperty(BaseController.prototype, "body", {
|
|
76
|
+
get: function () {
|
|
77
|
+
// @ts-ignore
|
|
78
|
+
return this._ctx.request.body;
|
|
79
|
+
},
|
|
80
|
+
enumerable: false,
|
|
81
|
+
configurable: true
|
|
82
|
+
});
|
|
83
|
+
BaseController.prototype.files = function () {
|
|
84
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
85
|
+
return __generator(this, function (_a) {
|
|
86
|
+
// @ts-ignore
|
|
87
|
+
return [2 /*return*/, this._ctx.request.files];
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
Object.defineProperty(BaseController.prototype, "status", {
|
|
92
|
+
get: function () {
|
|
93
|
+
var _ctx = this._ctx;
|
|
94
|
+
var sendJson = function (body) {
|
|
95
|
+
_ctx.response.set("Content-Type", "application/json;charset=utf-8");
|
|
96
|
+
_ctx.body = body;
|
|
97
|
+
};
|
|
98
|
+
return {
|
|
99
|
+
ok: function (data) {
|
|
100
|
+
sendJson({ data: data });
|
|
101
|
+
},
|
|
102
|
+
okCreated: function (data, msg) {
|
|
103
|
+
sendJson({ code: 201, data: data, msg: msg });
|
|
104
|
+
},
|
|
105
|
+
okAccept: function (data, msg) {
|
|
106
|
+
sendJson({ code: 203, data: data, msg: msg });
|
|
107
|
+
},
|
|
108
|
+
parameterError: function (msg) {
|
|
109
|
+
if (msg === void 0) { msg = "Parameter Error"; }
|
|
110
|
+
sendJson({ msg: msg, code: 400 });
|
|
111
|
+
},
|
|
112
|
+
unauthorized: function (msg) {
|
|
113
|
+
if (msg === void 0) { msg = "User Unauthorized"; }
|
|
114
|
+
sendJson({ msg: msg, code: 401 });
|
|
115
|
+
},
|
|
116
|
+
inaccessible: function (msg) {
|
|
117
|
+
if (msg === void 0) { msg = "User Inaccessible"; }
|
|
118
|
+
sendJson({ msg: msg, code: 403 });
|
|
119
|
+
},
|
|
120
|
+
exception: function (msg) {
|
|
121
|
+
if (msg === void 0) { msg = "Service Exception"; }
|
|
122
|
+
sendJson({ msg: msg, code: 500 });
|
|
123
|
+
},
|
|
124
|
+
unavailable: function (msg) {
|
|
125
|
+
if (msg === void 0) { msg = "Service Unavailable"; }
|
|
126
|
+
sendJson({ msg: msg, code: 503 });
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
},
|
|
130
|
+
enumerable: false,
|
|
131
|
+
configurable: true
|
|
132
|
+
});
|
|
133
|
+
return BaseController;
|
|
134
|
+
}());
|
|
135
|
+
exports.BaseController = BaseController;
|
|
136
|
+
function MethodFactory(method) {
|
|
137
|
+
return function (url, isPublic) {
|
|
138
|
+
if (isPublic === void 0) { isPublic = false; }
|
|
139
|
+
return function (target, name) {
|
|
140
|
+
var item = {
|
|
141
|
+
url: url,
|
|
142
|
+
method: method,
|
|
143
|
+
name: name,
|
|
144
|
+
isPublic: isPublic,
|
|
145
|
+
};
|
|
146
|
+
if (target.routes) {
|
|
147
|
+
target.routes.push(item);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
target.routes = [item];
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
function Controller(prefix, isPublic) {
|
|
156
|
+
if (isPublic === void 0) { isPublic = false; }
|
|
157
|
+
return function (target) {
|
|
158
|
+
var _a;
|
|
159
|
+
var route = {
|
|
160
|
+
Instance: target,
|
|
161
|
+
prefix: prefix,
|
|
162
|
+
handlers: ((_a = target.prototype) === null || _a === void 0 ? void 0 : _a.routes) || [],
|
|
163
|
+
isPublic: isPublic,
|
|
164
|
+
};
|
|
165
|
+
index_1.ASTCache.routes.push(route);
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
exports.Get = MethodFactory(HttpMethod.GET);
|
|
169
|
+
exports.Post = MethodFactory(HttpMethod.POST);
|
|
170
|
+
exports.Delete = MethodFactory(HttpMethod.DELETE);
|
|
171
|
+
exports.Put = MethodFactory(HttpMethod.PUT);
|
|
172
|
+
exports.Patch = MethodFactory(HttpMethod.PATCH);
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./controller"), exports);
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@rdyl/node-koa-controller",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "types/index.d.ts",
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"access": "public"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"types",
|
|
13
|
+
"CHANGELOG.md",
|
|
14
|
+
"README.md"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
|
|
18
|
+
"build": "tsc && copyfiles -u 1 src/**/*.d.ts src/*.d.ts types && npm run changelog && git add CHANGELOG.md"
|
|
19
|
+
},
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@types/koa": "^2.15.0",
|
|
22
|
+
"@types/koa-router": "^7.4.8",
|
|
23
|
+
"koa": "^2.15.3",
|
|
24
|
+
"koa-router": "^13.0.1"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@types/node": "^22.9.0",
|
|
28
|
+
"copyfiles": "^2.4.1",
|
|
29
|
+
"typescript": "^5.6.3",
|
|
30
|
+
"@commitlint/cli": "^19.6.1",
|
|
31
|
+
"@commitlint/config-conventional": "^19.6.0",
|
|
32
|
+
"conventional-changelog-cli": "^5.0.0"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ParameterizedContext } from "koa";
|
|
2
|
+
import { IRouterParamContext } from "koa-router";
|
|
3
|
+
export declare enum HttpMethod {
|
|
4
|
+
GET = "GET",
|
|
5
|
+
POST = "POST",
|
|
6
|
+
PATCH = "PATCH",
|
|
7
|
+
PUT = "PUT",
|
|
8
|
+
DELETE = "DELETE"
|
|
9
|
+
}
|
|
10
|
+
export declare class BaseController {
|
|
11
|
+
_ctx: ParameterizedContext<any, IRouterParamContext<any, {}>, any>;
|
|
12
|
+
constructor(_ctx: ParameterizedContext<any, IRouterParamContext<any, {}>, any>);
|
|
13
|
+
get pathname(): string;
|
|
14
|
+
get query(): import("querystring").ParsedUrlQuery;
|
|
15
|
+
get params(): Record<string, string>;
|
|
16
|
+
get body(): any;
|
|
17
|
+
files(): Promise<any>;
|
|
18
|
+
get status(): {
|
|
19
|
+
ok(data?: unknown): void;
|
|
20
|
+
okCreated(data: unknown, msg?: string): void;
|
|
21
|
+
okAccept(data: unknown, msg?: string): void;
|
|
22
|
+
parameterError(msg?: string): void;
|
|
23
|
+
unauthorized(msg?: string): void;
|
|
24
|
+
inaccessible(msg?: string): void;
|
|
25
|
+
exception(msg?: string): void;
|
|
26
|
+
unavailable(msg?: string): void;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export declare function Controller(prefix: string, isPublic?: boolean): (target: any) => void;
|
|
30
|
+
export declare const Get: (url: string, isPublic?: boolean) => (target: any, name: string) => void;
|
|
31
|
+
export declare const Post: (url: string, isPublic?: boolean) => (target: any, name: string) => void;
|
|
32
|
+
export declare const Delete: (url: string, isPublic?: boolean) => (target: any, name: string) => void;
|
|
33
|
+
export declare const Put: (url: string, isPublic?: boolean) => (target: any, name: string) => void;
|
|
34
|
+
export declare const Patch: (url: string, isPublic?: boolean) => (target: any, name: string) => void;
|
|
35
|
+
export interface ResData<T> {
|
|
36
|
+
msg: string;
|
|
37
|
+
code: number;
|
|
38
|
+
data: T;
|
|
39
|
+
}
|
|
40
|
+
export interface InitOpts {
|
|
41
|
+
root: string;
|
|
42
|
+
prefix?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface ASTCacheHandler {
|
|
45
|
+
url: string;
|
|
46
|
+
method: string;
|
|
47
|
+
isPublic: boolean;
|
|
48
|
+
name: string;
|
|
49
|
+
}
|
|
50
|
+
export interface ASTCacheRoute {
|
|
51
|
+
Instance: any;
|
|
52
|
+
isPublic: boolean;
|
|
53
|
+
prefix: string;
|
|
54
|
+
handlers: ASTCacheHandler[];
|
|
55
|
+
}
|
|
56
|
+
export interface ASTCacheProp {
|
|
57
|
+
routes: ASTCacheRoute[];
|
|
58
|
+
whitelist: string[];
|
|
59
|
+
}
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./controller";
|