@goldstack/template-lambda-api-cli 0.4.4 → 0.4.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goldstack/template-lambda-api-cli",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "description": "Companion for project templates for deploying Lambdas as a REST API",
5
5
  "keywords": [
6
6
  "goldstack",
@@ -1,72 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateLambdaConfig.spec.js","sourceRoot":"","sources":["../../src/generateLambdaConfig.spec.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
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
@@ -1 +0,0 @@
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"}