lemon-core 4.1.15 → 4.2.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/README.md +2 -0
- package/dist/common/test-helper.d.ts +2 -2
- package/dist/common/test-helper.js +24 -26
- package/dist/common/test-helper.js.map +1 -1
- package/dist/controllers/dummy-controller.js +39 -46
- package/dist/controllers/dummy-controller.js.map +1 -1
- package/dist/controllers/general-api-controller.js +95 -100
- package/dist/controllers/general-api-controller.js.map +1 -1
- package/dist/controllers/general-controller.js +81 -82
- package/dist/controllers/general-controller.js.map +1 -1
- package/dist/cores/api/api-service.d.ts +1 -1
- package/dist/cores/api/api-service.js +228 -269
- package/dist/cores/api/api-service.js.map +1 -1
- package/dist/cores/aws/aws-kms-service.d.ts +1 -2
- package/dist/cores/aws/aws-kms-service.js +143 -153
- package/dist/cores/aws/aws-kms-service.js.map +1 -1
- package/dist/cores/aws/aws-s3-service.d.ts +2 -4
- package/dist/cores/aws/aws-s3-service.js +306 -330
- package/dist/cores/aws/aws-s3-service.js.map +1 -1
- package/dist/cores/aws/aws-sns-service.js +147 -153
- package/dist/cores/aws/aws-sns-service.js.map +1 -1
- package/dist/cores/aws/aws-sqs-service.js +149 -170
- package/dist/cores/aws/aws-sqs-service.js.map +1 -1
- package/dist/cores/aws/index.js +10 -20
- package/dist/cores/aws/index.js.map +1 -1
- package/dist/cores/cache/cache-service.d.ts +2 -2
- package/dist/cores/cache/cache-service.js +435 -499
- package/dist/cores/cache/cache-service.js.map +1 -1
- package/dist/cores/config/config-service.d.ts +1 -1
- package/dist/cores/config/config-service.js +56 -63
- package/dist/cores/config/config-service.js.map +1 -1
- package/dist/cores/config/index.js +14 -24
- package/dist/cores/config/index.js.map +1 -1
- package/dist/cores/core-services.d.ts +1 -1
- package/dist/cores/dynamo/dynamo-query-service.js +37 -51
- package/dist/cores/dynamo/dynamo-query-service.js.map +1 -1
- package/dist/cores/dynamo/dynamo-scan-service.d.ts +2 -2
- package/dist/cores/dynamo/dynamo-scan-service.js +29 -40
- package/dist/cores/dynamo/dynamo-scan-service.js.map +1 -1
- package/dist/cores/dynamo/dynamo-service.d.ts +3 -3
- package/dist/cores/dynamo/dynamo-service.js +540 -605
- package/dist/cores/dynamo/dynamo-service.js.map +1 -1
- package/dist/cores/dynamo/tools/expressions.js +17 -7
- package/dist/cores/dynamo/tools/expressions.js.map +1 -1
- package/dist/cores/dynamo/tools/query.js +142 -127
- package/dist/cores/dynamo/tools/query.js.map +1 -1
- package/dist/cores/dynamo/tools/scan.js +111 -97
- package/dist/cores/dynamo/tools/scan.js.map +1 -1
- package/dist/cores/dynamo/tools/serializer.js +17 -7
- package/dist/cores/dynamo/tools/serializer.js.map +1 -1
- package/dist/cores/dynamo/tools/utils.d.ts +0 -2
- package/dist/cores/dynamo/tools/utils.js.map +1 -1
- package/dist/cores/elastic/elastic6-query-service.js +307 -324
- package/dist/cores/elastic/elastic6-query-service.js.map +1 -1
- package/dist/cores/elastic/elastic6-service.d.ts +3 -3
- package/dist/cores/elastic/elastic6-service.js +568 -647
- package/dist/cores/elastic/elastic6-service.js.map +1 -1
- package/dist/cores/elastic/hangul-service.js +52 -54
- package/dist/cores/elastic/hangul-service.js.map +1 -1
- package/dist/cores/lambda/index.js +42 -36
- package/dist/cores/lambda/index.js.map +1 -1
- package/dist/cores/lambda/lambda-alb-handler.d.ts +2 -2
- package/dist/cores/lambda/lambda-alb-handler.js +59 -72
- package/dist/cores/lambda/lambda-alb-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-cognito-handler.js +10 -19
- package/dist/cores/lambda/lambda-cognito-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-cron-handler.d.ts +1 -1
- package/dist/cores/lambda/lambda-cron-handler.js +14 -23
- package/dist/cores/lambda/lambda-cron-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-dynamo-stream-handler.d.ts +2 -2
- package/dist/cores/lambda/lambda-dynamo-stream-handler.js +57 -67
- package/dist/cores/lambda/lambda-dynamo-stream-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-handler.d.ts +22 -22
- package/dist/cores/lambda/lambda-handler.js +93 -106
- package/dist/cores/lambda/lambda-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-notification-handler.d.ts +1 -1
- package/dist/cores/lambda/lambda-notification-handler.js +39 -50
- package/dist/cores/lambda/lambda-notification-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-sns-handler.js +79 -88
- package/dist/cores/lambda/lambda-sns-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-sqs-handler.js +79 -88
- package/dist/cores/lambda/lambda-sqs-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-web-handler.d.ts +6 -6
- package/dist/cores/lambda/lambda-web-handler.js +387 -412
- package/dist/cores/lambda/lambda-web-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-wss-handler.js +23 -32
- package/dist/cores/lambda/lambda-wss-handler.js.map +1 -1
- package/dist/cores/protocol/index.js +10 -20
- package/dist/cores/protocol/index.js.map +1 -1
- package/dist/cores/protocol/protocol-service.d.ts +3 -3
- package/dist/cores/protocol/protocol-service.js +235 -227
- package/dist/cores/protocol/protocol-service.js.map +1 -1
- package/dist/cores/storage/http-storage-service.js +65 -85
- package/dist/cores/storage/http-storage-service.js.map +1 -1
- package/dist/cores/storage/model-manager.js +66 -85
- package/dist/cores/storage/model-manager.js.map +1 -1
- package/dist/cores/storage/proxy-storage-service.d.ts +2 -2
- package/dist/cores/storage/proxy-storage-service.js +562 -599
- package/dist/cores/storage/proxy-storage-service.js.map +1 -1
- package/dist/cores/storage/redis-storage-service.js +163 -177
- package/dist/cores/storage/redis-storage-service.js.map +1 -1
- package/dist/cores/storage/storage-service.d.ts +8 -1
- package/dist/cores/storage/storage-service.js +359 -324
- package/dist/cores/storage/storage-service.js.map +1 -1
- package/dist/engine/builder.d.ts +1 -1
- package/dist/engine/builder.js +59 -63
- package/dist/engine/builder.js.map +1 -1
- package/dist/engine/engine.d.ts +4 -4
- package/dist/engine/engine.js +9 -18
- package/dist/engine/engine.js.map +1 -1
- package/dist/engine/types.d.ts +1 -1
- package/dist/engine/utilities.d.ts +5 -5
- package/dist/engine/utilities.js +301 -293
- package/dist/engine/utilities.js.map +1 -1
- package/dist/environ.js +4 -6
- package/dist/environ.js.map +1 -1
- package/dist/extended/abstract-service.js +595 -645
- package/dist/extended/abstract-service.js.map +1 -1
- package/dist/extended/libs/sig-v4.js.map +1 -1
- package/dist/generated/field-registry.d.ts +10 -0
- package/dist/generated/field-registry.js +17 -0
- package/dist/generated/field-registry.js.map +1 -0
- package/dist/helpers/helpers.d.ts +17 -9
- package/dist/helpers/helpers.js +88 -78
- package/dist/helpers/helpers.js.map +1 -1
- package/dist/index.js +17 -7
- package/dist/index.js.map +1 -1
- package/dist/lib/dynamodb-value.js +2 -3
- package/dist/lib/dynamodb-value.js.map +1 -1
- package/dist/tools/express.js +4 -5
- package/dist/tools/express.js.map +1 -1
- package/dist/tools/tools.d.ts +3 -1
- package/dist/tools/tools.js +14 -21
- package/dist/tools/tools.js.map +1 -1
- package/package.json +25 -24
- package/dist/exec-cli.d.ts +0 -2
- package/dist/exec-cli.js +0 -211
- package/dist/exec-cli.js.map +0 -1
- package/dist/lib/dynamo/expressions.d.ts +0 -14
- package/dist/lib/dynamo/expressions.js +0 -212
- package/dist/lib/dynamo/expressions.js.map +0 -1
- package/dist/lib/dynamo/query.d.ts +0 -43
- package/dist/lib/dynamo/query.js +0 -246
- package/dist/lib/dynamo/query.js.map +0 -1
- package/dist/lib/dynamo/scan.d.ts +0 -33
- package/dist/lib/dynamo/scan.js +0 -172
- package/dist/lib/dynamo/scan.js.map +0 -1
- package/dist/lib/dynamo/serializer.d.ts +0 -12
- package/dist/lib/dynamo/serializer.js +0 -243
- package/dist/lib/dynamo/serializer.js.map +0 -1
- package/dist/lib/dynamo/utils.d.ts +0 -15
- package/dist/lib/dynamo/utils.js +0 -129
- package/dist/lib/dynamo/utils.js.map +0 -1
- package/dist/tools/shared.d.ts +0 -28
- package/dist/tools/shared.js +0 -143
- package/dist/tools/shared.js.map +0 -1
package/README.md
CHANGED
|
@@ -69,6 +69,8 @@ See [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md)
|
|
|
69
69
|
|
|
70
70
|
| Version | Description
|
|
71
71
|
|-- |--
|
|
72
|
+
| 4.2.1 | optimized `storage-service` w/ `dummy` service (+ audit fix).
|
|
73
|
+
| 4.2.0 | optimized `node@24.15.0` w/o `ttypescript` + `jest`.
|
|
72
74
|
| 4.1.12 | optimized `synchronizer` w/o `elastic` config.
|
|
73
75
|
| 4.1.12 | optimized `@aws-sdk` w/ version `3.971.0`.
|
|
74
76
|
| 4.1.11 | optimized `proxy.mget` w/ `error-reporting` option.
|
|
@@ -36,7 +36,7 @@ export declare const GETERR$: (e: any) => {
|
|
|
36
36
|
*/
|
|
37
37
|
export declare const NUL404: (e: Error) => any;
|
|
38
38
|
/** returns only defined */
|
|
39
|
-
export declare const onlyDefined: <T extends object>(N: T, $def?: T) => T;
|
|
39
|
+
export declare const onlyDefined: <T extends object>(N: T, $def?: T | null) => T | null;
|
|
40
40
|
/**
|
|
41
41
|
* improve expect() function with projection field.
|
|
42
42
|
*
|
|
@@ -83,7 +83,7 @@ export declare const waited: (t?: number) => Promise<unknown>;
|
|
|
83
83
|
/**
|
|
84
84
|
* error payload type
|
|
85
85
|
*/
|
|
86
|
-
|
|
86
|
+
type ErrorPayload = {
|
|
87
87
|
'stack-trace'?: any;
|
|
88
88
|
message: string;
|
|
89
89
|
error: string;
|
|
@@ -9,17 +9,12 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @copyright (C) 2019 LemonCloud Co Ltd. - All Rights Reserved.
|
|
11
11
|
*/
|
|
12
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
13
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
14
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
15
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
16
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
17
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
18
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
13
|
exports.asErrorPayload = exports.waited = exports.marshal = exports.environ = exports._it = exports.expect2 = exports.onlyDefined = exports.NUL404 = exports.GETERR$ = exports.GETERR = void 0;
|
|
14
|
+
// Keep test runner access indirect. This module is exported from the public package API,
|
|
15
|
+
// so importing Vitest here would leak a devDependency into runtime consumers.
|
|
16
|
+
const $expect = () => globalThis?.expect;
|
|
17
|
+
const $it = () => globalThis?.it;
|
|
23
18
|
/**
|
|
24
19
|
* catch error as string
|
|
25
20
|
*
|
|
@@ -29,7 +24,13 @@ exports.asErrorPayload = exports.waited = exports.marshal = exports.environ = ex
|
|
|
29
24
|
* ```
|
|
30
25
|
* @param e
|
|
31
26
|
*/
|
|
32
|
-
const GETERR = (e) =>
|
|
27
|
+
const GETERR = (e) => {
|
|
28
|
+
if (e instanceof Error) {
|
|
29
|
+
const errors = Array.isArray(e.errors) ? e.errors.map(exports.GETERR) : [];
|
|
30
|
+
return [`${e.message}`, ...errors].filter(_ => _).join('\n');
|
|
31
|
+
}
|
|
32
|
+
return e && typeof e == 'object' ? JSON.stringify(e) : `${e}`;
|
|
33
|
+
};
|
|
33
34
|
exports.GETERR = GETERR;
|
|
34
35
|
/**
|
|
35
36
|
* catch error as { error: string }
|
|
@@ -95,14 +96,14 @@ const expect2 = (test, view) => {
|
|
|
95
96
|
try {
|
|
96
97
|
const ret = typeof test == 'function' ? test() : test;
|
|
97
98
|
if (ret instanceof Promise) {
|
|
98
|
-
return expect(ret.then(project).catch(exports.GETERR)).resolves;
|
|
99
|
+
return $expect()(ret.then(project).catch(exports.GETERR)).resolves;
|
|
99
100
|
}
|
|
100
101
|
else {
|
|
101
|
-
return expect(project(ret));
|
|
102
|
+
return $expect()(project(ret));
|
|
102
103
|
}
|
|
103
104
|
}
|
|
104
105
|
catch (e) {
|
|
105
|
-
return expect((0, exports.GETERR)(e));
|
|
106
|
+
return $expect()((0, exports.GETERR)(e));
|
|
106
107
|
}
|
|
107
108
|
};
|
|
108
109
|
exports.expect2 = expect2;
|
|
@@ -113,7 +114,7 @@ exports.expect2 = expect2;
|
|
|
113
114
|
* @param callback
|
|
114
115
|
*/
|
|
115
116
|
const _it = (name, callback) => {
|
|
116
|
-
it(`ignore! ${name}`, (
|
|
117
|
+
$it()(`ignore! ${name}`, () => undefined);
|
|
117
118
|
};
|
|
118
119
|
exports._it = _it;
|
|
119
120
|
/**
|
|
@@ -167,12 +168,10 @@ exports.marshal = marshal;
|
|
|
167
168
|
* ``
|
|
168
169
|
* @param t msec
|
|
169
170
|
*/
|
|
170
|
-
const waited = (t = 200) =>
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
}, t);
|
|
175
|
-
});
|
|
171
|
+
const waited = async (t = 200) => new Promise(resolve => {
|
|
172
|
+
setTimeout(() => {
|
|
173
|
+
resolve(undefined);
|
|
174
|
+
}, t);
|
|
176
175
|
});
|
|
177
176
|
exports.waited = waited;
|
|
178
177
|
/**
|
|
@@ -184,10 +183,9 @@ const asErrorPayload = (e, data) => {
|
|
|
184
183
|
return typeof m == 'object' ? JSON.stringify(m) : `${m}`;
|
|
185
184
|
};
|
|
186
185
|
const _pack = (e, depth = 0) => {
|
|
187
|
-
var _a;
|
|
188
186
|
if (e === undefined || e === null)
|
|
189
187
|
return { error: e };
|
|
190
|
-
const stack = e instanceof Error ? e
|
|
188
|
+
const stack = e instanceof Error ? e?.stack : undefined;
|
|
191
189
|
const error = e === undefined || e === null
|
|
192
190
|
? e
|
|
193
191
|
: typeof e == 'string'
|
|
@@ -199,7 +197,7 @@ const asErrorPayload = (e, data) => {
|
|
|
199
197
|
if (depth > 5)
|
|
200
198
|
return { stack, error };
|
|
201
199
|
// check nested errors.
|
|
202
|
-
const errors =
|
|
200
|
+
const errors = e?.errors || e?.body?.errors || e?.cause;
|
|
203
201
|
if (errors && typeof errors == 'object') {
|
|
204
202
|
if (Array.isArray(errors)) {
|
|
205
203
|
const errs = errors.map((ee) => _pack(ee, depth + 1));
|
|
@@ -219,10 +217,10 @@ const asErrorPayload = (e, data) => {
|
|
|
219
217
|
const message = data && typeof data == 'string' ? data : _msg(e);
|
|
220
218
|
const E = _pack(e);
|
|
221
219
|
const payload = Object.assign($base, (0, exports.onlyDefined)({
|
|
222
|
-
'stack-trace': E
|
|
220
|
+
'stack-trace': E?.stack,
|
|
223
221
|
message,
|
|
224
|
-
error: E
|
|
225
|
-
errors: E
|
|
222
|
+
error: E?.error,
|
|
223
|
+
errors: E?.errors,
|
|
226
224
|
}));
|
|
227
225
|
//* returns payload for sns error
|
|
228
226
|
return payload;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-helper.js","sourceRoot":"","sources":["../../src/common/test-helper.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG
|
|
1
|
+
{"version":3,"file":"test-helper.js","sourceRoot":"","sources":["../../src/common/test-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.DummyController = void 0;
|
|
13
4
|
/**
|
|
@@ -36,6 +27,8 @@ const general_controller_1 = require("./general-controller");
|
|
|
36
27
|
* - to serve basic CRUD with `dummy-<type>-data.yml`
|
|
37
28
|
*/
|
|
38
29
|
class DummyController extends general_controller_1.GeneralController {
|
|
30
|
+
_name;
|
|
31
|
+
service;
|
|
39
32
|
/**
|
|
40
33
|
* create dummy-controller with type
|
|
41
34
|
*
|
|
@@ -45,49 +38,16 @@ class DummyController extends general_controller_1.GeneralController {
|
|
|
45
38
|
*/
|
|
46
39
|
constructor(type, name, idName = 'id') {
|
|
47
40
|
super(type);
|
|
48
|
-
/**
|
|
49
|
-
* name of this resource.
|
|
50
|
-
*/
|
|
51
|
-
this.hello = () => `dummy-controller:${this.type()}/${this._name}`;
|
|
52
|
-
/**
|
|
53
|
-
* get list of data.
|
|
54
|
-
*/
|
|
55
|
-
this.do_list = (id, param, body, ctx) => __awaiter(this, void 0, void 0, function* () {
|
|
56
|
-
param = param || {};
|
|
57
|
-
const page = engine_1.$U.N(param.page, 1);
|
|
58
|
-
const limit = engine_1.$U.N(param.limit, 1);
|
|
59
|
-
return this.service.listItems(page, limit);
|
|
60
|
-
});
|
|
61
|
-
/**
|
|
62
|
-
* read item.
|
|
63
|
-
*/
|
|
64
|
-
this.do_get = (id, param, body, ctx) => __awaiter(this, void 0, void 0, function* () {
|
|
65
|
-
return this.service.readItem(id);
|
|
66
|
-
});
|
|
67
|
-
/**
|
|
68
|
-
* update item.
|
|
69
|
-
*/
|
|
70
|
-
this.do_put = (id, param, body, ctx) => __awaiter(this, void 0, void 0, function* () {
|
|
71
|
-
return this.service.updateItem(id, null, body);
|
|
72
|
-
});
|
|
73
|
-
/**
|
|
74
|
-
* save item.
|
|
75
|
-
*/
|
|
76
|
-
this.do_post = (id, param, body, ctx) => __awaiter(this, void 0, void 0, function* () {
|
|
77
|
-
return this.service.saveItem(id, body);
|
|
78
|
-
});
|
|
79
|
-
/**
|
|
80
|
-
* delete item.
|
|
81
|
-
*/
|
|
82
|
-
this.do_delete = (id, param, body, ctx) => __awaiter(this, void 0, void 0, function* () {
|
|
83
|
-
return this.service.deleteItem(id);
|
|
84
|
-
});
|
|
85
41
|
this._name = name || type;
|
|
86
42
|
//* prepare dynamo options.
|
|
87
43
|
const tableName = `dummy-${this._name}`;
|
|
88
44
|
const fileName = `dummy-${this._name}-data.yml`;
|
|
89
45
|
this.service = new dynamo_1.DummyDynamoService(fileName, { tableName, idName });
|
|
90
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* name of this resource.
|
|
49
|
+
*/
|
|
50
|
+
hello = () => `dummy-controller:${this.type()}/${this._name}`;
|
|
91
51
|
/**
|
|
92
52
|
* decode to target `next-handler`
|
|
93
53
|
* - use pattern `do_<mode>_<cmd?>`
|
|
@@ -102,6 +62,39 @@ class DummyController extends general_controller_1.GeneralController {
|
|
|
102
62
|
const handler = this[funcName];
|
|
103
63
|
return typeof handler == 'function' ? handler : null;
|
|
104
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* get list of data.
|
|
67
|
+
*/
|
|
68
|
+
do_list = async (id, param, body, ctx) => {
|
|
69
|
+
param = param || {};
|
|
70
|
+
const page = engine_1.$U.N(param.page, 1);
|
|
71
|
+
const limit = engine_1.$U.N(param.limit, 1);
|
|
72
|
+
return this.service.listItems(page, limit);
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* read item.
|
|
76
|
+
*/
|
|
77
|
+
do_get = async (id, param, body, ctx) => {
|
|
78
|
+
return this.service.readItem(id);
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* update item.
|
|
82
|
+
*/
|
|
83
|
+
do_put = async (id, param, body, ctx) => {
|
|
84
|
+
return this.service.updateItem(id, null, body);
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* save item.
|
|
88
|
+
*/
|
|
89
|
+
do_post = async (id, param, body, ctx) => {
|
|
90
|
+
return this.service.saveItem(id, body);
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* delete item.
|
|
94
|
+
*/
|
|
95
|
+
do_delete = async (id, param, body, ctx) => {
|
|
96
|
+
return this.service.deleteItem(id);
|
|
97
|
+
};
|
|
105
98
|
}
|
|
106
99
|
exports.DummyController = DummyController;
|
|
107
100
|
//# sourceMappingURL=dummy-controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dummy-controller.js","sourceRoot":"","sources":["../../src/controllers/dummy-controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dummy-controller.js","sourceRoot":"","sources":["../../src/controllers/dummy-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.GeneralAPIController = void 0;
|
|
13
4
|
/**
|
|
@@ -30,6 +21,10 @@ const general_controller_1 = require("./general-controller");
|
|
|
30
21
|
* - support basic CRUD with TypedManager
|
|
31
22
|
*/
|
|
32
23
|
class GeneralAPIController extends general_controller_1.GeneralWEBController {
|
|
24
|
+
NS;
|
|
25
|
+
storage;
|
|
26
|
+
search;
|
|
27
|
+
unique;
|
|
33
28
|
/**
|
|
34
29
|
* default constructor
|
|
35
30
|
* @param type type of REST API
|
|
@@ -39,102 +34,15 @@ class GeneralAPIController extends general_controller_1.GeneralWEBController {
|
|
|
39
34
|
*/
|
|
40
35
|
constructor(type, storage, search, uniqueField) {
|
|
41
36
|
super(type);
|
|
42
|
-
/**
|
|
43
|
-
* name of this resource.
|
|
44
|
-
*/
|
|
45
|
-
this.hello = () => `general-api-controller:${this.type()}`;
|
|
46
|
-
/**
|
|
47
|
-
* search node
|
|
48
|
-
*
|
|
49
|
-
*/
|
|
50
|
-
this.listBase = (id, param, body, context) => __awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
(0, engine_1._log)(this.NS, `! listBase(${id})..`);
|
|
52
|
-
param = param || {};
|
|
53
|
-
//* translate page + ipp => page & limit.
|
|
54
|
-
const $page = engine_1.$U.N(param.page, 0);
|
|
55
|
-
const $limit = engine_1.$U.N(param.limit, engine_1.$U.N(param.ipp, 12)); // compartible for ipp
|
|
56
|
-
const $param = Object.assign(Object.assign({}, param), { $page, $limit, page: undefined, ipp: undefined, limit: undefined }); // clear paging param.
|
|
57
|
-
$param.$O = $param.$O || 'id.keyword'; // order by id
|
|
58
|
-
//* base filter masking.
|
|
59
|
-
if (param.type === undefined)
|
|
60
|
-
$param.type = this.type();
|
|
61
|
-
if (param.deletedAt === undefined)
|
|
62
|
-
$param.deletedAt = 0;
|
|
63
|
-
if (this.unique && param.stereo === undefined)
|
|
64
|
-
$param['!stereo'] = '#'; //* `.stereo` is not like '#'
|
|
65
|
-
//* call search.
|
|
66
|
-
return this.search.searchSimple($param);
|
|
67
|
-
});
|
|
68
|
-
/**
|
|
69
|
-
* read node
|
|
70
|
-
*/
|
|
71
|
-
this.getBase = (id, param, body, context) => __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
(0, engine_1._log)(this.NS, `! getBase(${id})..`);
|
|
73
|
-
return this.storage.read(id);
|
|
74
|
-
});
|
|
75
|
-
/**
|
|
76
|
-
* update node.
|
|
77
|
-
* - throw error if not found.
|
|
78
|
-
*/
|
|
79
|
-
this.putBase = (id, param, body, context) => __awaiter(this, void 0, void 0, function* () {
|
|
80
|
-
(0, engine_1._log)(this.NS, `! putBase(${id})..`);
|
|
81
|
-
id = `${id || ''}`.trim();
|
|
82
|
-
if (!id)
|
|
83
|
-
throw new Error('@id (string) is required!');
|
|
84
|
-
const $org = yield this.storage.read(id);
|
|
85
|
-
//* if try to update 'unique-field', then update lookup.
|
|
86
|
-
const field = this.unique ? this.unique.field : '';
|
|
87
|
-
const $base = field && body[field] ? yield this.unique.updateLookup($org, body[field]) : {};
|
|
88
|
-
const res = yield this.storage.save(id, body);
|
|
89
|
-
return Object.assign(Object.assign(Object.assign({}, $base), res), { id });
|
|
90
|
-
});
|
|
91
|
-
/**
|
|
92
|
-
* save (or create) node.
|
|
93
|
-
*/
|
|
94
|
-
this.postBase = (id, param, body, context) => __awaiter(this, void 0, void 0, function* () {
|
|
95
|
-
(0, engine_1._log)(this.NS, `! postBase(${id})..`);
|
|
96
|
-
id = `${id || ''}`.trim();
|
|
97
|
-
if (!id)
|
|
98
|
-
throw new Error('@id (string) is required!');
|
|
99
|
-
id = id == '0' ? '' : id; // clear id.
|
|
100
|
-
//* if try to update 'unique-field', then update lookup.
|
|
101
|
-
const field = this.unique ? this.unique.field : '';
|
|
102
|
-
const $base = field && body[field] ? yield this.unique.updateLookup({ id, [field]: body[field] }) : {};
|
|
103
|
-
id = id || $base.id;
|
|
104
|
-
//* if no id found, then try to make new one.
|
|
105
|
-
if (!id) {
|
|
106
|
-
const $id = yield this.storage.insert({ type: this.storage.type });
|
|
107
|
-
const res = yield this.storage.save($id.id, body);
|
|
108
|
-
return Object.assign(Object.assign({}, res), $id);
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
const res = yield this.storage.save(id, body);
|
|
112
|
-
return Object.assign(Object.assign(Object.assign({}, $base), res), { id });
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
/**
|
|
116
|
-
* delete (or destroy) node
|
|
117
|
-
*/
|
|
118
|
-
this.deleteBase = (id, param, body, context) => __awaiter(this, void 0, void 0, function* () {
|
|
119
|
-
(0, engine_1._log)(this.NS, `! deleteBase(${id})..`);
|
|
120
|
-
param = param || {};
|
|
121
|
-
const destroy = engine_1.$U.N(param.destroy, param.destroy === '' ? 1 : 0) ? true : false;
|
|
122
|
-
//* destroy for lookup-id (TBD - need to destory lookup-key really?)
|
|
123
|
-
const field = this.unique ? this.unique.field : '';
|
|
124
|
-
if (destroy && this.unique) {
|
|
125
|
-
const $org = yield this.storage.read(id).catch(test_helper_1.NUL404);
|
|
126
|
-
const old = $org ? $org[field] : '';
|
|
127
|
-
if (old)
|
|
128
|
-
yield this.storage.delete(this.unique.asLookupId(old), destroy);
|
|
129
|
-
}
|
|
130
|
-
//* destroy key...
|
|
131
|
-
return this.storage.delete(id, destroy);
|
|
132
|
-
});
|
|
133
37
|
this.NS = engine_1.$U.NS(`*${type}`, 'yellow'); // NAMESPACE TO BE PRINTED.
|
|
134
38
|
this.storage = storage;
|
|
135
39
|
this.search = search;
|
|
136
40
|
this.unique = uniqueField ? storage.makeUniqueFieldManager(uniqueField) : null;
|
|
137
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* name of this resource.
|
|
44
|
+
*/
|
|
45
|
+
hello = () => `general-api-controller:${this.type()}`;
|
|
138
46
|
/**
|
|
139
47
|
* override decoder of function-name.
|
|
140
48
|
* 1. try to find default.
|
|
@@ -147,6 +55,93 @@ class GeneralAPIController extends general_controller_1.GeneralWEBController {
|
|
|
147
55
|
const func2 = super.asFuncName(mode, 'base', cmd); // use like `getBase()`
|
|
148
56
|
return func2;
|
|
149
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* search node
|
|
60
|
+
*
|
|
61
|
+
*/
|
|
62
|
+
listBase = async (id, param, body, context) => {
|
|
63
|
+
(0, engine_1._log)(this.NS, `! listBase(${id})..`);
|
|
64
|
+
param = param || {};
|
|
65
|
+
//* translate page + ipp => page & limit.
|
|
66
|
+
const $page = engine_1.$U.N(param.page, 0);
|
|
67
|
+
const $limit = engine_1.$U.N(param.limit, engine_1.$U.N(param.ipp, 12)); // compartible for ipp
|
|
68
|
+
const $param = { ...param, $page, $limit, page: undefined, ipp: undefined, limit: undefined }; // clear paging param.
|
|
69
|
+
$param.$O = $param.$O || 'id.keyword'; // order by id
|
|
70
|
+
//* base filter masking.
|
|
71
|
+
if (param.type === undefined)
|
|
72
|
+
$param.type = this.type();
|
|
73
|
+
if (param.deletedAt === undefined)
|
|
74
|
+
$param.deletedAt = 0;
|
|
75
|
+
if (this.unique && param.stereo === undefined)
|
|
76
|
+
$param['!stereo'] = '#'; //* `.stereo` is not like '#'
|
|
77
|
+
//* call search.
|
|
78
|
+
return this.search.searchSimple($param);
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* read node
|
|
82
|
+
*/
|
|
83
|
+
getBase = async (id, param, body, context) => {
|
|
84
|
+
(0, engine_1._log)(this.NS, `! getBase(${id})..`);
|
|
85
|
+
return this.storage.read(id);
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* update node.
|
|
89
|
+
* - throw error if not found.
|
|
90
|
+
*/
|
|
91
|
+
putBase = async (id, param, body, context) => {
|
|
92
|
+
(0, engine_1._log)(this.NS, `! putBase(${id})..`);
|
|
93
|
+
id = `${id || ''}`.trim();
|
|
94
|
+
if (!id)
|
|
95
|
+
throw new Error('@id (string) is required!');
|
|
96
|
+
const $org = await this.storage.read(id);
|
|
97
|
+
//* if try to update 'unique-field', then update lookup.
|
|
98
|
+
const field = this.unique ? this.unique.field : '';
|
|
99
|
+
const $base = field && body[field] ? await this.unique.updateLookup($org, body[field]) : {};
|
|
100
|
+
const res = await this.storage.save(id, body);
|
|
101
|
+
return { ...$base, ...res, id };
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* save (or create) node.
|
|
105
|
+
*/
|
|
106
|
+
postBase = async (id, param, body, context) => {
|
|
107
|
+
(0, engine_1._log)(this.NS, `! postBase(${id})..`);
|
|
108
|
+
id = `${id || ''}`.trim();
|
|
109
|
+
if (!id)
|
|
110
|
+
throw new Error('@id (string) is required!');
|
|
111
|
+
id = id == '0' ? '' : id; // clear id.
|
|
112
|
+
//* if try to update 'unique-field', then update lookup.
|
|
113
|
+
const field = this.unique ? this.unique.field : '';
|
|
114
|
+
const $base = field && body[field] ? await this.unique.updateLookup({ id, [field]: body[field] }) : {};
|
|
115
|
+
id = id || $base.id;
|
|
116
|
+
//* if no id found, then try to make new one.
|
|
117
|
+
if (!id) {
|
|
118
|
+
const $id = await this.storage.insert({ type: this.storage.type });
|
|
119
|
+
const res = await this.storage.save($id.id, body);
|
|
120
|
+
return { ...res, ...$id };
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
const res = await this.storage.save(id, body);
|
|
124
|
+
return { ...$base, ...res, id };
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* delete (or destroy) node
|
|
129
|
+
*/
|
|
130
|
+
deleteBase = async (id, param, body, context) => {
|
|
131
|
+
(0, engine_1._log)(this.NS, `! deleteBase(${id})..`);
|
|
132
|
+
param = param || {};
|
|
133
|
+
const destroy = engine_1.$U.N(param.destroy, param.destroy === '' ? 1 : 0) ? true : false;
|
|
134
|
+
//* destroy for lookup-id (TBD - need to destory lookup-key really?)
|
|
135
|
+
const field = this.unique ? this.unique.field : '';
|
|
136
|
+
if (destroy && this.unique) {
|
|
137
|
+
const $org = await this.storage.read(id).catch(test_helper_1.NUL404);
|
|
138
|
+
const old = $org ? $org[field] : '';
|
|
139
|
+
if (old)
|
|
140
|
+
await this.storage.delete(this.unique.asLookupId(old), destroy);
|
|
141
|
+
}
|
|
142
|
+
//* destroy key...
|
|
143
|
+
return this.storage.delete(id, destroy);
|
|
144
|
+
};
|
|
150
145
|
}
|
|
151
146
|
exports.GeneralAPIController = GeneralAPIController;
|
|
152
147
|
//# sourceMappingURL=general-api-controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general-api-controller.js","sourceRoot":"","sources":["../../src/controllers/general-api-controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"general-api-controller.js","sourceRoot":"","sources":["../../src/controllers/general-api-controller.ts"],"names":[],"mappings":"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"}
|