@goldstack/template-lambda-api-cli 0.4.1 → 0.4.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/dist/src/generateLambdaConfig.d.ts +5 -0
- package/dist/src/generateLambdaConfig.d.ts.map +1 -0
- package/dist/src/generateLambdaConfig.js +28 -0
- package/dist/src/generateLambdaConfig.js.map +1 -0
- package/dist/src/generateLambdaConfig.spec.d.ts +2 -0
- package/dist/src/generateLambdaConfig.spec.d.ts.map +1 -0
- package/dist/src/generateLambdaConfig.spec.js +72 -0
- package/dist/src/generateLambdaConfig.spec.js.map +1 -0
- package/dist/src/templateLambdaApiBuild.d.ts +9 -0
- package/dist/src/templateLambdaApiBuild.d.ts.map +1 -0
- package/dist/src/templateLambdaApiBuild.js +53 -0
- package/dist/src/templateLambdaApiBuild.js.map +1 -0
- package/dist/src/templateLambdaApiBuild.spec.d.ts +2 -0
- package/dist/src/templateLambdaApiBuild.spec.d.ts.map +1 -0
- package/dist/src/templateLambdaApiBuild.spec.js +50 -0
- package/dist/src/templateLambdaApiBuild.spec.js.map +1 -0
- package/dist/src/templateLambdaApiCli.d.ts +2 -0
- package/dist/src/templateLambdaApiCli.d.ts.map +1 -0
- package/dist/src/templateLambdaApiCli.js +74 -0
- package/dist/src/templateLambdaApiCli.js.map +1 -0
- package/dist/src/templateLambdaApiDeploy.d.ts +10 -0
- package/dist/src/templateLambdaApiDeploy.d.ts.map +1 -0
- package/dist/src/templateLambdaApiDeploy.js +37 -0
- package/dist/src/templateLambdaApiDeploy.js.map +1 -0
- package/dist/src/templateLambdaConsts.d.ts +2 -0
- package/dist/src/templateLambdaConsts.d.ts.map +1 -0
- package/dist/src/templateLambdaConsts.js +5 -0
- package/dist/src/templateLambdaConsts.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { LambdaConfig } from '@goldstack/utils-aws-lambda';
|
|
2
|
+
import { LambdaRoutesConfig, LambdaApiDeployment } from '@goldstack/template-lambda-api';
|
|
3
|
+
export declare const generateLambdaConfig: (deployment: LambdaApiDeployment, config: LambdaConfig[]) => LambdaRoutesConfig;
|
|
4
|
+
export declare const validateDeployment: (config: LambdaRoutesConfig) => boolean;
|
|
5
|
+
//# sourceMappingURL=generateLambdaConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateLambdaConfig.d.ts","sourceRoot":"","sources":["../../src/generateLambdaConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEb,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,gCAAgC,CAAC;AAExC,eAAO,MAAM,oBAAoB,eACnB,mBAAmB,UACvB,YAAY,EAAE,KACrB,kBAeF,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAAY,kBAAkB,KAAG,OAO/D,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateDeployment = exports.generateLambdaConfig = void 0;
|
|
4
|
+
const utils_aws_lambda_1 = require("@goldstack/utils-aws-lambda");
|
|
5
|
+
const generateLambdaConfig = (deployment, config) => {
|
|
6
|
+
return config.reduce((last, curr) => {
|
|
7
|
+
let id = curr.route;
|
|
8
|
+
if (id === '$default') {
|
|
9
|
+
id = 'default';
|
|
10
|
+
}
|
|
11
|
+
last[`${id}`] = {
|
|
12
|
+
function_name: (0, utils_aws_lambda_1.generateFunctionName)(deployment.configuration.lambdaNamePrefix, curr),
|
|
13
|
+
route: curr.route,
|
|
14
|
+
};
|
|
15
|
+
return last;
|
|
16
|
+
}, {});
|
|
17
|
+
};
|
|
18
|
+
exports.generateLambdaConfig = generateLambdaConfig;
|
|
19
|
+
const validateDeployment = (config) => {
|
|
20
|
+
let valid = true;
|
|
21
|
+
for (const e of Object.entries(config)) {
|
|
22
|
+
valid = valid && e[0].length > 0;
|
|
23
|
+
valid = valid && !!e[1].function_name && e[1].function_name.length > 0;
|
|
24
|
+
}
|
|
25
|
+
return valid;
|
|
26
|
+
};
|
|
27
|
+
exports.validateDeployment = validateDeployment;
|
|
28
|
+
//# sourceMappingURL=generateLambdaConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateLambdaConfig.js","sourceRoot":"","sources":["../../src/generateLambdaConfig.ts"],"names":[],"mappings":";;;AAAA,kEAGqC;AAM9B,MAAM,oBAAoB,GAAG,CAClC,UAA+B,EAC/B,MAAsB,EACF,EAAE;IACtB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QAClC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACpB,IAAI,EAAE,KAAK,UAAU,EAAE;YACrB,EAAE,GAAG,SAAS,CAAC;SAChB;QACD,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG;YACd,aAAa,EAAE,IAAA,uCAAoB,EACjC,UAAU,CAAC,aAAa,CAAC,gBAAgB,EACzC,IAAI,CACL;YACD,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC;AAlBW,QAAA,oBAAoB,wBAkB/B;AAEK,MAAM,kBAAkB,GAAG,CAAC,MAA0B,EAAW,EAAE;IACxE,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACtC,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;KACxE;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAPW,QAAA,kBAAkB,sBAO7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateLambdaConfig.spec.d.ts","sourceRoot":"","sources":["../../src/generateLambdaConfig.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const utils_aws_lambda_1 = require("@goldstack/utils-aws-lambda");
|
|
7
|
+
const assert_1 = __importDefault(require("assert"));
|
|
8
|
+
const generateLambdaConfig_1 = require("./generateLambdaConfig");
|
|
9
|
+
const templateLambdaApiBuild_1 = require("./templateLambdaApiBuild");
|
|
10
|
+
const dummyDeployment = {
|
|
11
|
+
awsRegion: 'ap-east-1',
|
|
12
|
+
awsUser: 'dummy',
|
|
13
|
+
configuration: {
|
|
14
|
+
lambdaNamePrefix: 'test-lambdas',
|
|
15
|
+
apiDomain: 'domain',
|
|
16
|
+
hostedZoneDomain: 'domain',
|
|
17
|
+
lambdas: {},
|
|
18
|
+
},
|
|
19
|
+
name: 'test',
|
|
20
|
+
};
|
|
21
|
+
describe('Generate Lambda config', () => {
|
|
22
|
+
const routesConfig = (0, utils_aws_lambda_1.readLambdaConfig)('./testData/routes-test');
|
|
23
|
+
const config = (0, generateLambdaConfig_1.generateLambdaConfig)(dummyDeployment, routesConfig);
|
|
24
|
+
test('Should render config for Terraform', () => {
|
|
25
|
+
(0, assert_1.default)(config['default'].function_name);
|
|
26
|
+
(0, assert_1.default)(config['ANY /folder/nested'].function_name.indexOf(dummyDeployment.configuration.lambdaNamePrefix || 'fail') !== -1);
|
|
27
|
+
});
|
|
28
|
+
test('Should determine correct output dirs for dist', () => {
|
|
29
|
+
const nestedRoute = routesConfig.find((e) => e.path === '/folder/nested');
|
|
30
|
+
(0, assert_1.default)(nestedRoute);
|
|
31
|
+
const dir = (0, templateLambdaApiBuild_1.getOutDirForLambda)(nestedRoute);
|
|
32
|
+
(0, assert_1.default)(dir === './distLambda/folder/nested');
|
|
33
|
+
});
|
|
34
|
+
test('Should determine path parametmers for file names', () => {
|
|
35
|
+
const nestedRoute = routesConfig.find((e) => e.path === '/folder/{pathparam}');
|
|
36
|
+
(0, assert_1.default)(nestedRoute);
|
|
37
|
+
const functionName = (0, utils_aws_lambda_1.generateFunctionName)(dummyDeployment.configuration.lambdaNamePrefix, nestedRoute);
|
|
38
|
+
(0, assert_1.default)(functionName.indexOf('folder') !== -1);
|
|
39
|
+
(0, assert_1.default)(functionName.indexOf('{') === -1);
|
|
40
|
+
(0, assert_1.default)(functionName.indexOf('}') === -1);
|
|
41
|
+
});
|
|
42
|
+
test('Should determine path parametmers for folder names', () => {
|
|
43
|
+
const nestedRoute = routesConfig.find((e) => e.path === '/resource/{path}/object');
|
|
44
|
+
(0, assert_1.default)(nestedRoute);
|
|
45
|
+
const functionName = (0, utils_aws_lambda_1.generateFunctionName)(dummyDeployment.configuration.lambdaNamePrefix, nestedRoute);
|
|
46
|
+
(0, assert_1.default)(functionName.indexOf('object') !== -1);
|
|
47
|
+
(0, assert_1.default)(functionName.indexOf('resource') !== -1);
|
|
48
|
+
(0, assert_1.default)(functionName.indexOf('{') === -1);
|
|
49
|
+
(0, assert_1.default)(functionName.indexOf('}') === -1);
|
|
50
|
+
});
|
|
51
|
+
test('Should provide a correct path for a nested index file', () => {
|
|
52
|
+
const nestedRoute = routesConfig.find((e) => e.path === '/health');
|
|
53
|
+
(0, assert_1.default)(nestedRoute);
|
|
54
|
+
const functionName = (0, utils_aws_lambda_1.generateFunctionName)(dummyDeployment.configuration.lambdaNamePrefix, nestedRoute);
|
|
55
|
+
expect(functionName).toContain('health');
|
|
56
|
+
});
|
|
57
|
+
test('Should provide a correct path for a file in the API root', () => {
|
|
58
|
+
var _a;
|
|
59
|
+
const nestedRoute = routesConfig.find((e) => e.path === '/resource');
|
|
60
|
+
(0, assert_1.default)(nestedRoute);
|
|
61
|
+
const functionName = (0, utils_aws_lambda_1.generateFunctionName)(dummyDeployment.configuration.lambdaNamePrefix, nestedRoute);
|
|
62
|
+
(0, assert_1.default)(((_a = functionName.match(/resource/g)) === null || _a === void 0 ? void 0 : _a.length) === 1);
|
|
63
|
+
});
|
|
64
|
+
test('Should hash long names', () => {
|
|
65
|
+
const nestedRoute = routesConfig.find((e) => e.path === '/resource');
|
|
66
|
+
(0, assert_1.default)(nestedRoute);
|
|
67
|
+
const functionName = (0, utils_aws_lambda_1.generateFunctionName)('very_long_names_should_end_with_a_hash_and_never_be_longer_than_64_characters', nestedRoute);
|
|
68
|
+
expect(functionName.length <= 64).toBeTruthy();
|
|
69
|
+
expect(functionName.indexOf('characters') === -1).toBe(true);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=generateLambdaConfig.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateLambdaConfig.spec.js","sourceRoot":"","sources":["../../src/generateLambdaConfig.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { LambdaConfig } from '@goldstack/utils-aws-lambda';
|
|
2
|
+
export declare const getOutDirForLambda: (config: LambdaConfig) => string;
|
|
3
|
+
export declare const getOutFileForLambda: (config: LambdaConfig) => string;
|
|
4
|
+
export declare const buildLambdas: ({ routesDir, configs, lambdaNamePrefix, }: {
|
|
5
|
+
routesDir: string;
|
|
6
|
+
configs: LambdaConfig[];
|
|
7
|
+
lambdaNamePrefix?: string | undefined;
|
|
8
|
+
}) => Promise<void>;
|
|
9
|
+
//# sourceMappingURL=templateLambdaApiBuild.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templateLambdaApiBuild.d.ts","sourceRoot":"","sources":["../../src/templateLambdaApiBuild.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,YAAY,EACb,MAAM,6BAA6B,CAAC;AASrC,eAAO,MAAM,kBAAkB,WAAY,YAAY,KAAG,MAKzD,CAAC;AAEF,eAAO,MAAM,mBAAmB,WAAY,YAAY,KAAG,MAE1D,CAAC;AAEF,eAAO,MAAM,YAAY;eAKZ,MAAM;aACR,YAAY,EAAE;;MAErB,QAAQ,IAAI,CAwCf,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildLambdas = exports.getOutFileForLambda = exports.getOutDirForLambda = void 0;
|
|
4
|
+
const esbuild_1 = require("esbuild");
|
|
5
|
+
const esbuild_plugin_pnp_1 = require("@yarnpkg/esbuild-plugin-pnp");
|
|
6
|
+
const utils_aws_lambda_1 = require("@goldstack/utils-aws-lambda");
|
|
7
|
+
const utils_sh_1 = require("@goldstack/utils-sh");
|
|
8
|
+
const getOutDirForLambda = (config) => {
|
|
9
|
+
if (config.path === '$default') {
|
|
10
|
+
return `./distLambda/${config.path}`;
|
|
11
|
+
}
|
|
12
|
+
return `./distLambda${config.path}`;
|
|
13
|
+
};
|
|
14
|
+
exports.getOutDirForLambda = getOutDirForLambda;
|
|
15
|
+
const getOutFileForLambda = (config) => {
|
|
16
|
+
return `${(0, exports.getOutDirForLambda)(config)}/lambda.js`;
|
|
17
|
+
};
|
|
18
|
+
exports.getOutFileForLambda = getOutFileForLambda;
|
|
19
|
+
const buildLambdas = async ({ routesDir, configs, lambdaNamePrefix, }) => {
|
|
20
|
+
const esbuildConfig = (0, utils_sh_1.readToType)('./esbuild.config.json');
|
|
21
|
+
await (0, utils_sh_1.rmSafe)('./distLambda');
|
|
22
|
+
(0, utils_sh_1.mkdir)('-p', './distLambda/zips');
|
|
23
|
+
for await (const config of configs) {
|
|
24
|
+
(0, utils_sh_1.mkdir)('-p', (0, exports.getOutDirForLambda)(config));
|
|
25
|
+
const esbuildLocalPath = (0, utils_sh_1.changeExtension)(`${routesDir}/${config.relativeFilePath}`, '.esbuild.config.json');
|
|
26
|
+
const functionName = (0, utils_aws_lambda_1.generateFunctionName)(lambdaNamePrefix, config);
|
|
27
|
+
const localEsbuildConfig = (0, utils_sh_1.readToType)(esbuildLocalPath);
|
|
28
|
+
const res = await (0, esbuild_1.build)({
|
|
29
|
+
plugins: [(0, esbuild_plugin_pnp_1.pnpPlugin)()],
|
|
30
|
+
bundle: true,
|
|
31
|
+
entryPoints: [`${routesDir}/${config.relativeFilePath}`],
|
|
32
|
+
external: [
|
|
33
|
+
'aws-sdk', // included in Lambda runtime environment
|
|
34
|
+
],
|
|
35
|
+
minify: true,
|
|
36
|
+
platform: 'node',
|
|
37
|
+
format: 'cjs',
|
|
38
|
+
target: 'node16.0',
|
|
39
|
+
treeShaking: true,
|
|
40
|
+
sourcemap: true,
|
|
41
|
+
outfile: (0, exports.getOutFileForLambda)(config),
|
|
42
|
+
metafile: true,
|
|
43
|
+
...esbuildConfig,
|
|
44
|
+
...localEsbuildConfig,
|
|
45
|
+
});
|
|
46
|
+
if (!res.metafile) {
|
|
47
|
+
throw new Error(`Metafile for ${functionName} not defined.`);
|
|
48
|
+
}
|
|
49
|
+
(0, utils_sh_1.write)(JSON.stringify(res.metafile), `./distLambda/zips/${functionName}.meta.json`);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.buildLambdas = buildLambdas;
|
|
53
|
+
//# sourceMappingURL=templateLambdaApiBuild.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templateLambdaApiBuild.js","sourceRoot":"","sources":["../../src/templateLambdaApiBuild.ts"],"names":[],"mappings":";;;AAAA,qCAA8C;AAC9C,oEAAwD;AACxD,kEAGqC;AACrC,kDAM6B;AAEtB,MAAM,kBAAkB,GAAG,CAAC,MAAoB,EAAU,EAAE;IACjE,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;QAC9B,OAAO,gBAAgB,MAAM,CAAC,IAAI,EAAE,CAAC;KACtC;IACD,OAAO,eAAe,MAAM,CAAC,IAAI,EAAE,CAAC;AACtC,CAAC,CAAC;AALW,QAAA,kBAAkB,sBAK7B;AAEK,MAAM,mBAAmB,GAAG,CAAC,MAAoB,EAAU,EAAE;IAClE,OAAO,GAAG,IAAA,0BAAkB,EAAC,MAAM,CAAC,YAAY,CAAC;AACnD,CAAC,CAAC;AAFW,QAAA,mBAAmB,uBAE9B;AAEK,MAAM,YAAY,GAAG,KAAK,EAAE,EACjC,SAAS,EACT,OAAO,EACP,gBAAgB,GAKjB,EAAiB,EAAE;IAClB,MAAM,aAAa,GAAG,IAAA,qBAAU,EAAe,uBAAuB,CAAC,CAAC;IAExE,MAAM,IAAA,iBAAM,EAAC,cAAc,CAAC,CAAC;IAC7B,IAAA,gBAAK,EAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACjC,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,OAAO,EAAE;QAClC,IAAA,gBAAK,EAAC,IAAI,EAAE,IAAA,0BAAkB,EAAC,MAAM,CAAC,CAAC,CAAC;QACxC,MAAM,gBAAgB,GAAG,IAAA,0BAAe,EACtC,GAAG,SAAS,IAAI,MAAM,CAAC,gBAAgB,EAAE,EACzC,sBAAsB,CACvB,CAAC;QACF,MAAM,YAAY,GAAG,IAAA,uCAAoB,EAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACpE,MAAM,kBAAkB,GAAG,IAAA,qBAAU,EAAe,gBAAgB,CAAC,CAAC;QAEtE,MAAM,GAAG,GAAG,MAAM,IAAA,eAAK,EAAC;YACtB,OAAO,EAAE,CAAC,IAAA,8BAAS,GAAE,CAAC;YACtB,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,CAAC,GAAG,SAAS,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACxD,QAAQ,EAAE;gBACR,SAAS,EAAE,yCAAyC;aACrD;YACD,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,IAAA,2BAAmB,EAAC,MAAM,CAAC;YACpC,QAAQ,EAAE,IAAI;YACd,GAAG,aAAa;YAChB,GAAG,kBAAkB;SACtB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,gBAAgB,YAAY,eAAe,CAAC,CAAC;SAC9D;QACD,IAAA,gBAAK,EACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAC5B,qBAAqB,YAAY,YAAY,CAC9C,CAAC;KACH;AACH,CAAC,CAAC;AAhDW,QAAA,YAAY,gBAgDvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templateLambdaApiBuild.spec.d.ts","sourceRoot":"","sources":["../../src/templateLambdaApiBuild.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const utils_aws_lambda_1 = require("@goldstack/utils-aws-lambda");
|
|
7
|
+
const utils_sh_1 = require("@goldstack/utils-sh");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const templateLambdaApiBuild_1 = require("./templateLambdaApiBuild");
|
|
10
|
+
const fs_1 = __importDefault(require("fs"));
|
|
11
|
+
jest.setTimeout(30000);
|
|
12
|
+
describe('Testing lambda build', () => {
|
|
13
|
+
it('Should build lambda', async () => {
|
|
14
|
+
const fileToBuild = path_1.default.resolve('./testData/build-test/index.ts');
|
|
15
|
+
expect(fs_1.default.existsSync(fileToBuild)).toEqual(true);
|
|
16
|
+
await (0, templateLambdaApiBuild_1.buildLambdas)({
|
|
17
|
+
routesDir: './testData/build-test',
|
|
18
|
+
configs: [
|
|
19
|
+
{
|
|
20
|
+
path: '/index',
|
|
21
|
+
relativeFilePath: 'index.ts',
|
|
22
|
+
name: 'test-lambda-index',
|
|
23
|
+
absoluteFilePath: fileToBuild,
|
|
24
|
+
route: 'ANY /',
|
|
25
|
+
type: utils_aws_lambda_1.RouteType.FUNCTION,
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
});
|
|
29
|
+
const generated = (0, utils_sh_1.read)('./distLambda/index/lambda.js');
|
|
30
|
+
expect(generated.length).toBeGreaterThan(100);
|
|
31
|
+
});
|
|
32
|
+
it('Should build lambda with custom esbuild config', async () => {
|
|
33
|
+
await (0, templateLambdaApiBuild_1.buildLambdas)({
|
|
34
|
+
routesDir: './testData/build-test',
|
|
35
|
+
configs: [
|
|
36
|
+
{
|
|
37
|
+
path: '/customBuild',
|
|
38
|
+
relativeFilePath: 'customBuild.ts',
|
|
39
|
+
name: 'test-lambda-customBuild',
|
|
40
|
+
absoluteFilePath: path_1.default.resolve('./testData/build-test/customBuild.ts'),
|
|
41
|
+
route: 'ANY /',
|
|
42
|
+
type: utils_aws_lambda_1.RouteType.FUNCTION,
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
});
|
|
46
|
+
const generated = (0, utils_sh_1.read)('./distLambda/customBuild/lambda.js');
|
|
47
|
+
expect(generated).toContain('Custom config in operation');
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=templateLambdaApiBuild.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templateLambdaApiBuild.spec.js","sourceRoot":"","sources":["../../src/templateLambdaApiBuild.spec.ts"],"names":[],"mappings":";;;;;AAAA,kEAAwD;AACxD,kDAA2C;AAC3C,gDAAwB;AACxB,qEAAwD;AACxD,4CAAoB;AAEpB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAEvB,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QACnE,MAAM,CAAC,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,IAAA,qCAAY,EAAC;YACjB,SAAS,EAAE,uBAAuB;YAClC,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,QAAQ;oBACd,gBAAgB,EAAE,UAAU;oBAC5B,IAAI,EAAE,mBAAmB;oBACzB,gBAAgB,EAAE,WAAW;oBAC7B,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,4BAAS,CAAC,QAAQ;iBACzB;aACF;SACF,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAA,eAAI,EAAC,8BAA8B,CAAC,CAAC;QACvD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,IAAA,qCAAY,EAAC;YACjB,SAAS,EAAE,uBAAuB;YAClC,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,cAAc;oBACpB,gBAAgB,EAAE,gBAAgB;oBAClC,IAAI,EAAE,yBAAyB;oBAC/B,gBAAgB,EAAE,cAAI,CAAC,OAAO,CAC5B,sCAAsC,CACvC;oBACD,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,4BAAS,CAAC,QAAQ;iBACzB;aACF;SACF,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAA,eAAI,EAAC,oCAAoC,CAAC,CAAC;QAC7D,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templateLambdaApiCli.d.ts","sourceRoot":"","sources":["../../src/templateLambdaApiCli.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,GAAG,SAAgB,MAAM,EAAE,KAAG,QAAQ,IAAI,CAiEtD,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.run = void 0;
|
|
7
|
+
const utils_package_1 = require("@goldstack/utils-package");
|
|
8
|
+
const utils_cli_1 = require("@goldstack/utils-cli");
|
|
9
|
+
const utils_terraform_1 = require("@goldstack/utils-terraform");
|
|
10
|
+
const templateLambdaApiDeploy_1 = require("./templateLambdaApiDeploy");
|
|
11
|
+
const utils_terraform_aws_1 = require("@goldstack/utils-terraform-aws");
|
|
12
|
+
const utils_package_config_1 = require("@goldstack/utils-package-config");
|
|
13
|
+
const utils_package_2 = require("@goldstack/utils-package");
|
|
14
|
+
const yargs_1 = __importDefault(require("yargs"));
|
|
15
|
+
const fs_1 = __importDefault(require("fs"));
|
|
16
|
+
const utils_aws_lambda_1 = require("@goldstack/utils-aws-lambda");
|
|
17
|
+
const generateLambdaConfig_1 = require("./generateLambdaConfig");
|
|
18
|
+
const templateLambdaConsts_1 = require("./templateLambdaConsts");
|
|
19
|
+
const templateLambdaApiBuild_1 = require("./templateLambdaApiBuild");
|
|
20
|
+
const run = async (args) => {
|
|
21
|
+
await (0, utils_cli_1.wrapCli)(async () => {
|
|
22
|
+
const argv = (0, utils_package_1.buildCli)({
|
|
23
|
+
yargs: yargs_1.default,
|
|
24
|
+
deployCommands: (0, utils_package_1.buildDeployCommands)(),
|
|
25
|
+
infraCommands: (0, utils_terraform_1.infraCommands)(),
|
|
26
|
+
})
|
|
27
|
+
.command('build [deployment]', 'Build all lambdas', () => {
|
|
28
|
+
return yargs_1.default.positional('deployment', {
|
|
29
|
+
type: 'string',
|
|
30
|
+
describe: 'Name of the deployment this command should be applied to',
|
|
31
|
+
default: '',
|
|
32
|
+
});
|
|
33
|
+
})
|
|
34
|
+
.help().argv;
|
|
35
|
+
const packageConfig = new utils_package_config_1.PackageConfig({
|
|
36
|
+
packagePath: './',
|
|
37
|
+
});
|
|
38
|
+
const config = packageConfig.getConfig();
|
|
39
|
+
// update routes
|
|
40
|
+
if (!fs_1.default.existsSync('./src/routes')) {
|
|
41
|
+
throw new Error('Please specify lambda function handlers in ./src/routes so that API Gateway route configuration can be generated.');
|
|
42
|
+
}
|
|
43
|
+
const lambdaRoutes = (0, utils_aws_lambda_1.readLambdaConfig)(templateLambdaConsts_1.defaultRoutesPath);
|
|
44
|
+
config.deployments = config.deployments.map((e) => {
|
|
45
|
+
const lambdasConfigs = (0, generateLambdaConfig_1.generateLambdaConfig)(e, lambdaRoutes);
|
|
46
|
+
e.configuration.lambdas = lambdasConfigs;
|
|
47
|
+
(0, generateLambdaConfig_1.validateDeployment)(e.configuration.lambdas);
|
|
48
|
+
return e;
|
|
49
|
+
});
|
|
50
|
+
(0, utils_package_2.writePackageConfig)(config);
|
|
51
|
+
const command = argv._[0];
|
|
52
|
+
const [, , , ...opArgs] = args;
|
|
53
|
+
if (command === 'infra') {
|
|
54
|
+
await (0, utils_terraform_aws_1.terraformAwsCli)(opArgs);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (command === 'build') {
|
|
58
|
+
await (0, templateLambdaApiBuild_1.buildLambdas)({
|
|
59
|
+
routesDir: templateLambdaConsts_1.defaultRoutesPath,
|
|
60
|
+
configs: lambdaRoutes,
|
|
61
|
+
lambdaNamePrefix: packageConfig.getDeployment(opArgs[0]).configuration
|
|
62
|
+
.lambdaNamePrefix,
|
|
63
|
+
});
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (command === 'deploy') {
|
|
67
|
+
await (0, templateLambdaApiDeploy_1.deployCli)(packageConfig.getDeployment(opArgs[0]), lambdaRoutes);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
throw new Error('Unknown command: ' + command);
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
exports.run = run;
|
|
74
|
+
//# sourceMappingURL=templateLambdaApiCli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templateLambdaApiCli.js","sourceRoot":"","sources":["../../src/templateLambdaApiCli.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAyE;AACzE,oDAA+C;AAC/C,gEAA2D;AAC3D,uEAAsD;AACtD,wEAAiE;AACjE,0EAAgE;AAChE,4DAA8D;AAC9D,kDAA0B;AAC1B,4CAAoB;AAKpB,kEAA+D;AAC/D,iEAGgC;AAChC,iEAA2D;AAC3D,qEAAwD;AAEjD,MAAM,GAAG,GAAG,KAAK,EAAE,IAAc,EAAiB,EAAE;IACzD,MAAM,IAAA,mBAAO,EAAC,KAAK,IAAI,EAAE;QACvB,MAAM,IAAI,GAAG,IAAA,wBAAQ,EAAC;YACpB,KAAK,EAAL,eAAK;YACL,cAAc,EAAE,IAAA,mCAAmB,GAAE;YACrC,aAAa,EAAE,IAAA,+BAAa,GAAE;SAC/B,CAAC;aACC,OAAO,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,GAAG,EAAE;YACvD,OAAO,eAAK,CAAC,UAAU,CAAC,YAAY,EAAE;gBACpC,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,0DAA0D;gBACpE,OAAO,EAAE,EAAE;aACZ,CAAC,CAAC;QACL,CAAC,CAAC;aACD,IAAI,EAAE,CAAC,IAAI,CAAC;QAEf,MAAM,aAAa,GAAG,IAAI,oCAAa,CAGrC;YACA,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;QAEzC,gBAAgB;QAChB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;YAClC,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAC;SACH;QACD,MAAM,YAAY,GAAG,IAAA,mCAAgB,EAAC,wCAAiB,CAAC,CAAC;QACzD,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAChD,MAAM,cAAc,GAAG,IAAA,2CAAoB,EAAC,CAAC,EAAE,YAAY,CAAC,CAAC;YAC7D,CAAC,CAAC,aAAa,CAAC,OAAO,GAAG,cAAc,CAAC;YACzC,IAAA,yCAAkB,EAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC5C,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QACH,IAAA,kCAAkB,EAAC,MAAM,CAAC,CAAC;QAE3B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;QAE/B,IAAI,OAAO,KAAK,OAAO,EAAE;YACvB,MAAM,IAAA,qCAAe,EAAC,MAAM,CAAC,CAAC;YAC9B,OAAO;SACR;QAED,IAAI,OAAO,KAAK,OAAO,EAAE;YACvB,MAAM,IAAA,qCAAY,EAAC;gBACjB,SAAS,EAAE,wCAAiB;gBAC5B,OAAO,EAAE,YAAY;gBACrB,gBAAgB,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa;qBACnE,gBAAgB;aACpB,CAAC,CAAC;YACH,OAAO;SACR;QAED,IAAI,OAAO,KAAK,QAAQ,EAAE;YACxB,MAAM,IAAA,mCAAS,EAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;YACtE,OAAO;SACR;QAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAjEW,QAAA,GAAG,OAiEd"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { LambdaApiDeployment } from '@goldstack/template-lambda-api';
|
|
2
|
+
import { LambdaConfig } from '@goldstack/utils-aws-lambda';
|
|
3
|
+
interface DeployLambdaParams {
|
|
4
|
+
deployment: LambdaApiDeployment;
|
|
5
|
+
config: LambdaConfig[];
|
|
6
|
+
}
|
|
7
|
+
export declare const deployLambdas: (params: DeployLambdaParams) => Promise<void>;
|
|
8
|
+
export declare const deployCli: (deployment: LambdaApiDeployment, config: LambdaConfig[]) => Promise<void>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=templateLambdaApiDeploy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templateLambdaApiDeploy.d.ts","sourceRoot":"","sources":["../../src/templateLambdaApiDeploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,EAEL,YAAY,EAEb,MAAM,6BAA6B,CAAC;AAQrC,UAAU,kBAAkB;IAC1B,UAAU,EAAE,mBAAmB,CAAC;IAChC,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,aAAa,WAChB,kBAAkB,KACzB,QAAQ,IAAI,CAsBd,CAAC;AAEF,eAAO,MAAM,SAAS,eACR,mBAAmB,UACvB,YAAY,EAAE,KACrB,QAAQ,IAAI,CAKd,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deployCli = exports.deployLambdas = void 0;
|
|
4
|
+
const infra_aws_1 = require("@goldstack/infra-aws");
|
|
5
|
+
const utils_aws_lambda_1 = require("@goldstack/utils-aws-lambda");
|
|
6
|
+
const utils_aws_lambda_2 = require("@goldstack/utils-aws-lambda");
|
|
7
|
+
const templateLambdaConsts_1 = require("./templateLambdaConsts");
|
|
8
|
+
const utils_sh_1 = require("@goldstack/utils-sh");
|
|
9
|
+
const templateLambdaApiBuild_1 = require("./templateLambdaApiBuild");
|
|
10
|
+
const deployLambdas = async (params) => {
|
|
11
|
+
const lambdaConfig = (0, utils_aws_lambda_2.readLambdaConfig)(templateLambdaConsts_1.defaultRoutesPath);
|
|
12
|
+
const operations = lambdaConfig.map(async (config) => {
|
|
13
|
+
const functionName = (0, utils_aws_lambda_1.generateFunctionName)(params.deployment.configuration.lambdaNamePrefix, config);
|
|
14
|
+
console.log(`[${functionName}]: Starting deployment`);
|
|
15
|
+
const functionDir = (0, templateLambdaApiBuild_1.getOutDirForLambda)(config);
|
|
16
|
+
(0, utils_sh_1.mkdir)('-p', functionDir);
|
|
17
|
+
const targetArchive = `./distLambda/zips/${functionName}.zip`;
|
|
18
|
+
await (0, utils_aws_lambda_1.deployFunction)({
|
|
19
|
+
targetArchiveName: targetArchive,
|
|
20
|
+
lambdaPackageDir: functionDir,
|
|
21
|
+
awsCredentials: await (0, infra_aws_1.getAWSUser)(params.deployment.awsUser),
|
|
22
|
+
region: params.deployment.awsRegion,
|
|
23
|
+
functionName,
|
|
24
|
+
});
|
|
25
|
+
console.log(`[${functionName}]: Deployment completed`);
|
|
26
|
+
});
|
|
27
|
+
await Promise.all(operations);
|
|
28
|
+
};
|
|
29
|
+
exports.deployLambdas = deployLambdas;
|
|
30
|
+
const deployCli = async (deployment, config) => {
|
|
31
|
+
await (0, exports.deployLambdas)({
|
|
32
|
+
deployment,
|
|
33
|
+
config,
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
exports.deployCli = deployCli;
|
|
37
|
+
//# sourceMappingURL=templateLambdaApiDeploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templateLambdaApiDeploy.js","sourceRoot":"","sources":["../../src/templateLambdaApiDeploy.ts"],"names":[],"mappings":";;;AACA,oDAAkD;AAClD,kEAIqC;AAErC,kEAA+D;AAC/D,iEAA2D;AAE3D,kDAA4C;AAC5C,qEAA8D;AAOvD,MAAM,aAAa,GAAG,KAAK,EAChC,MAA0B,EACX,EAAE;IACjB,MAAM,YAAY,GAAG,IAAA,mCAAgB,EAAC,wCAAiB,CAAC,CAAC;IAEzD,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QACnD,MAAM,YAAY,GAAG,IAAA,uCAAoB,EACvC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,EAChD,MAAM,CACP,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,YAAY,wBAAwB,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,IAAA,2CAAkB,EAAC,MAAM,CAAC,CAAC;QAC/C,IAAA,gBAAK,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACzB,MAAM,aAAa,GAAG,qBAAqB,YAAY,MAAM,CAAC;QAC9D,MAAM,IAAA,iCAAc,EAAC;YACnB,iBAAiB,EAAE,aAAa;YAChC,gBAAgB,EAAE,WAAW;YAC7B,cAAc,EAAE,MAAM,IAAA,sBAAU,EAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;YAC3D,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;YACnC,YAAY;SACb,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,IAAI,YAAY,yBAAyB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC,CAAC;AAxBW,QAAA,aAAa,iBAwBxB;AAEK,MAAM,SAAS,GAAG,KAAK,EAC5B,UAA+B,EAC/B,MAAsB,EACP,EAAE;IACjB,MAAM,IAAA,qBAAa,EAAC;QAClB,UAAU;QACV,MAAM;KACP,CAAC,CAAC;AACL,CAAC,CAAC;AARW,QAAA,SAAS,aAQpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templateLambdaConsts.d.ts","sourceRoot":"","sources":["../../src/templateLambdaConsts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templateLambdaConsts.js","sourceRoot":"","sources":["../../src/templateLambdaConsts.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,cAAc,CAAC"}
|