@goldstack/template-lambda-cli 0.1.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 ADDED
@@ -0,0 +1,8 @@
1
+ # Goldstack Lambda Web Server Template Tools
2
+
3
+ This library contains an API and CLI for building templates that allow a Lambda to function as a web server.
4
+
5
+ The following templates make use of this library:
6
+
7
+ - [Lambda Express Template](https://docs.goldstack.party/docs/templates/lambda-express).
8
+ - [Lambda Express Template](https://docs.goldstack.party/docs/templates/lambda-go-gin).
package/bin/template ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ /* eslint-disable @typescript-eslint/no-var-requires */
3
+
4
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
5
+ require('source-map-support').install();
6
+
7
+ require('./../dist/src/templateLambdaCli')
8
+ .run(process.argv)
9
+ .catch((e) => {
10
+ console.log(e);
11
+ process.exit(1);
12
+ });
@@ -0,0 +1,6 @@
1
+ import { run } from './../dist/src/templateLambdaCli';
2
+
3
+ run(process.argv).catch((e) => {
4
+ console.log(e);
5
+ process.exit(1);
6
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generateSchemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateSchemas.d.ts","sourceRoot":"","sources":["../../scripts/generateSchemas.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_package_config_generate_1 = require("@goldstack/utils-package-config-generate");
4
+ (0, utils_package_config_generate_1.run)(process.argv);
5
+ //# sourceMappingURL=generateSchemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateSchemas.js","sourceRoot":"","sources":["../../scripts/generateSchemas.ts"],"names":[],"mappings":";;AAAA,4FAA+D;AAE/D,IAAA,mCAAG,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './types/LambdaPackage';
2
+ export { deployCli as deployLambda } from './templateLambdaCliDeploy';
3
+ export declare const run: (args: string[]) => Promise<void>;
4
+ //# sourceMappingURL=templateLambdaCli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateLambdaCli.d.ts","sourceRoot":"","sources":["../../src/templateLambdaCli.ts"],"names":[],"mappings":"AAMA,cAAc,uBAAuB,CAAC;AAItC,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEtE,eAAO,MAAM,GAAG,SAAgB,MAAM,EAAE,KAAG,QAAQ,IAAI,CA8BtD,CAAC"}
@@ -0,0 +1,58 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.run = exports.deployLambda = void 0;
21
+ const utils_package_1 = require("@goldstack/utils-package");
22
+ const utils_cli_1 = require("@goldstack/utils-cli");
23
+ const utils_terraform_1 = require("@goldstack/utils-terraform");
24
+ const templateLambdaCliDeploy_1 = require("./templateLambdaCliDeploy");
25
+ const utils_terraform_aws_1 = require("@goldstack/utils-terraform-aws");
26
+ const utils_package_config_1 = require("@goldstack/utils-package-config");
27
+ __exportStar(require("./types/LambdaPackage"), exports);
28
+ const yargs_1 = __importDefault(require("yargs"));
29
+ var templateLambdaCliDeploy_2 = require("./templateLambdaCliDeploy");
30
+ Object.defineProperty(exports, "deployLambda", { enumerable: true, get: function () { return templateLambdaCliDeploy_2.deployCli; } });
31
+ const run = async (args) => {
32
+ await (0, utils_cli_1.wrapCli)(async () => {
33
+ const argv = await (0, utils_package_1.buildCli)({
34
+ yargs: yargs_1.default,
35
+ deployCommands: (0, utils_package_1.buildDeployCommands)(),
36
+ infraCommands: (0, utils_terraform_1.infraCommands)(),
37
+ })
38
+ .help()
39
+ .parse();
40
+ const packageConfig = new utils_package_config_1.PackageConfig({
41
+ packagePath: './',
42
+ });
43
+ const config = packageConfig.getConfig();
44
+ const command = argv._[0];
45
+ const [, , , ...opArgs] = args;
46
+ if (command === 'infra') {
47
+ await (0, utils_terraform_aws_1.terraformAwsCli)(opArgs);
48
+ return;
49
+ }
50
+ if (command === 'deploy') {
51
+ await (0, templateLambdaCliDeploy_1.deployCli)(packageConfig.getDeployment(opArgs[0]));
52
+ return;
53
+ }
54
+ throw new Error('Unknown command: ' + command);
55
+ });
56
+ };
57
+ exports.run = run;
58
+ //# sourceMappingURL=templateLambdaCli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateLambdaCli.js","sourceRoot":"","sources":["../../src/templateLambdaCli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,4DAAyE;AACzE,oDAA+C;AAC/C,gEAA2D;AAC3D,uEAAsD;AACtD,wEAAiE;AACjE,0EAAgE;AAChE,wDAAsC;AACtC,kDAA0B;AAG1B,qEAAsE;AAA7D,uHAAA,SAAS,OAAgB;AAE3B,MAAM,GAAG,GAAG,KAAK,EAAE,IAAc,EAAiB,EAAE;IACzD,MAAM,IAAA,mBAAO,EAAC,KAAK,IAAI,EAAE;QACvB,MAAM,IAAI,GAAG,MAAM,IAAA,wBAAQ,EAAC;YAC1B,KAAK,EAAL,eAAK;YACL,cAAc,EAAE,IAAA,mCAAmB,GAAE;YACrC,aAAa,EAAE,IAAA,+BAAa,GAAE;SAC/B,CAAC;aACC,IAAI,EAAE;aACN,KAAK,EAAE,CAAC;QAEX,MAAM,aAAa,GAAG,IAAI,oCAAa,CAAkC;YACvE,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;QACzC,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,QAAQ,EAAE;YACxB,MAAM,IAAA,mCAAS,EAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,OAAO;SACR;QAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA9BW,QAAA,GAAG,OA8Bd"}
@@ -0,0 +1,10 @@
1
+ import { LambdaDeployment } from './types/LambdaPackage';
2
+ import { DeploymentState } from '@goldstack/infra';
3
+ interface DeployLambdaParams {
4
+ deployment: LambdaDeployment;
5
+ deploymentState: DeploymentState;
6
+ }
7
+ export declare const deployLambda: (params: DeployLambdaParams) => Promise<void>;
8
+ export declare const deployCli: (deployment: LambdaDeployment) => Promise<void>;
9
+ export {};
10
+ //# sourceMappingURL=templateLambdaCliDeploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateLambdaCliDeploy.d.ts","sourceRoot":"","sources":["../../src/templateLambdaCliDeploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAGL,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAG1B,UAAU,kBAAkB;IAC1B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,eAAO,MAAM,YAAY,WACf,kBAAkB,KACzB,QAAQ,IAAI,CAed,CAAC;AAEF,eAAO,MAAM,SAAS,eACR,gBAAgB,KAC3B,QAAQ,IAAI,CAOd,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deployCli = exports.deployLambda = void 0;
4
+ const infra_aws_1 = require("@goldstack/infra-aws");
5
+ const infra_1 = require("@goldstack/infra");
6
+ const utils_aws_lambda_1 = require("@goldstack/utils-aws-lambda");
7
+ const deployLambda = async (params) => {
8
+ const targetArchive = 'lambda.zip';
9
+ const lambdaDistDir = './distLambda';
10
+ const functionName = (0, infra_1.readTerraformStateVariable)(params.deploymentState, 'lambda_function_name');
11
+ await (0, utils_aws_lambda_1.deployFunction)({
12
+ targetArchiveName: targetArchive,
13
+ lambdaPackageDir: lambdaDistDir,
14
+ awsCredentials: await (0, infra_aws_1.getAWSUser)(params.deployment.awsUser),
15
+ region: params.deployment.awsRegion,
16
+ functionName,
17
+ });
18
+ };
19
+ exports.deployLambda = deployLambda;
20
+ const deployCli = async (deployment) => {
21
+ const deploymentState = (0, infra_1.readDeploymentState)('./', deployment.name);
22
+ await (0, exports.deployLambda)({
23
+ deployment,
24
+ deploymentState,
25
+ });
26
+ };
27
+ exports.deployCli = deployCli;
28
+ //# sourceMappingURL=templateLambdaCliDeploy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateLambdaCliDeploy.js","sourceRoot":"","sources":["../../src/templateLambdaCliDeploy.ts"],"names":[],"mappings":";;;AACA,oDAAkD;AAClD,4CAI0B;AAC1B,kEAA6D;AAOtD,MAAM,YAAY,GAAG,KAAK,EAC/B,MAA0B,EACX,EAAE;IACjB,MAAM,aAAa,GAAG,YAAY,CAAC;IACnC,MAAM,aAAa,GAAG,cAAc,CAAC;IACrC,MAAM,YAAY,GAAG,IAAA,kCAA0B,EAC7C,MAAM,CAAC,eAAe,EACtB,sBAAsB,CACvB,CAAC;IAEF,MAAM,IAAA,iCAAc,EAAC;QACnB,iBAAiB,EAAE,aAAa;QAChC,gBAAgB,EAAE,aAAa;QAC/B,cAAc,EAAE,MAAM,IAAA,sBAAU,EAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;QAC3D,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;QACnC,YAAY;KACb,CAAC,CAAC;AACL,CAAC,CAAC;AAjBW,QAAA,YAAY,gBAiBvB;AAEK,MAAM,SAAS,GAAG,KAAK,EAC5B,UAA4B,EACb,EAAE;IACjB,MAAM,eAAe,GAAG,IAAA,2BAAmB,EAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAEnE,MAAM,IAAA,oBAAY,EAAC;QACjB,UAAU;QACV,eAAe;KAChB,CAAC,CAAC;AACL,CAAC,CAAC;AATW,QAAA,SAAS,aASpB"}
@@ -0,0 +1,44 @@
1
+ import { AWSDeployment } from '@goldstack/infra-aws';
2
+ import { TerraformDeployment } from '@goldstack/utils-terraform';
3
+ import { Deployment, DeploymentConfiguration } from '@goldstack/infra';
4
+ import { Package, Configuration } from '@goldstack/utils-package';
5
+ /**
6
+ * The name of the lambda.
7
+ *
8
+ * @title Lambda Name
9
+ * @pattern ^[A-Za-z0-9-_]*$
10
+ */
11
+ declare type LambdaName = string;
12
+ export interface ThisBaseDeploymentConfiguration extends DeploymentConfiguration {
13
+ lambdaName: LambdaName;
14
+ }
15
+ export interface ThisBaseDeployment extends Deployment, AWSDeployment, TerraformDeployment {
16
+ configuration: ThisBaseDeploymentConfiguration;
17
+ }
18
+ /**
19
+ * Places where the lambda should be deployed to.
20
+ *
21
+ * @title Deployments
22
+ */
23
+ export declare type LambdaDeployments = ThisBaseDeployment[];
24
+ /**
25
+ * Configures this lambda.
26
+ *
27
+ * @title Lambda Configuration
28
+ *
29
+ */
30
+ export declare type ThisBasePackageConfiguration = Configuration;
31
+ /**
32
+ * A lambda deployment.
33
+ *
34
+ * @title Lambda Package
35
+ */
36
+ export interface ThisBasePackage extends Package {
37
+ configuration: ThisBasePackageConfiguration;
38
+ deployments: LambdaDeployments;
39
+ }
40
+ export { ThisBaseDeploymentConfiguration as LambdaDeploymentConfiguration };
41
+ export { ThisBaseDeployment as LambdaDeployment };
42
+ export { ThisBasePackageConfiguration as LambdaConfiguration };
43
+ export { ThisBasePackage as LambdaPackage };
44
+ //# sourceMappingURL=LambdaPackage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LambdaPackage.d.ts","sourceRoot":"","sources":["../../../src/types/LambdaPackage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;GAKG;AACH,aAAK,UAAU,GAAG,MAAM,CAAC;AAEzB,MAAM,WAAW,+BACf,SAAQ,uBAAuB;IAC/B,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,kBACf,SAAQ,UAAU,EAChB,aAAa,EACb,mBAAmB;IACrB,aAAa,EAAE,+BAA+B,CAAC;CAChD;AAED;;;;GAIG;AACH,oBAAY,iBAAiB,GAAG,kBAAkB,EAAE,CAAC;AAErD;;;;;GAKG;AACH,oBAAY,4BAA4B,GAAG,aAAa,CAAC;AAEzD;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C,aAAa,EAAE,4BAA4B,CAAC;IAC5C,WAAW,EAAE,iBAAiB,CAAC;CAChC;AAED,OAAO,EAAE,+BAA+B,IAAI,6BAA6B,EAAE,CAAC;AAC5E,OAAO,EAAE,kBAAkB,IAAI,gBAAgB,EAAE,CAAC;AAClD,OAAO,EAAE,4BAA4B,IAAI,mBAAmB,EAAE,CAAC;AAC/D,OAAO,EAAE,eAAe,IAAI,aAAa,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=LambdaPackage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LambdaPackage.js","sourceRoot":"","sources":["../../../src/types/LambdaPackage.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,78 @@
1
+ {
2
+ "name": "@goldstack/template-lambda-cli",
3
+ "version": "0.1.1",
4
+ "description": "Utilities for templates that deploy an AWS Lambda function",
5
+ "keywords": [
6
+ "goldstack",
7
+ "template",
8
+ "lambda",
9
+ "aws",
10
+ "serverless",
11
+ "configuration"
12
+ ],
13
+ "homepage": "https://goldstack.party",
14
+ "bugs": {
15
+ "url": "https://github.com/goldstack/goldstack/issues"
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "https://github.com/goldstack/goldstack.git"
20
+ },
21
+ "license": "MIT",
22
+ "author": "Max Rohde",
23
+ "sideEffects": false,
24
+ "main": "dist/src/templateLambdaCli.js",
25
+ "bin": {
26
+ "template": "./bin/template",
27
+ "template-lambda-cli": "./bin/template"
28
+ },
29
+ "scripts": {
30
+ "build": "yarn clean && yarn compile",
31
+ "build:watch": "yarn clean && yarn compile-watch",
32
+ "clean": "rimraf ./dist",
33
+ "cli": "ts-node bin/template.ts",
34
+ "compile": "tsc -p tsconfig.json",
35
+ "compile-watch": "tsc -p tsconfig.json --watch",
36
+ "compile-watch:light": "nodemon --watch ./src/ -e '*' --exec 'yarn compile'",
37
+ "coverage": "jest --collect-coverage --passWithNoTests --config=./jest.config.js --runInBand",
38
+ "generate-schema": "ts-node scripts/generateSchemas.ts ThisBase && cp schemas/* ../../../templates/packages/lambda-python-job/schemas",
39
+ "prepublishOnly": "yarn run build",
40
+ "publish": "utils-git changed --exec \"yarn npm publish $@\"",
41
+ "test-ci": "jest --passWithNoTests --config=./jest.config.js --runInBand",
42
+ "version:apply": "utils-git changed --exec \"yarn version $@ && yarn version apply\"",
43
+ "version:apply:force": "yarn version $@ && yarn version apply"
44
+ },
45
+ "dependencies": {
46
+ "@goldstack/infra": "0.4.12",
47
+ "@goldstack/infra-aws": "0.4.20",
48
+ "@goldstack/utils-aws-lambda": "0.3.25",
49
+ "@goldstack/utils-cli": "0.3.10",
50
+ "@goldstack/utils-config": "0.4.12",
51
+ "@goldstack/utils-log": "0.3.11",
52
+ "@goldstack/utils-package": "0.4.12",
53
+ "@goldstack/utils-package-config": "0.4.12",
54
+ "@goldstack/utils-template": "0.4.12",
55
+ "@goldstack/utils-terraform": "0.4.23",
56
+ "@goldstack/utils-terraform-aws": "0.4.26",
57
+ "source-map-support": "^0.5.21",
58
+ "yargs": "^17.5.1"
59
+ },
60
+ "devDependencies": {
61
+ "@goldstack/utils-docs-cli": "0.3.11",
62
+ "@goldstack/utils-git": "0.2.9",
63
+ "@goldstack/utils-package-config-generate": "0.3.10",
64
+ "@swc/core": "^1.3.74",
65
+ "@swc/jest": "^0.2.27",
66
+ "@types/jest": "^29.0.1",
67
+ "@types/node": "^18.7.13",
68
+ "@types/yargs": "^17.0.10",
69
+ "jest": "^29.3.1",
70
+ "rimraf": "^3.0.2",
71
+ "ts-json-schema-generator": "^1.0.0",
72
+ "ts-node": "^10.9.1",
73
+ "typescript": "^4.8.4"
74
+ },
75
+ "publishConfig": {
76
+ "main": "dist/src/templateLambdaCli.js"
77
+ }
78
+ }