lemon-core 3.2.16 → 4.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/README.md +1 -1
- package/dist/common/types.d.ts +2 -1
- package/dist/cores/api/api-service.js +2 -2
- package/dist/cores/api/api-service.js.map +1 -1
- package/dist/cores/aws/aws-kms-service.d.ts +3 -4
- package/dist/cores/aws/aws-kms-service.js +13 -16
- package/dist/cores/aws/aws-kms-service.js.map +1 -1
- package/dist/cores/aws/aws-s3-service.d.ts +5 -5
- package/dist/cores/aws/aws-s3-service.js +17 -16
- package/dist/cores/aws/aws-s3-service.js.map +1 -1
- package/dist/cores/aws/aws-sns-service.js +29 -36
- package/dist/cores/aws/aws-sns-service.js.map +1 -1
- package/dist/cores/aws/aws-sqs-service.js +11 -13
- package/dist/cores/aws/aws-sqs-service.js.map +1 -1
- package/dist/cores/config/config-service.js +2 -2
- package/dist/cores/config/config-service.js.map +1 -1
- package/dist/cores/dynamo/dynamo-query-service.js +4 -3
- package/dist/cores/dynamo/dynamo-query-service.js.map +1 -1
- package/dist/cores/dynamo/dynamo-scan-service.js +4 -3
- package/dist/cores/dynamo/dynamo-scan-service.js.map +1 -1
- package/dist/cores/dynamo/dynamo-service.d.ts +11 -11
- package/dist/cores/dynamo/dynamo-service.js +14 -21
- package/dist/cores/dynamo/dynamo-service.js.map +1 -1
- package/dist/cores/dynamo/tools/expressions.js.map +1 -0
- package/dist/cores/dynamo/tools/query.js.map +1 -0
- package/dist/cores/dynamo/tools/scan.js.map +1 -0
- package/dist/cores/dynamo/tools/serializer.js.map +1 -0
- package/dist/cores/dynamo/tools/utils.js.map +1 -0
- package/dist/cores/lambda/lambda-handler.d.ts +2 -2
- package/dist/cores/lambda/lambda-web-handler.js +2 -2
- package/dist/cores/lambda/lambda-web-handler.js.map +1 -1
- package/dist/cores/protocol/protocol-service.d.ts +5 -4
- package/dist/cores/protocol/protocol-service.js +13 -15
- package/dist/cores/protocol/protocol-service.js.map +1 -1
- package/dist/cores/storage/storage-service.js +2 -2
- package/dist/cores/storage/storage-service.js.map +1 -1
- package/dist/engine/builder.js +7 -10
- package/dist/engine/builder.js.map +1 -1
- package/dist/engine/engine.js +5 -5
- package/dist/engine/engine.js.map +1 -1
- package/dist/environ.d.ts +62 -3
- package/dist/environ.js +25 -95
- package/dist/environ.js.map +1 -1
- package/dist/extended/abstract-service.d.ts +6 -3
- package/dist/extended/abstract-service.js +9 -4
- package/dist/extended/abstract-service.js.map +1 -1
- package/dist/lib/dynamodb-value.d.ts +11 -0
- package/dist/lib/dynamodb-value.js +3 -7
- package/dist/lib/dynamodb-value.js.map +1 -1
- package/dist/lib/index.js +0 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/tools/express.d.ts +25 -3
- package/dist/tools/express.js +9 -311
- package/dist/tools/express.js.map +1 -1
- package/dist/tools/index.d.ts +1 -1
- package/dist/tools/index.js +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/shared.d.ts +8 -1
- package/dist/tools/shared.js +14 -23
- package/dist/tools/shared.js.map +1 -1
- package/dist/tools/tools.d.ts +15 -0
- package/dist/tools/tools.js +74 -0
- package/dist/tools/tools.js.map +1 -0
- package/package.json +19 -19
- package/dist/lib/dynamo/expressions.js.map +0 -1
- package/dist/lib/dynamo/query.js.map +0 -1
- package/dist/lib/dynamo/scan.js.map +0 -1
- package/dist/lib/dynamo/serializer.js.map +0 -1
- package/dist/lib/dynamo/utils.js.map +0 -1
- /package/dist/{lib/dynamo → cores/dynamo/tools}/expressions.d.ts +0 -0
- /package/dist/{lib/dynamo → cores/dynamo/tools}/expressions.js +0 -0
- /package/dist/{lib/dynamo → cores/dynamo/tools}/query.d.ts +0 -0
- /package/dist/{lib/dynamo → cores/dynamo/tools}/query.js +0 -0
- /package/dist/{lib/dynamo → cores/dynamo/tools}/scan.d.ts +0 -0
- /package/dist/{lib/dynamo → cores/dynamo/tools}/scan.js +0 -0
- /package/dist/{lib/dynamo → cores/dynamo/tools}/serializer.d.ts +0 -0
- /package/dist/{lib/dynamo → cores/dynamo/tools}/serializer.js +0 -0
- /package/dist/{lib/dynamo → cores/dynamo/tools}/utils.d.ts +0 -0
- /package/dist/{lib/dynamo → cores/dynamo/tools}/utils.js +0 -0
package/dist/tools/express.d.ts
CHANGED
|
@@ -20,13 +20,35 @@
|
|
|
20
20
|
* @date 2019-08-07 ignore `engine.dt` function.
|
|
21
21
|
* @date 2019-11-26 cleanup and optimized for `lemon-core#v2`
|
|
22
22
|
* @date 2020-01-23 improve context information via headers.
|
|
23
|
+
* @date 2025-05-20 cleanup `express` out of this module.
|
|
23
24
|
*
|
|
24
25
|
* @copyright (C) lemoncloud.io 2019 - All Rights Reserved.
|
|
25
26
|
*/
|
|
26
|
-
import { LemonEngine } from '../engine/';
|
|
27
|
+
import { LemonEngine } from '../engine/types';
|
|
27
28
|
import { LambdaWEBHandler } from '../cores/lambda/lambda-web-handler';
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
/**
|
|
30
|
+
* type: `ExpressFactory`
|
|
31
|
+
* - factory to create express server.
|
|
32
|
+
*/
|
|
33
|
+
export interface ExpressFactory {
|
|
34
|
+
($engine: LemonEngine, $web: LambdaWEBHandler, options?: {
|
|
35
|
+
argv?: string[];
|
|
36
|
+
prefix?: string;
|
|
37
|
+
genRequestId?: () => string;
|
|
38
|
+
}): ExpressFactoryResult;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* type: `ExpressFactoryResult`
|
|
42
|
+
* - result of factory.
|
|
43
|
+
*/
|
|
44
|
+
export interface ExpressFactoryResult {
|
|
45
|
+
/** function of `express()` from `npm/express` */
|
|
46
|
+
express: () => any;
|
|
47
|
+
/** instance of `express()` */
|
|
48
|
+
app: any;
|
|
49
|
+
/** create server listener */
|
|
50
|
+
createServer: (...args: any[]) => any;
|
|
51
|
+
}
|
|
30
52
|
export declare const buildExpress: ($engine: LemonEngine, $web: LambdaWEBHandler, options?: {
|
|
31
53
|
argv?: string[];
|
|
32
54
|
prefix?: string;
|
package/dist/tools/express.js
CHANGED
|
@@ -1,322 +1,20 @@
|
|
|
1
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 (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.buildExpress =
|
|
30
|
-
const shared_1 = require("./shared");
|
|
31
|
-
const aws_sdk_1 = __importDefault(require("aws-sdk"));
|
|
32
|
-
const express_1 = __importDefault(require("express"));
|
|
33
|
-
const cors_1 = __importDefault(require("cors"));
|
|
34
|
-
const body_parser_1 = __importDefault(require("body-parser"));
|
|
35
|
-
const cookie_parser_1 = __importDefault(require("cookie-parser"));
|
|
36
|
-
const multer_1 = __importDefault(require("multer"));
|
|
37
|
-
const http_1 = __importDefault(require("http"));
|
|
38
|
-
const fs_1 = __importDefault(require("fs"));
|
|
39
|
-
const requestIp = __importStar(require("request-ip"));
|
|
40
|
-
//* helper to catch header value w/o case-sensitive
|
|
41
|
-
const buildHeaderGetter = (headers) => (name) => {
|
|
42
|
-
name = `${name || ''}`.toLowerCase();
|
|
43
|
-
headers = headers || {};
|
|
44
|
-
return Object.keys(headers).reduce((found, key) => {
|
|
45
|
-
const val = headers[key];
|
|
46
|
-
key = `${key || ''}`.toLowerCase();
|
|
47
|
-
if (key == name)
|
|
48
|
-
return val;
|
|
49
|
-
return found;
|
|
50
|
-
}, '');
|
|
51
|
-
};
|
|
52
|
-
exports.buildHeaderGetter = buildHeaderGetter;
|
|
3
|
+
exports.buildExpress = void 0;
|
|
53
4
|
//* create Server Instance.
|
|
54
5
|
//NOTE - avoid external reference of type.
|
|
55
6
|
const buildExpress = ($engine, $web, options) => {
|
|
7
|
+
const errScope = `buildExpress()`;
|
|
56
8
|
if (!$engine)
|
|
57
|
-
throw new Error(
|
|
9
|
+
throw new Error(`$engine(LemonEngine) is required - ${errScope}`);
|
|
10
|
+
if (!$web)
|
|
11
|
+
throw new Error(`$web(LambdaWEBHandler) is required - ${errScope}`);
|
|
58
12
|
options = options || {};
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
** ****************************************************************************************************************/
|
|
62
|
-
//* re-use core modules.
|
|
63
|
-
const $U = $engine.U;
|
|
64
|
-
if (!$U)
|
|
65
|
-
throw new Error('$U(utilities) is required!');
|
|
66
|
-
//* load common(log) functions
|
|
67
|
-
const useEngineLog = !!1; //NOTE - turn off to print log in jest test.
|
|
68
|
-
const _log = useEngineLog ? $engine.log : console.log;
|
|
69
|
-
const _inf = useEngineLog ? $engine.inf : console.info;
|
|
70
|
-
const _err = useEngineLog ? $engine.err : console.error;
|
|
71
|
-
const NS = $U.NS('EXPR', 'cyan');
|
|
72
|
-
const $pack = (0, shared_1.loadJsonSync)('package.json');
|
|
73
|
-
const argv = options.argv || process.argv || [];
|
|
74
|
-
const NAME = $pack.name || 'LEMON API';
|
|
75
|
-
const VERS = $pack.version || '0.0.0';
|
|
76
|
-
const PORT = (0, shared_1.getRunParam)('-port', $U.N($pack.port, 8081), argv); // default server port.
|
|
77
|
-
const IS_WSC = (0, shared_1.getRunParam)('-wsc', false, argv); // default server port.
|
|
78
|
-
_inf(NS, `###### express[${NAME}@${$U.NS(VERS, 'cyan')}] ######`);
|
|
79
|
-
IS_WSC && _inf(NS, `! IS_WSC=`, IS_WSC);
|
|
80
|
-
//* dynamic loading credentials by profile. (search PROFILE -> NAME)
|
|
81
|
-
(() => {
|
|
82
|
-
//NOTE! - DO NOT CHANGE CONFIG IN LAMBDA ENV (USE ROLE CONFIG).
|
|
83
|
-
const ALFN = $engine.environ('AWS_LAMBDA_FUNCTION_NAME', '');
|
|
84
|
-
if (ALFN)
|
|
85
|
-
return;
|
|
86
|
-
//NOTE! - OR, TRY TO LOAD CREDENTIALS BY PROFILE NAME.
|
|
87
|
-
const NAME = $engine.environ('NAME', '');
|
|
88
|
-
const profile = $engine.environ('PROFILE', NAME);
|
|
89
|
-
const credentials = new aws_sdk_1.default.SharedIniFileCredentials({ profile });
|
|
90
|
-
if (profile)
|
|
91
|
-
aws_sdk_1.default.config.credentials = credentials;
|
|
92
|
-
})();
|
|
93
|
-
/** ****************************************************************************************************************
|
|
94
|
-
* Initialize Express
|
|
95
|
-
** ****************************************************************************************************************/
|
|
96
|
-
//* create express app.
|
|
97
|
-
const app = (0, express_1.default)();
|
|
98
|
-
const uploader = (0, multer_1.default)({ dest: '../tmp/' });
|
|
99
|
-
const genRequestId = options.genRequestId ||
|
|
100
|
-
(() => {
|
|
101
|
-
const msec = new Date().getMilliseconds() % 1000;
|
|
102
|
-
return `${$U.ts()}.${msec < 10 ? '00' : msec < 100 ? '0' : ''}${msec}`;
|
|
103
|
-
});
|
|
104
|
-
app.use((0, cors_1.default)());
|
|
105
|
-
app.use(body_parser_1.default.json({ limit: '10mb' })); // default limit 10mb
|
|
106
|
-
app.use(body_parser_1.default.urlencoded({ extended: true }));
|
|
107
|
-
app.use((0, cookie_parser_1.default)());
|
|
108
|
-
//* middle ware
|
|
109
|
-
const middle = (req, res, next) => {
|
|
110
|
-
// _log(NS, `! req =`, req);
|
|
111
|
-
// _log(NS, `! header =`, req.headers);
|
|
112
|
-
const getHeader = (0, exports.buildHeaderGetter)(req.headers || {});
|
|
113
|
-
const host = getHeader('host').split(':')[0];
|
|
114
|
-
const accountId = $engine.environ('USER', $engine.environ('LOGNAME', ''));
|
|
115
|
-
const requestId = genRequestId();
|
|
116
|
-
const clientIp = typeof req.clientIp == 'string' ? req.clientIp : ''; //NOTE! - use `request-ip`
|
|
117
|
-
const sourceIp = clientIp || `${requestIp.getClientIp(req) || ''}`;
|
|
118
|
-
const userAgent = getHeader('user-agent');
|
|
119
|
-
//* prepare event compartible with API-Gateway Event.
|
|
120
|
-
const event = {
|
|
121
|
-
path: req.path,
|
|
122
|
-
queryStringParameters: req.query || {},
|
|
123
|
-
pathParameters: req.params,
|
|
124
|
-
httpMethod: req.method,
|
|
125
|
-
connection: 1 ? null : req.connection,
|
|
126
|
-
url: req.url,
|
|
127
|
-
headers: req.headers,
|
|
128
|
-
body: req.body,
|
|
129
|
-
requestContext: {
|
|
130
|
-
source: 'express',
|
|
131
|
-
domainName: host,
|
|
132
|
-
accountId,
|
|
133
|
-
requestId,
|
|
134
|
-
stage: $engine.environ('STAGE', ''),
|
|
135
|
-
identity: {
|
|
136
|
-
sourceIp,
|
|
137
|
-
userAgent,
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
};
|
|
141
|
-
_log(NS, `! req-ctx =`, $U.json(event.requestContext));
|
|
142
|
-
//* prepare internal-context
|
|
143
|
-
const context = { source: 'express', domain: host };
|
|
144
|
-
//* catch cookie
|
|
145
|
-
if (req.headers) {
|
|
146
|
-
Object.keys(req.headers).forEach(_key => {
|
|
147
|
-
const val = req.headers[_key];
|
|
148
|
-
const key = `${_key}`.toLowerCase();
|
|
149
|
-
if (key == 'cookie') {
|
|
150
|
-
const parseCookies = (str) => {
|
|
151
|
-
const rx = /([^;=\s]*)=([^;]*)/g;
|
|
152
|
-
const obj = {};
|
|
153
|
-
for (let m; (m = rx.exec(str));)
|
|
154
|
-
obj[m[1]] = decodeURIComponent(m[2]);
|
|
155
|
-
return obj;
|
|
156
|
-
};
|
|
157
|
-
context.cookie = parseCookies(`${Array.isArray(val) ? val.join('; ') : val || ''}`.trim());
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
if (req.cookies && typeof req.cookies == 'object') {
|
|
162
|
-
context.cookie = Object.keys(req.cookies).reduce((M, key) => {
|
|
163
|
-
const val = req.cookies[key];
|
|
164
|
-
M[key] = `${val || ''}`.trim();
|
|
165
|
-
return M;
|
|
166
|
-
}, Object.assign({}, context.cookie));
|
|
167
|
-
}
|
|
168
|
-
const callback = (err, data) => {
|
|
169
|
-
err && _err(NS, '! err@callback =', err);
|
|
170
|
-
data && _inf(NS, `! res@callback[${(data && data.statusCode) || 0}] =`, $U.S(data && data.body, 1024));
|
|
171
|
-
let contentType = null;
|
|
172
|
-
if (data.headers) {
|
|
173
|
-
Object.keys(data.headers).map(k => {
|
|
174
|
-
if (`${k}`.toLowerCase() == 'content-type') {
|
|
175
|
-
contentType = data.headers[k];
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
res.setHeader(k, data.headers[k]);
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
const statusCode = (data && data.statusCode) || (err ? 503 : 200);
|
|
183
|
-
res.setHeader('Content-Type', contentType || 'application/json');
|
|
184
|
-
res.status(statusCode).send(data.body);
|
|
185
|
-
};
|
|
186
|
-
//* attach to req.
|
|
187
|
-
req.$event = event;
|
|
188
|
-
req.$context = context; //* save the
|
|
189
|
-
req.$callback = callback;
|
|
190
|
-
//* use json parser or multer.
|
|
191
|
-
const method = req.method || '';
|
|
192
|
-
const ctype = getHeader('content-type');
|
|
193
|
-
_log(NS, `! ${method} ${req.url} =`, ctype);
|
|
194
|
-
if (ctype.indexOf('multipart/') >= 0) {
|
|
195
|
-
const parser = uploader.single('file');
|
|
196
|
-
parser(req, res, () => {
|
|
197
|
-
// _inf(NS, '> body =', req.body);
|
|
198
|
-
event.body = req.body || {};
|
|
199
|
-
event.body.file = req.file;
|
|
200
|
-
next();
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
else if (method === 'POST' || method === 'PUT') {
|
|
204
|
-
const parser = body_parser_1.default.json({ limit: '10mb' });
|
|
205
|
-
parser(req, res, () => {
|
|
206
|
-
// _inf(NS, '> body =', req.body);
|
|
207
|
-
event.body = req.body;
|
|
208
|
-
next();
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
next();
|
|
213
|
-
}
|
|
214
|
-
};
|
|
215
|
-
/** ********************************************************************************************************************
|
|
216
|
-
* ROUTE SETTING
|
|
217
|
-
** *******************************************************************************************************************/
|
|
218
|
-
//* default app.
|
|
219
|
-
app.get('', (req, res) => {
|
|
220
|
-
//WARN! - must be matched with the `LambdaWEBHandler.handleProtocol()`.
|
|
221
|
-
const $env = (process && process.env) || {};
|
|
222
|
-
// const $pack = JSON.parse(fs.readFileSync('package.json', { encoding: 'utf8' }).toString());
|
|
223
|
-
// _log(NS, `stat =`, $stat);
|
|
224
|
-
// _log(NS, `pack =`, $pack);
|
|
225
|
-
const $stat = fs_1.default.statSync('package.json');
|
|
226
|
-
const modified = $U.ts($U.F($stat.ctimeMs, 0));
|
|
227
|
-
const name = $pack.name || 'LEMON API';
|
|
228
|
-
const version = $pack.version || '0.0.0';
|
|
229
|
-
const core = $pack && $pack.dependencies && $pack.dependencies['lemon-core'];
|
|
230
|
-
const msgs = [
|
|
231
|
-
`${name}/${version}`,
|
|
232
|
-
`lemon-core/${core || ''}`,
|
|
233
|
-
`modified/${modified}`,
|
|
234
|
-
`env/ENV=${$env.ENV || ''} NAME=${$env.NAME || ''} STAGE=${$env.STAGE || ''}`,
|
|
235
|
-
`env/REPORT_ERROR_ARN=${$env.REPORT_ERROR_ARN || ''}`,
|
|
236
|
-
];
|
|
237
|
-
res.status(200).send(msgs.join('\n'));
|
|
238
|
-
});
|
|
239
|
-
//* handler map.
|
|
240
|
-
if (true) {
|
|
241
|
-
//* route prefix
|
|
242
|
-
const ROUTE_PREFIX = `${(options && options.prefix) || ''}`;
|
|
243
|
-
//* handle request to handler.
|
|
244
|
-
const next_middle = (type) => (req) => {
|
|
245
|
-
const callback = req.$callback;
|
|
246
|
-
req.$event.pathParameters = Object.assign({ type }, req.$event.pathParameters); // make sure `type`
|
|
247
|
-
return $web
|
|
248
|
-
.packContext(req.$event, req.$context)
|
|
249
|
-
.then(context => $web.handle(req.$event, context))
|
|
250
|
-
.then(_ => callback && callback(null, _))
|
|
251
|
-
.catch(e => {
|
|
252
|
-
_err(NS, '! exp.err =', e);
|
|
253
|
-
callback && callback(e);
|
|
254
|
-
});
|
|
255
|
-
};
|
|
256
|
-
//* register automatically endpont.
|
|
257
|
-
const RESERVES = 'id,log,inf,err,extend,ts,dt,environ'.split(',');
|
|
258
|
-
// support single char path.
|
|
259
|
-
const isValidName = (name) => /^[a-z][a-z0-9\-_]*$/.test(name) && RESERVES.indexOf(name) < 0;
|
|
260
|
-
const $map = $web.getHandlerDecoders();
|
|
261
|
-
const keys = Object.keys($map);
|
|
262
|
-
// _inf(NS, '! express.keys =', keys);
|
|
263
|
-
const handlers = keys
|
|
264
|
-
.filter(isValidName)
|
|
265
|
-
.map(name => {
|
|
266
|
-
//* check if valid name && function.
|
|
267
|
-
const main = $map[name];
|
|
268
|
-
const type = `${name}`.split('_').join('-'); // change '_' to '-'.
|
|
269
|
-
if (typeof main !== 'function')
|
|
270
|
-
throw new Error(`.${name} should be function handler. but type=` + typeof main);
|
|
271
|
-
//* route pattern with `/<type>/<id>/<cmd?>`
|
|
272
|
-
app.get(`/${ROUTE_PREFIX}${type}`, middle, next_middle(type));
|
|
273
|
-
app.get(`/${ROUTE_PREFIX}${type}/:id`, middle, next_middle(type));
|
|
274
|
-
app.get(`/${ROUTE_PREFIX}${type}/:id/:cmd`, middle, next_middle(type));
|
|
275
|
-
app.put(`/${ROUTE_PREFIX}${type}/:id`, middle, next_middle(type));
|
|
276
|
-
app.put(`/${ROUTE_PREFIX}${type}/:id/:cmd`, middle, next_middle(type));
|
|
277
|
-
app.patch(`/${ROUTE_PREFIX}${type}/:id`, middle, next_middle(type));
|
|
278
|
-
app.patch(`/${ROUTE_PREFIX}${type}/:id/:cmd`, middle, next_middle(type));
|
|
279
|
-
app.post(`/${ROUTE_PREFIX}${type}/:id`, middle, next_middle(type));
|
|
280
|
-
app.post(`/${ROUTE_PREFIX}${type}/:id/:cmd`, middle, next_middle(type));
|
|
281
|
-
app.delete(`/${ROUTE_PREFIX}${type}/:id`, middle, next_middle(type));
|
|
282
|
-
app.delete(`/${ROUTE_PREFIX}${type}/:id/:cmd`, middle, next_middle(type));
|
|
283
|
-
const _NS = (name, color) => $U.NS(name, color, 4, '');
|
|
284
|
-
_inf(NS, `! api[${_NS(name, 'yellow')}] is routed as ${_NS(`/${ROUTE_PREFIX}${type}`, 'cyan')}`);
|
|
285
|
-
return { name, type, main };
|
|
286
|
-
})
|
|
287
|
-
.reduce((M, N) => {
|
|
288
|
-
M[N.name] = N;
|
|
289
|
-
return M;
|
|
290
|
-
}, {});
|
|
291
|
-
// _inf(NS, '! express.handlers =', Object.keys(handlers).join(', '));
|
|
292
|
-
_inf(NS, '! express.handlers.len =', Object.keys(handlers).length);
|
|
293
|
-
}
|
|
294
|
-
//* create server by port.
|
|
295
|
-
const createServer = () => {
|
|
296
|
-
//* logging options.
|
|
297
|
-
const NS = $U.NS('main', 'cyan');
|
|
298
|
-
const $pack = (0, shared_1.loadJsonSync)('package.json');
|
|
299
|
-
const name = $pack.name || 'LEMON API';
|
|
300
|
-
const version = $pack.version || '0.0.0';
|
|
301
|
-
const server = http_1.default
|
|
302
|
-
.createServer(app)
|
|
303
|
-
.listen(PORT, () => {
|
|
304
|
-
_inf(NS, `###### express[${name}@${$U.NS(version, 'cyan')}] ######`);
|
|
305
|
-
})
|
|
306
|
-
.on('listening', () => {
|
|
307
|
-
const addr = server.address();
|
|
308
|
-
const port = $U.NS(`${addr && addr.port}`, 'yellow').split(':')[0];
|
|
309
|
-
_log(NS, `Server[${process.env.NAME}:${process.env.STAGE}] is listening on Port:${port}`);
|
|
310
|
-
//TODO - improve way to initialize $engine.
|
|
311
|
-
$engine.initialize();
|
|
312
|
-
})
|
|
313
|
-
.on('error', (e) => {
|
|
314
|
-
_inf(NS, '!ERR - listen.err = ', e);
|
|
315
|
-
});
|
|
316
|
-
return server;
|
|
13
|
+
const _factory = (options) => {
|
|
14
|
+
return null;
|
|
317
15
|
};
|
|
318
|
-
|
|
319
|
-
return
|
|
16
|
+
const $factory = _factory(options);
|
|
17
|
+
return $factory($engine, $web, options);
|
|
320
18
|
};
|
|
321
19
|
exports.buildExpress = buildExpress;
|
|
322
20
|
//# sourceMappingURL=express.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express.js","sourceRoot":"","sources":["../../src/tools/express.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"express.js","sourceRoot":"","sources":["../../src/tools/express.ts"],"names":[],"mappings":";;;AAsDA,2BAA2B;AAC3B,0CAA0C;AACnC,MAAM,YAAY,GAAG,CACxB,OAAoB,EACpB,IAAsB,EACtB,OAA2E,EAClB,EAAE;IAC3D,MAAM,QAAQ,GAAG,gBAAgB,CAAC;IAClC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,EAAE,CAAC,CAAC;IAChF,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;IAC/E,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAExB,MAAM,QAAQ,GAAG,CAAC,OAAY,EAAkB,EAAE;QAC9C,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC,CAAC;AAfW,QAAA,YAAY,gBAevB"}
|
package/dist/tools/index.d.ts
CHANGED
package/dist/tools/index.js
CHANGED
|
@@ -26,5 +26,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
* @copyright (C) lemoncloud.io 2019 - All Rights Reserved.
|
|
27
27
|
*/
|
|
28
28
|
__exportStar(require("./express"), exports);
|
|
29
|
-
__exportStar(require("./
|
|
29
|
+
__exportStar(require("./tools"), exports);
|
|
30
30
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;;;GAUG;AACH,4CAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;;;GAUG;AACH,4CAA0B;AAC1B,0CAAwB"}
|
package/dist/tools/shared.d.ts
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
|
+
import { AwsCredentialIdentity } from '@aws-sdk/types';
|
|
1
2
|
/**
|
|
2
3
|
* load json in sync.
|
|
3
4
|
*/
|
|
4
5
|
export declare const loadJsonSync: <T extends object = any>(name: string, def?: {}) => T;
|
|
5
6
|
/**
|
|
6
7
|
* dynamic loading credentials by profile. (search PROFILE -> NAME)
|
|
8
|
+
*
|
|
9
|
+
* TODO -define the return type exactly.
|
|
10
|
+
*
|
|
11
|
+
* @returns {Promise<any>} - AWS credentials
|
|
7
12
|
*/
|
|
8
|
-
export declare const asyncCredentials: (profile: string) => Promise<
|
|
13
|
+
export declare const asyncCredentials: (profile: string) => Promise<AwsCredentialIdentity>;
|
|
9
14
|
/**
|
|
10
15
|
* dynamic loading credentials by profile. (search PROFILE -> NAME)
|
|
16
|
+
*
|
|
17
|
+
* @deprecated use `asyncCredentials` instead.
|
|
11
18
|
*/
|
|
12
19
|
export declare const credentials: (profile: string) => string;
|
|
13
20
|
/**
|
package/dist/tools/shared.js
CHANGED
|
@@ -32,7 +32,7 @@ exports.getRunParam = exports.loadDataYml = exports.hasCredentials = exports.cre
|
|
|
32
32
|
*/
|
|
33
33
|
const fs_1 = __importDefault(require("fs"));
|
|
34
34
|
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
35
|
-
const
|
|
35
|
+
const credential_providers_1 = require("@aws-sdk/credential-providers");
|
|
36
36
|
/**
|
|
37
37
|
* load json in sync.
|
|
38
38
|
*/
|
|
@@ -51,39 +51,30 @@ const loadJsonSync = (name, def = {}) => {
|
|
|
51
51
|
exports.loadJsonSync = loadJsonSync;
|
|
52
52
|
/**
|
|
53
53
|
* dynamic loading credentials by profile. (search PROFILE -> NAME)
|
|
54
|
+
*
|
|
55
|
+
* TODO -define the return type exactly.
|
|
56
|
+
*
|
|
57
|
+
* @returns {Promise<any>} - AWS credentials
|
|
54
58
|
*/
|
|
55
59
|
const asyncCredentials = (profile) => __awaiter(void 0, void 0, void 0, function* () {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const callback = (e, r) => {
|
|
59
|
-
// e || console.error('! credentials.res :=', r);
|
|
60
|
-
// e && console.error('! credentials.err :=', e);
|
|
61
|
-
if (e)
|
|
62
|
-
reject(e);
|
|
63
|
-
else
|
|
64
|
-
resolve(r || credentials);
|
|
65
|
-
};
|
|
66
|
-
try {
|
|
67
|
-
//WARN! - could not catch AWS.Error `Profile null not found` via callback.
|
|
68
|
-
credentials = new aws_sdk_1.default.SharedIniFileCredentials({ profile, callback });
|
|
69
|
-
aws_sdk_1.default.config.credentials = credentials;
|
|
70
|
-
}
|
|
71
|
-
catch (e) {
|
|
72
|
-
callback(e);
|
|
73
|
-
}
|
|
74
|
-
});
|
|
60
|
+
const provider = (0, credential_providers_1.fromIni)({ profile });
|
|
61
|
+
return provider();
|
|
75
62
|
});
|
|
76
63
|
exports.asyncCredentials = asyncCredentials;
|
|
77
64
|
/**
|
|
78
65
|
* dynamic loading credentials by profile. (search PROFILE -> NAME)
|
|
66
|
+
*
|
|
67
|
+
* @deprecated use `asyncCredentials` instead.
|
|
79
68
|
*/
|
|
80
69
|
const credentials = (profile) => {
|
|
81
70
|
if (!profile)
|
|
82
71
|
return '';
|
|
72
|
+
throw new Error('credentials is deprecated. use `asyncCredentials` instead.');
|
|
83
73
|
// console.info('! credentials.profile =', profile);
|
|
84
74
|
// WARN! - could not catch AWS.Error `Profile null not found` via callback.
|
|
85
|
-
const credentials = new
|
|
86
|
-
|
|
75
|
+
const credentials = new AWS.SharedIniFileCredentials({ profile });
|
|
76
|
+
//TODO - override the global config.
|
|
77
|
+
AWS.config.credentials = credentials;
|
|
87
78
|
return `${profile}`;
|
|
88
79
|
};
|
|
89
80
|
exports.credentials = credentials;
|
|
@@ -91,7 +82,7 @@ exports.credentials = credentials;
|
|
|
91
82
|
* return whether AWS credentials set
|
|
92
83
|
*/
|
|
93
84
|
const hasCredentials = () => {
|
|
94
|
-
return !!
|
|
85
|
+
return !!AWS.config.credentials;
|
|
95
86
|
};
|
|
96
87
|
exports.hasCredentials = hasCredentials;
|
|
97
88
|
/**
|
package/dist/tools/shared.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/tools/shared.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,4CAAoB;AACpB,sDAA2B;AAC3B,
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/tools/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CrendentialForAWS } from '../environ';
|
|
2
|
+
/**
|
|
3
|
+
* load json in sync.
|
|
4
|
+
*/
|
|
5
|
+
export declare const loadJsonSync: <T extends object = any>(name: string, def?: {}) => T;
|
|
6
|
+
/**
|
|
7
|
+
* load yml data via './data/<file>.yml'
|
|
8
|
+
*/
|
|
9
|
+
export declare const loadDataYml: <T extends object = any>(file: string, folder?: string) => T;
|
|
10
|
+
/**
|
|
11
|
+
* dynamic loading credentials by profile. (search PROFILE -> NAME)
|
|
12
|
+
*
|
|
13
|
+
* @returns {Promise<any>} - AWS credentials
|
|
14
|
+
*/
|
|
15
|
+
export declare const asyncCredentials: (profile: string) => Promise<CrendentialForAWS>;
|
|
@@ -0,0 +1,74 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.asyncCredentials = exports.loadDataYml = exports.loadJsonSync = void 0;
|
|
16
|
+
/**
|
|
17
|
+
* `tools/tools.ts`
|
|
18
|
+
* - additional helper.
|
|
19
|
+
*
|
|
20
|
+
* ex:
|
|
21
|
+
* ```ts
|
|
22
|
+
* const environ = require('lemon-core/dist/environ').default;
|
|
23
|
+
* const $env = environ(process)
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @author Steve Jung <steve@lemoncloud.io>
|
|
27
|
+
* @date 2019-08-09 initial typescript version.
|
|
28
|
+
* @date 2018-05-23 initial version
|
|
29
|
+
* @date 2019-11-26 cleanup and optimized for `lemon-core#v2`
|
|
30
|
+
*
|
|
31
|
+
* @copyright (C) 2019 LemonCloud Co Ltd. - All Rights Reserved.
|
|
32
|
+
*/
|
|
33
|
+
const fs_1 = __importDefault(require("fs"));
|
|
34
|
+
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
35
|
+
const credential_providers_1 = require("@aws-sdk/credential-providers");
|
|
36
|
+
/**
|
|
37
|
+
* load json in sync.
|
|
38
|
+
*/
|
|
39
|
+
const loadJsonSync = (name, def = {}) => {
|
|
40
|
+
name = !name.startsWith('./') ? `./${name}` : name;
|
|
41
|
+
try {
|
|
42
|
+
const rawdata = fs_1.default.readFileSync(name);
|
|
43
|
+
return JSON.parse(rawdata.toString());
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
if (def && typeof def === 'object')
|
|
47
|
+
def.error = `${e.message || e}`;
|
|
48
|
+
return def;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
exports.loadJsonSync = loadJsonSync;
|
|
52
|
+
/**
|
|
53
|
+
* load yml data via './data/<file>.yml'
|
|
54
|
+
*/
|
|
55
|
+
const loadDataYml = (file, folder) => {
|
|
56
|
+
folder = folder || 'data';
|
|
57
|
+
const path = `./${folder}/` + file + (file.endsWith('.yml') ? '' : '.yml');
|
|
58
|
+
if (!fs_1.default.existsSync(path))
|
|
59
|
+
throw new Error('404 NOT FOUND - data-file:' + path);
|
|
60
|
+
return js_yaml_1.default.load(fs_1.default.readFileSync(path, 'utf8'));
|
|
61
|
+
};
|
|
62
|
+
exports.loadDataYml = loadDataYml;
|
|
63
|
+
/**
|
|
64
|
+
* dynamic loading credentials by profile. (search PROFILE -> NAME)
|
|
65
|
+
*
|
|
66
|
+
* @returns {Promise<any>} - AWS credentials
|
|
67
|
+
*/
|
|
68
|
+
const asyncCredentials = (profile) => __awaiter(void 0, void 0, void 0, function* () {
|
|
69
|
+
const provider = (0, credential_providers_1.fromIni)({ profile });
|
|
70
|
+
const $res = yield provider();
|
|
71
|
+
return Object.assign(Object.assign({}, $res), { profile });
|
|
72
|
+
});
|
|
73
|
+
exports.asyncCredentials = asyncCredentials;
|
|
74
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tools/tools.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,4CAAoB;AACpB,sDAA2B;AAC3B,wEAAwD;AAGxD;;GAEG;AACI,MAAM,YAAY,GAAG,CAAyB,IAAY,EAAE,GAAG,GAAG,EAAE,EAAK,EAAE;IAC9E,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,IAAI;QACA,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAM,CAAC;KAC9C;IAAC,OAAO,CAAC,EAAE;QACR,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAG,GAAW,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;QAC7E,OAAO,GAAQ,CAAC;KACnB;AACL,CAAC,CAAC;AATW,QAAA,YAAY,gBASvB;AAEF;;GAEG;AACI,MAAM,WAAW,GAAG,CAAyB,IAAY,EAAE,MAAe,EAAK,EAAE;IACpF,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC;IAC1B,MAAM,IAAI,GAAG,KAAK,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC3E,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAAC;IAC/E,OAAO,iBAAI,CAAC,IAAI,CAAC,YAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC;AALW,QAAA,WAAW,eAKtB;AAEF;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,CAAO,OAAe,EAA8B,EAAE;IAClF,MAAM,QAAQ,GAAG,IAAA,8BAAO,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC9B,uCAAY,IAAI,KAAE,OAAO,IAAG;AAChC,CAAC,CAAA,CAAC;AAJW,QAAA,gBAAgB,oBAI3B"}
|