lemon-core 4.0.2 → 4.0.4
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 -0
- package/dist/cores/aws/aws-kms-service.js +3 -4
- package/dist/cores/aws/aws-kms-service.js.map +1 -1
- package/dist/cores/aws/aws-s3-service.js +3 -3
- package/dist/cores/aws/aws-s3-service.js.map +1 -1
- package/dist/cores/aws/aws-sns-service.d.ts +14 -1
- package/dist/cores/aws/aws-sns-service.js +12 -9
- package/dist/cores/aws/aws-sns-service.js.map +1 -1
- package/dist/cores/aws/aws-sqs-service.d.ts +1 -1
- package/dist/cores/aws/aws-sqs-service.js +15 -9
- package/dist/cores/aws/aws-sqs-service.js.map +1 -1
- package/dist/cores/core-services.d.ts +1 -1
- package/dist/cores/dynamo/dynamo-query-service.js +1 -1
- package/dist/cores/dynamo/dynamo-query-service.js.map +1 -1
- package/dist/cores/dynamo/dynamo-scan-service.js +1 -1
- package/dist/cores/dynamo/dynamo-scan-service.js.map +1 -1
- package/dist/cores/dynamo/dynamo-service.d.ts +1 -1
- package/dist/cores/dynamo/dynamo-service.js +45 -14
- package/dist/cores/dynamo/dynamo-service.js.map +1 -1
- package/dist/cores/lambda/lambda-handler.d.ts +5 -0
- package/dist/cores/lambda/lambda-handler.js +13 -0
- package/dist/cores/lambda/lambda-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-web-handler.d.ts +10 -2
- package/dist/cores/lambda/lambda-web-handler.js +4 -14
- package/dist/cores/lambda/lambda-web-handler.js.map +1 -1
- package/dist/cores/protocol/protocol-service.d.ts +2 -1
- package/dist/cores/protocol/protocol-service.js +74 -25
- package/dist/cores/protocol/protocol-service.js.map +1 -1
- package/dist/engine/utilities.d.ts +4 -0
- package/dist/engine/utilities.js +34 -8
- package/dist/engine/utilities.js.map +1 -1
- package/dist/environ.d.ts +9 -30
- package/dist/environ.js +54 -18
- package/dist/environ.js.map +1 -1
- package/dist/extended/abstract-service.d.ts +3 -12
- package/dist/extended/abstract-service.js +1 -28
- package/dist/extended/abstract-service.js.map +1 -1
- package/dist/helpers/helpers.js +2 -7
- package/dist/helpers/helpers.js.map +1 -1
- package/dist/tools/express.d.ts +18 -32
- package/dist/tools/express.js +56 -7
- package/dist/tools/express.js.map +1 -1
- package/dist/tools/shared.d.ts +1 -10
- package/dist/tools/shared.js +26 -13
- package/dist/tools/shared.js.map +1 -1
- package/dist/tools/tools.d.ts +39 -2
- package/dist/tools/tools.js +62 -2
- package/dist/tools/tools.js.map +1 -1
- package/package.json +3 -2
package/dist/tools/express.js
CHANGED
|
@@ -1,20 +1,69 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildExpress = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Express Server Application.
|
|
6
|
+
* - standalone http service with express.
|
|
7
|
+
*
|
|
8
|
+
*
|
|
9
|
+
* ```bash
|
|
10
|
+
* #run-server (use lemon.yml:local)
|
|
11
|
+
* $ npm install -g nodemon
|
|
12
|
+
* $ ENV=lemon STAGE=local nodemon express.js
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* [TODO]
|
|
16
|
+
* - [ ] 190801 proper content type `text/plain`
|
|
17
|
+
* - [x] 190801 change router underscore char like `loopers_front` -> `loopers-front`
|
|
18
|
+
*
|
|
19
|
+
*
|
|
20
|
+
* @author Steve Jung <steve@lemoncloud.io>
|
|
21
|
+
* @date 2019-07-31 support ECMA 2016.
|
|
22
|
+
* @date 2019-08-01a auto register api with pattern. `/^[a-z][a-z0-9\-_]+$/`
|
|
23
|
+
* @date 2019-08-07 ignore `engine.dt` function.
|
|
24
|
+
* @date 2019-11-26 cleanup and optimized for `lemon-core#v2`
|
|
25
|
+
* @date 2020-01-23 improve context information via headers.
|
|
26
|
+
* @date 2025-05-20 cleanup `express` out of this module.
|
|
27
|
+
*
|
|
28
|
+
* @copyright (C) lemoncloud.io 2019 - All Rights Reserved.
|
|
29
|
+
*/
|
|
30
|
+
const test_helper_1 = require("../common/test-helper");
|
|
31
|
+
/**
|
|
32
|
+
* create Server Instance.
|
|
33
|
+
*
|
|
34
|
+
* @param $engine - LemonEngine by `buildEngine()`
|
|
35
|
+
* @param $web - LambdaWEBHandler in `$cores`
|
|
36
|
+
*/
|
|
6
37
|
const buildExpress = ($engine, $web, options) => {
|
|
7
38
|
const errScope = `buildExpress()`;
|
|
39
|
+
// STEP.0 validate parameters.
|
|
8
40
|
if (!$engine)
|
|
9
41
|
throw new Error(`$engine(LemonEngine) is required - ${errScope}`);
|
|
10
42
|
if (!$web)
|
|
11
43
|
throw new Error(`$web(LambdaWEBHandler) is required - ${errScope}`);
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
|
|
44
|
+
// STEP.1 check the `lemon-devkit` module.
|
|
45
|
+
const _load = (mod) => {
|
|
46
|
+
var _a, _b;
|
|
47
|
+
if (options === null || options === void 0 ? void 0 : options.loadModule)
|
|
48
|
+
return options.loadModule(mod);
|
|
49
|
+
try {
|
|
50
|
+
return require(mod);
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
(_a = $engine === null || $engine === void 0 ? void 0 : $engine.err) === null || _a === void 0 ? void 0 : _a.call($engine, `! err =`, e);
|
|
54
|
+
const error = `${(_b = e === null || e === void 0 ? void 0 : e.message) !== null && _b !== void 0 ? _b : (0, test_helper_1.GETERR)(e)}`.toLowerCase();
|
|
55
|
+
if (error.includes('cannot find module'))
|
|
56
|
+
return null;
|
|
57
|
+
throw e;
|
|
58
|
+
}
|
|
15
59
|
};
|
|
16
|
-
const
|
|
17
|
-
|
|
60
|
+
const devkit = _load('lemon-devkit');
|
|
61
|
+
if (!devkit)
|
|
62
|
+
throw new Error(`lemon-devkit(module) is required (npm i -D lemon-devkit) - ${errScope}`);
|
|
63
|
+
const _factory = devkit === null || devkit === void 0 ? void 0 : devkit.buildExpress;
|
|
64
|
+
if (!_factory)
|
|
65
|
+
throw new Error(`@buildExpress (function) is required (invalid devkit) - ${errScope}`);
|
|
66
|
+
return _factory($engine, $web, options);
|
|
18
67
|
};
|
|
19
68
|
exports.buildExpress = buildExpress;
|
|
20
69
|
//# sourceMappingURL=express.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express.js","sourceRoot":"","sources":["../../src/tools/express.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"express.js","sourceRoot":"","sources":["../../src/tools/express.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,uDAA+C;AA4C/C;;;;;GAKG;AACI,MAAM,YAAY,GAAG,CACxB,OAAoB,EACpB,IAAsB,EACtB,OAA6B,EACT,EAAE;IACtB,MAAM,QAAQ,GAAG,gBAAgB,CAAC;IAClC,8BAA8B;IAC9B,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;IAE/E,0CAA0C;IAC1C,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE;;QAC1B,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU;YAAE,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAExD,IAAI;YACA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;SACvB;QAAC,OAAO,CAAC,EAAE;YACR,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,wDAAG,SAAS,EAAE,CAAC,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,GAAG,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,mCAAI,IAAA,oBAAM,EAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;YACzD,IAAI,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBAAE,OAAO,IAAI,CAAC;YACtD,MAAM,CAAC,CAAC;SACX;IACL,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,QAAQ,EAAE,CAAC,CAAC;IAEvG,MAAM,QAAQ,GAAmB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC;IACtD,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,QAAQ,EAAE,CAAC,CAAC;IACtG,OAAO,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC,CAAC;AA7BW,QAAA,YAAY,gBA6BvB"}
|
package/dist/tools/shared.d.ts
CHANGED
|
@@ -1,26 +1,17 @@
|
|
|
1
|
-
import { AwsCredentialIdentity } from '@aws-sdk/types';
|
|
2
1
|
/**
|
|
3
2
|
* load json in sync.
|
|
4
3
|
*/
|
|
5
4
|
export declare const loadJsonSync: <T extends object = any>(name: string, def?: {}) => T;
|
|
6
5
|
/**
|
|
7
6
|
* dynamic loading credentials by profile. (search PROFILE -> NAME)
|
|
8
|
-
*
|
|
9
|
-
* TODO -define the return type exactly.
|
|
10
|
-
*
|
|
11
|
-
* @returns {Promise<any>} - AWS credentials
|
|
12
7
|
*/
|
|
13
|
-
export declare const asyncCredentials: (profile: string) => Promise<
|
|
8
|
+
export declare const asyncCredentials: (profile: string) => Promise<unknown>;
|
|
14
9
|
/**
|
|
15
10
|
* dynamic loading credentials by profile. (search PROFILE -> NAME)
|
|
16
|
-
*
|
|
17
|
-
* @deprecated use `asyncCredentials` instead.
|
|
18
11
|
*/
|
|
19
12
|
export declare const credentials: (profile: string) => string;
|
|
20
13
|
/**
|
|
21
14
|
* return whether AWS credentials set
|
|
22
|
-
*
|
|
23
|
-
* @deprecated use `asyncCredentials` instead.
|
|
24
15
|
*/
|
|
25
16
|
export declare const hasCredentials: () => boolean;
|
|
26
17
|
/**
|
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 aws_sdk_1 = __importDefault(require("aws-sdk"));
|
|
36
36
|
/**
|
|
37
37
|
* load json in sync.
|
|
38
38
|
*/
|
|
@@ -51,34 +51,47 @@ 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
|
|
58
54
|
*/
|
|
59
55
|
const asyncCredentials = (profile) => __awaiter(void 0, void 0, void 0, function* () {
|
|
60
|
-
|
|
61
|
-
|
|
56
|
+
return new Promise((resolve, reject) => {
|
|
57
|
+
let credentials = null;
|
|
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
|
+
});
|
|
62
75
|
});
|
|
63
76
|
exports.asyncCredentials = asyncCredentials;
|
|
64
77
|
/**
|
|
65
78
|
* dynamic loading credentials by profile. (search PROFILE -> NAME)
|
|
66
|
-
*
|
|
67
|
-
* @deprecated use `asyncCredentials` instead.
|
|
68
79
|
*/
|
|
69
80
|
const credentials = (profile) => {
|
|
70
81
|
if (!profile)
|
|
71
82
|
return '';
|
|
72
|
-
|
|
83
|
+
// console.info('! credentials.profile =', profile);
|
|
84
|
+
// WARN! - could not catch AWS.Error `Profile null not found` via callback.
|
|
85
|
+
const credentials = new aws_sdk_1.default.SharedIniFileCredentials({ profile });
|
|
86
|
+
aws_sdk_1.default.config.credentials = credentials;
|
|
87
|
+
return `${profile}`;
|
|
73
88
|
};
|
|
74
89
|
exports.credentials = credentials;
|
|
75
90
|
/**
|
|
76
91
|
* return whether AWS credentials set
|
|
77
|
-
*
|
|
78
|
-
* @deprecated use `asyncCredentials` instead.
|
|
79
92
|
*/
|
|
80
93
|
const hasCredentials = () => {
|
|
81
|
-
return
|
|
94
|
+
return !!aws_sdk_1.default.config.credentials;
|
|
82
95
|
};
|
|
83
96
|
exports.hasCredentials = hasCredentials;
|
|
84
97
|
/**
|
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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"}
|
package/dist/tools/tools.d.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { CrendentialForAWS } from '../environ';
|
|
2
|
+
import { RuntimeConfigAwsCredentialIdentityProvider } from '@aws-sdk/types/dist-types/identity/AwsCredentialIdentity';
|
|
3
|
+
import { LemonEngine } from '../engine/types';
|
|
4
|
+
/**
|
|
5
|
+
* Check if the current environment is AWS Lambda
|
|
6
|
+
* @returns {boolean} - true if running in AWS Lambda environment
|
|
7
|
+
*/
|
|
8
|
+
export declare const isLambda: () => boolean;
|
|
9
|
+
/** returns only defined */
|
|
10
|
+
export declare const onlyDefined: <T extends object>(N: T, $def?: T) => T;
|
|
2
11
|
/**
|
|
3
12
|
* load json in sync.
|
|
4
13
|
*/
|
|
@@ -10,6 +19,34 @@ export declare const loadDataYml: <T extends object = any>(file: string, folder?
|
|
|
10
19
|
/**
|
|
11
20
|
* dynamic loading credentials by profile. (search PROFILE -> NAME)
|
|
12
21
|
*
|
|
13
|
-
* @returns {Promise<
|
|
22
|
+
* @returns {Promise<CrendentialForAWS>} - AWS credentials
|
|
23
|
+
*/
|
|
24
|
+
export declare const asyncCredentials: (profile?: string) => Promise<CrendentialForAWS>;
|
|
25
|
+
/**
|
|
26
|
+
* type: `AwsConfigParams`
|
|
27
|
+
* - parameters for AWS config.
|
|
28
|
+
* - used for `awsConfig()`
|
|
29
|
+
*/
|
|
30
|
+
export interface AwsConfigParams {
|
|
31
|
+
/** AWS region */
|
|
32
|
+
region?: string;
|
|
33
|
+
/** AWS profile */
|
|
34
|
+
profile?: string;
|
|
35
|
+
/** AWS credentials provider */
|
|
36
|
+
credentials?: RuntimeConfigAwsCredentialIdentityProvider;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* load config for aws sdk
|
|
40
|
+
* - if `profile` is not defined, use `AWS_PROFILE` or `default`
|
|
41
|
+
* - if `region` is not defined, use `AWS_REGION` or `ap-northeast-2`
|
|
42
|
+
*
|
|
43
|
+
* ```
|
|
44
|
+
* # run with default profile
|
|
45
|
+
* $ npm run test:watch
|
|
46
|
+
*
|
|
47
|
+
* # run with `lemon` profile
|
|
48
|
+
* #npm run test:watch.lemon
|
|
14
49
|
*/
|
|
15
|
-
export declare const
|
|
50
|
+
export declare const awsConfig: <T extends AwsConfigParams>($engine: LemonEngine, params?: string | T | (() => string)) => T & {
|
|
51
|
+
credentials?: RuntimeConfigAwsCredentialIdentityProvider;
|
|
52
|
+
};
|
package/dist/tools/tools.js
CHANGED
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.asyncCredentials = exports.loadDataYml = exports.loadJsonSync = void 0;
|
|
15
|
+
exports.awsConfig = exports.asyncCredentials = exports.loadDataYml = exports.loadJsonSync = exports.onlyDefined = exports.isLambda = void 0;
|
|
16
16
|
/**
|
|
17
17
|
* `tools/tools.ts`
|
|
18
18
|
* - additional helper.
|
|
@@ -33,6 +33,24 @@ exports.asyncCredentials = exports.loadDataYml = exports.loadJsonSync = void 0;
|
|
|
33
33
|
const fs_1 = __importDefault(require("fs"));
|
|
34
34
|
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
35
35
|
const credential_providers_1 = require("@aws-sdk/credential-providers");
|
|
36
|
+
/**
|
|
37
|
+
* Check if the current environment is AWS Lambda
|
|
38
|
+
* @returns {boolean} - true if running in AWS Lambda environment
|
|
39
|
+
*/
|
|
40
|
+
const isLambda = () => {
|
|
41
|
+
var _a;
|
|
42
|
+
return !!((_a = process === null || process === void 0 ? void 0 : process.env) === null || _a === void 0 ? void 0 : _a.AWS_LAMBDA_FUNCTION_NAME);
|
|
43
|
+
};
|
|
44
|
+
exports.isLambda = isLambda;
|
|
45
|
+
/** returns only defined */
|
|
46
|
+
const onlyDefined = (N, $def = null) => N && typeof N === 'object'
|
|
47
|
+
? Object.entries(N).reduce((N, [k, v]) => {
|
|
48
|
+
if (v !== undefined)
|
|
49
|
+
N[k] = v;
|
|
50
|
+
return N;
|
|
51
|
+
}, {})
|
|
52
|
+
: $def;
|
|
53
|
+
exports.onlyDefined = onlyDefined;
|
|
36
54
|
/**
|
|
37
55
|
* load json in sync.
|
|
38
56
|
*/
|
|
@@ -63,7 +81,7 @@ exports.loadDataYml = loadDataYml;
|
|
|
63
81
|
/**
|
|
64
82
|
* dynamic loading credentials by profile. (search PROFILE -> NAME)
|
|
65
83
|
*
|
|
66
|
-
* @returns {Promise<
|
|
84
|
+
* @returns {Promise<CrendentialForAWS>} - AWS credentials
|
|
67
85
|
*/
|
|
68
86
|
const asyncCredentials = (profile) => __awaiter(void 0, void 0, void 0, function* () {
|
|
69
87
|
const provider = (0, credential_providers_1.fromIni)({ profile });
|
|
@@ -71,4 +89,46 @@ const asyncCredentials = (profile) => __awaiter(void 0, void 0, void 0, function
|
|
|
71
89
|
return Object.assign(Object.assign({}, $res), { profile });
|
|
72
90
|
});
|
|
73
91
|
exports.asyncCredentials = asyncCredentials;
|
|
92
|
+
/**
|
|
93
|
+
* load config for aws sdk
|
|
94
|
+
* - if `profile` is not defined, use `AWS_PROFILE` or `default`
|
|
95
|
+
* - if `region` is not defined, use `AWS_REGION` or `ap-northeast-2`
|
|
96
|
+
*
|
|
97
|
+
* ```
|
|
98
|
+
* # run with default profile
|
|
99
|
+
* $ npm run test:watch
|
|
100
|
+
*
|
|
101
|
+
* # run with `lemon` profile
|
|
102
|
+
* #npm run test:watch.lemon
|
|
103
|
+
*/
|
|
104
|
+
const awsConfig = ($engine,
|
|
105
|
+
/** params or region */
|
|
106
|
+
params) => {
|
|
107
|
+
var _a;
|
|
108
|
+
const errScope = `awsConfig(${(_a = $engine === null || $engine === void 0 ? void 0 : $engine.id) !== null && _a !== void 0 ? _a : ''})`;
|
|
109
|
+
const region = params === undefined
|
|
110
|
+
? 'ap-northeast-2'
|
|
111
|
+
: typeof params === 'string'
|
|
112
|
+
? params
|
|
113
|
+
: typeof params === 'function'
|
|
114
|
+
? params()
|
|
115
|
+
: params === null || params === void 0 ? void 0 : params.region;
|
|
116
|
+
const _conf = typeof params === 'object' ? params : null;
|
|
117
|
+
// If running in Lambda environment, set profile to 'none'
|
|
118
|
+
const profile = (0, exports.isLambda)() ? 'none' : $engine === null || $engine === void 0 ? void 0 : $engine.environ('NAME', 'none');
|
|
119
|
+
if (typeof profile !== 'string')
|
|
120
|
+
throw new Error(`@env.NAME[${typeof profile}] is invalid (check $engine) - ${errScope}`);
|
|
121
|
+
//* build defualt config.
|
|
122
|
+
const $conf = (0, exports.onlyDefined)(Object.assign({ profile: profile && profile !== 'none' ? profile : undefined, region }, _conf));
|
|
123
|
+
if (typeof $conf.region === 'string' && !$conf.region)
|
|
124
|
+
throw new Error(`.region[${$conf.region}] is invalid (empty) - ${errScope}`);
|
|
125
|
+
//! load the credentials provider(async function).
|
|
126
|
+
const credentials = typeof $conf.credentials === 'function'
|
|
127
|
+
? $conf.credentials
|
|
128
|
+
: $conf.profile
|
|
129
|
+
? (0, credential_providers_1.fromIni)({ profile: $conf.profile })
|
|
130
|
+
: undefined;
|
|
131
|
+
return (0, exports.onlyDefined)(Object.assign(Object.assign({}, $conf), { credentials }));
|
|
132
|
+
};
|
|
133
|
+
exports.awsConfig = awsConfig;
|
|
74
134
|
//# sourceMappingURL=tools.js.map
|
package/dist/tools/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tools/tools.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,4CAAoB;AACpB,sDAA2B;AAC3B,wEAAwD;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tools/tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lemon-core",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.4",
|
|
4
4
|
"description": "Lemon Serverless Micro-Service Platform",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"test.lemon": "ENV=lemon npm run test",
|
|
19
19
|
"test:dev": "LS=1 jest --config=jest.config.json --watchAll",
|
|
20
20
|
"!test:watch": "---- custom test with profile -----",
|
|
21
|
-
"test:watch": "LS=1
|
|
21
|
+
"test:watch": "LS=1 jest --config=jest.config.json --watchAll",
|
|
22
22
|
"test:watch.lemon": "ENV=lemon npm run test:watch",
|
|
23
23
|
"!prepare": "------- run self-test with jest -----",
|
|
24
24
|
"prepare": "npm run build",
|
|
@@ -106,6 +106,7 @@
|
|
|
106
106
|
"husky": "^8.0.3",
|
|
107
107
|
"jest": "^28.1.3",
|
|
108
108
|
"jest-jasmine2": "^28.1.3",
|
|
109
|
+
"lemon-devkit": "^0.0.3",
|
|
109
110
|
"lint-staged": "^13.1.0",
|
|
110
111
|
"prettier": "^2.7.1",
|
|
111
112
|
"superagent": "^5.3.1",
|