@tremho/mist-lift 1.0.0
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/LICENSE +21 -0
- package/README.md +37 -0
- package/build/commands/actions/initQuestions.js +136 -0
- package/build/commands/actions/initQuestions.js.map +1 -0
- package/build/commands/actions/makePackageJson.js +2 -0
- package/build/commands/actions/makePackageJson.js.map +1 -0
- package/build/commands/actions/setupPackageJson.js +68 -0
- package/build/commands/actions/setupPackageJson.js.map +1 -0
- package/build/commands/build.js +191 -0
- package/build/commands/build.js.map +1 -0
- package/build/commands/builtin/ApiDocMaker.js +72 -0
- package/build/commands/builtin/ApiDocMaker.js.map +1 -0
- package/build/commands/builtin/BuiltInHandler.js +62 -0
- package/build/commands/builtin/BuiltInHandler.js.map +1 -0
- package/build/commands/builtin/DeployBuiltInZip.js +57 -0
- package/build/commands/builtin/DeployBuiltInZip.js.map +1 -0
- package/build/commands/builtin/StageWebrootZip.js +70 -0
- package/build/commands/builtin/StageWebrootZip.js.map +1 -0
- package/build/commands/builtin/prebuilt-zips/API.zip +0 -0
- package/build/commands/builtin/prebuilt-zips/FileServe.zip +0 -0
- package/build/commands/builtin/prebuilt-zips/Webroot.zip +0 -0
- package/build/commands/create.js +75 -0
- package/build/commands/create.js.map +1 -0
- package/build/commands/deploy.js +187 -0
- package/build/commands/deploy.js.map +1 -0
- package/build/commands/doctor.js +137 -0
- package/build/commands/doctor.js.map +1 -0
- package/build/commands/help.js +205 -0
- package/build/commands/help.js.map +1 -0
- package/build/commands/init.js +92 -0
- package/build/commands/init.js.map +1 -0
- package/build/commands/package.js +249 -0
- package/build/commands/package.js.map +1 -0
- package/build/commands/publish.js +344 -0
- package/build/commands/publish.js.map +1 -0
- package/build/commands/settings.js +95 -0
- package/build/commands/settings.js.map +1 -0
- package/build/commands/start.js +66 -0
- package/build/commands/start.js.map +1 -0
- package/build/commands/test.js +52 -0
- package/build/commands/test.js.map +1 -0
- package/build/commands/user.js +20 -0
- package/build/commands/user.js.map +1 -0
- package/build/expressRoutes/all.js +129 -0
- package/build/expressRoutes/all.js.map +1 -0
- package/build/expressRoutes/api.js +22 -0
- package/build/expressRoutes/api.js.map +1 -0
- package/build/expressRoutes/functionBinder.js +191 -0
- package/build/expressRoutes/functionBinder.js.map +1 -0
- package/build/lib/CaseUtils.js +57 -0
- package/build/lib/CaseUtils.js.map +1 -0
- package/build/lib/DirectoryUtils.js +37 -0
- package/build/lib/DirectoryUtils.js.map +1 -0
- package/build/lib/LiftConfig.js +83 -0
- package/build/lib/LiftConfig.js.map +1 -0
- package/build/lib/LiftVersion.js +117 -0
- package/build/lib/LiftVersion.js.map +1 -0
- package/build/lib/Tests/fileCompare.test.js +55 -0
- package/build/lib/Tests/fileCompare.test.js.map +1 -0
- package/build/lib/askQuestion.js +41 -0
- package/build/lib/askQuestion.js.map +1 -0
- package/build/lib/executeCommand.js +45 -0
- package/build/lib/executeCommand.js.map +1 -0
- package/build/lib/fileCompare.js +48 -0
- package/build/lib/fileCompare.js.map +1 -0
- package/build/lib/openAPI/ApiBuildCollector.js +58 -0
- package/build/lib/openAPI/ApiBuildCollector.js.map +1 -0
- package/build/lib/openAPI/WebrootFileSupport.js +44 -0
- package/build/lib/openAPI/WebrootFileSupport.js.map +1 -0
- package/build/lib/openAPI/openApiConstruction.js +203 -0
- package/build/lib/openAPI/openApiConstruction.js.map +1 -0
- package/build/lib/pathResolve.js +27 -0
- package/build/lib/pathResolve.js.map +1 -0
- package/build/lib/utils.js +76 -0
- package/build/lib/utils.js.map +1 -0
- package/build/lift.js +124 -0
- package/build/lift.js.map +1 -0
- package/package.json +69 -0
- package/src/commands/actions/initQuestions.ts +131 -0
- package/src/commands/actions/makePackageJson.ts +0 -0
- package/src/commands/actions/setupPackageJson.ts +36 -0
- package/src/commands/build.ts +165 -0
- package/src/commands/builtin/ApiDocMaker.ts +70 -0
- package/src/commands/builtin/BuiltInHandler.ts +51 -0
- package/src/commands/builtin/DeployBuiltInZip.ts +27 -0
- package/src/commands/builtin/StageWebrootZip.ts +39 -0
- package/src/commands/builtin/prebuilt-zips/API.zip +0 -0
- package/src/commands/builtin/prebuilt-zips/FileServe.zip +0 -0
- package/src/commands/builtin/prebuilt-zips/Webroot.zip +0 -0
- package/src/commands/create.ts +55 -0
- package/src/commands/deploy.ts +171 -0
- package/src/commands/doctor.ts +102 -0
- package/src/commands/help.ts +171 -0
- package/src/commands/init.ts +62 -0
- package/src/commands/package.ts +228 -0
- package/src/commands/publish.ts +350 -0
- package/src/commands/settings.ts +76 -0
- package/src/commands/start.ts +46 -0
- package/src/commands/test.ts +38 -0
- package/src/commands/user.ts +20 -0
- package/src/expressRoutes/all.ts +104 -0
- package/src/expressRoutes/api.ts +24 -0
- package/src/expressRoutes/functionBinder.ts +169 -0
- package/src/lib/CaseUtils.ts +68 -0
- package/src/lib/DirectoryUtils.ts +36 -0
- package/src/lib/LiftConfig.ts +83 -0
- package/src/lib/LiftVersion.ts +95 -0
- package/src/lib/Tests/dir1/file.1 +0 -0
- package/src/lib/Tests/dir1/file.2 +0 -0
- package/src/lib/Tests/dir2/file.1 +0 -0
- package/src/lib/Tests/fileCompare.test.ts +34 -0
- package/src/lib/askQuestion.ts +18 -0
- package/src/lib/executeCommand.ts +38 -0
- package/src/lib/fileCompare.ts +46 -0
- package/src/lib/openAPI/ApiBuildCollector.ts +47 -0
- package/src/lib/openAPI/WebrootFileSupport.ts +21 -0
- package/src/lib/openAPI/openApiConstruction.ts +202 -0
- package/src/lib/pathResolve.ts +32 -0
- package/src/lib/utils.ts +45 -0
- package/src/lift.ts +82 -0
- package/tsconfig.json +28 -0
|
@@ -0,0 +1,205 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.helpDoctor = exports.helpSettings = exports.helpPublish = exports.helpDeploy = exports.helpPackage = exports.helpStop = exports.helpStart = exports.helpTest = exports.helpBuild = exports.helpCreate = exports.helpInit = exports.doHelp = void 0;
|
|
27
|
+
const ac = __importStar(require("ansi-colors"));
|
|
28
|
+
function doHelp(command) {
|
|
29
|
+
switch (command) {
|
|
30
|
+
case 'help':
|
|
31
|
+
return helpHelp();
|
|
32
|
+
case 'init':
|
|
33
|
+
return helpInit();
|
|
34
|
+
case 'create':
|
|
35
|
+
return helpCreate();
|
|
36
|
+
case 'build':
|
|
37
|
+
return helpBuild();
|
|
38
|
+
case 'test':
|
|
39
|
+
return helpTest();
|
|
40
|
+
case 'start':
|
|
41
|
+
return helpStart();
|
|
42
|
+
// case 'stop':
|
|
43
|
+
// return helpStop()
|
|
44
|
+
case 'package':
|
|
45
|
+
return helpPackage();
|
|
46
|
+
case 'deploy':
|
|
47
|
+
return helpDeploy();
|
|
48
|
+
case 'publish':
|
|
49
|
+
return helpPublish();
|
|
50
|
+
case 'settings':
|
|
51
|
+
return helpSettings();
|
|
52
|
+
case 'doctor':
|
|
53
|
+
return helpDoctor();
|
|
54
|
+
default:
|
|
55
|
+
return helpDefault();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.doHelp = doHelp;
|
|
59
|
+
function helpDefault() {
|
|
60
|
+
console.log('lift is the command-line tool of the MistLift framework.');
|
|
61
|
+
console.log("");
|
|
62
|
+
console.log(ac.bold("Usage: " + ac.grey("lift " + ac.grey.dim("command [args]"))));
|
|
63
|
+
console.log("where " + ac.grey.dim("command") + " is one of:");
|
|
64
|
+
console.log(" " + ac.blue.bold("help " + ac.grey.dim("[command]")) + " -- this list, or help on a given command");
|
|
65
|
+
console.log(" " + ac.blue.bold("init") + " -- create or prepare a directory as a MistLift project");
|
|
66
|
+
console.log(" " + ac.blue.bold("create " + ac.grey.italic("functionName")) + " -- define and create a new API function");
|
|
67
|
+
console.log(" " + ac.green("build") + " -- build the project");
|
|
68
|
+
console.log(" " + ac.green("test") + " -- build, and run unit tests");
|
|
69
|
+
console.log(" " + ac.cyan.bold("start") + " -- start the local express server");
|
|
70
|
+
// console.log(" " + ac.cyan.bold("stop") + " -- stop the local express server");
|
|
71
|
+
console.log(" " + ac.green("package " + ac.grey.italic("[functionName]")) + " -- builds and packages functions into lambda-ready zips");
|
|
72
|
+
console.log(" " + ac.green("deploy " + ac.grey.italic("[functionName]")) + " -- builds, packages, and deploys function packages to AWS lambda");
|
|
73
|
+
console.log(" " + ac.blue.bold("publish") + " -- publishes the API and binds to the deployed functions");
|
|
74
|
+
console.log(" " + ac.blue.bold("settings") + " -- sets up cloud settings");
|
|
75
|
+
console.log(" " + ac.blue.bold("doctor") + " -- checks MistLift installation and status");
|
|
76
|
+
console.log('');
|
|
77
|
+
console.log("use " + ac.bold("lift help " + ac.grey.dim('[command]')) + " for command arguments and detals.");
|
|
78
|
+
console.log(ac.italic("use " + ac.bold("lift version " + ac.grey.dim("or lift -v or lift --version") + ac.grey(" to see current running version of MistLift"))));
|
|
79
|
+
}
|
|
80
|
+
function printBanner(cmd) {
|
|
81
|
+
let out = ' ' + ac.green('╭───────────────────────────────────────────────────────────────╮') + '\n';
|
|
82
|
+
out += ' ' + ac.green('| |') + '\n';
|
|
83
|
+
out += ' ' + ac.green('| Lift |') + '\n';
|
|
84
|
+
out += ' ' + ac.green('| |') + '\n';
|
|
85
|
+
out += ' ' + ac.green('╰───────────────────────────────────────────────────────────────╯') + '\n';
|
|
86
|
+
out += ' ' + ac.bold.green(cmd);
|
|
87
|
+
out += '\n';
|
|
88
|
+
console.log(out);
|
|
89
|
+
}
|
|
90
|
+
function helpHelp() {
|
|
91
|
+
printBanner("help");
|
|
92
|
+
console.log("use " + ac.bold('lift help') + " by itself to see a list of commands");
|
|
93
|
+
console.log("use " + ac.bold("lift help " + ac.grey.dim('[command]')) + " for help on a given command");
|
|
94
|
+
console.log('');
|
|
95
|
+
}
|
|
96
|
+
function helpInit() {
|
|
97
|
+
printBanner("init");
|
|
98
|
+
console.log("use " + ac.bold('lift init .') + " from within a directory to init the current directory as a MistLift project");
|
|
99
|
+
console.log("use " + ac.bold("lift init " + ac.grey.dim('projectPath')) + " to create a new directory at "
|
|
100
|
+
+ ac.grey.dim("projectPath") + " if it does not exist and init a MistLift project in that directory, if not already initialized");
|
|
101
|
+
console.log("");
|
|
102
|
+
console.log("This will begin an interactive session where you will be asked questions about the project you are creating.");
|
|
103
|
+
console.log("The project will be complete and ready to run right away.");
|
|
104
|
+
console.log("You can then modify the application to your needs.");
|
|
105
|
+
}
|
|
106
|
+
exports.helpInit = helpInit;
|
|
107
|
+
function helpCreate() {
|
|
108
|
+
printBanner("create");
|
|
109
|
+
console.log("use " + ac.bold('lift create') + ac.grey.dim(' functionName') + " to create a new function for your API");
|
|
110
|
+
console.log("");
|
|
111
|
+
console.log("your project folder (set up with " + ac.green.bold("init") + ") will have a new function template created as "
|
|
112
|
+
+ ac.grey.dim("functionName")
|
|
113
|
+
+ " in a folder named "
|
|
114
|
+
+ ac.green.dim("functions") + " within your project directory");
|
|
115
|
+
console.log("");
|
|
116
|
+
console.log(ac.grey("The default function will display a'Hello World!' message when built and run"));
|
|
117
|
+
console.log(ac.grey("Modify the code to suit the needs of your function application"));
|
|
118
|
+
}
|
|
119
|
+
exports.helpCreate = helpCreate;
|
|
120
|
+
function helpBuild() {
|
|
121
|
+
printBanner("build");
|
|
122
|
+
console.log("use " + ac.bold('lift build') + " to build all your functions of the project");
|
|
123
|
+
console.log("use " + ac.bold('lift build') + " one or more function names to build these individually");
|
|
124
|
+
console.log("");
|
|
125
|
+
console.log("include " + ac.bold('--clean') + " to force a rebuild, bypassing file date compare");
|
|
126
|
+
console.log("include " + ac.bold('--failfast') + " to stop after encountering an error");
|
|
127
|
+
console.log("include " + ac.bold('--deferfail') + " to build all, then report any errors (the default)");
|
|
128
|
+
console.log("");
|
|
129
|
+
console.log("The build step compiles your typescript (.ts) files into executable javascript (.js) files within a folder named 'build' in your project directory.");
|
|
130
|
+
console.log("Files that are not updated are not rebuilt.");
|
|
131
|
+
console.log("The build step is automatically invoked by other actions that depend upon it as a prerequisite, so it does not need to be explicitly run in normal operation.");
|
|
132
|
+
console.log("");
|
|
133
|
+
}
|
|
134
|
+
exports.helpBuild = helpBuild;
|
|
135
|
+
function helpTest() {
|
|
136
|
+
printBanner("test");
|
|
137
|
+
console.log("use " + ac.bold('lift test') + " to invoke the testing framework and run unit tests for all functions");
|
|
138
|
+
console.log("");
|
|
139
|
+
console.log("Tests should be written in files within the named test folder for each created function. test files are given the suffix .test.ts");
|
|
140
|
+
console.log("The test framework used is 'Tap' (https://node-tap.org)");
|
|
141
|
+
console.log("");
|
|
142
|
+
}
|
|
143
|
+
exports.helpTest = helpTest;
|
|
144
|
+
function helpStart() {
|
|
145
|
+
printBanner("start");
|
|
146
|
+
console.log("use " + ac.bold('lift start') + " to start running the local 'Express' server for local execution");
|
|
147
|
+
console.log("");
|
|
148
|
+
console.log("Functions may be run and tested via a local http server powered by express.");
|
|
149
|
+
console.log("By default, access is at " + ac.blue("http://localhost:8081"));
|
|
150
|
+
console.log("");
|
|
151
|
+
}
|
|
152
|
+
exports.helpStart = helpStart;
|
|
153
|
+
function helpStop() {
|
|
154
|
+
printBanner("stop");
|
|
155
|
+
console.log("use " + ac.bold('lift stop') + " to stop the running local 'Express' server");
|
|
156
|
+
console.log("");
|
|
157
|
+
console.log("This will shut down the local server");
|
|
158
|
+
console.log("");
|
|
159
|
+
}
|
|
160
|
+
exports.helpStop = helpStop;
|
|
161
|
+
function helpPackage() {
|
|
162
|
+
printBanner("package");
|
|
163
|
+
console.log("use " + ac.bold('lift package') + " to build and package functions for cloud deployment");
|
|
164
|
+
console.log("");
|
|
165
|
+
console.log("options such as " + ac.bold('--clean') + " may be specified to force a build prior to packaging");
|
|
166
|
+
console.log("");
|
|
167
|
+
console.log("Functions must be packaged into zip files before delivery to the cloud");
|
|
168
|
+
console.log("The package command handles this by first insuring a fresh build and then packaging the function and its module dependencies");
|
|
169
|
+
console.log(ac.grey("This action is invoked as part of deployment, and need not be invoked separately with this command"));
|
|
170
|
+
console.log("");
|
|
171
|
+
}
|
|
172
|
+
exports.helpPackage = helpPackage;
|
|
173
|
+
function helpDeploy() {
|
|
174
|
+
printBanner("deploy");
|
|
175
|
+
console.log("use " + ac.bold('lift deploy') + ac.grey.dim(' functionName') + " to package and deploy a function to the cloud");
|
|
176
|
+
console.log("use " + ac.bold('lift deploy') + " with no argument to deploy all functions to the cloud");
|
|
177
|
+
console.log("");
|
|
178
|
+
console.log("options such as " + ac.bold('--clean') + " may be specified to force a build prior to packaging");
|
|
179
|
+
console.log("the option " + ac.bold('--no-package') + " may be specified to deploy without repackaging");
|
|
180
|
+
console.log("");
|
|
181
|
+
console.log("functions will be built and packaged if necessary before deployment");
|
|
182
|
+
}
|
|
183
|
+
exports.helpDeploy = helpDeploy;
|
|
184
|
+
function helpPublish() {
|
|
185
|
+
printBanner("publish");
|
|
186
|
+
console.log("use " + ac.bold('lift publish') + " to publish the API to an accessible cloud endpoint");
|
|
187
|
+
console.log("");
|
|
188
|
+
console.log("The base url for the cloud API will be returned by this operation.");
|
|
189
|
+
console.log("");
|
|
190
|
+
console.log("Once published, updates to functions may be made with " + ac.bold('deploy') + " without needing to republish.");
|
|
191
|
+
console.log("Changes to webroot content or api definitions will require a new publish");
|
|
192
|
+
console.log("Each publish operation returns a new URL. The previous URL is invalid.");
|
|
193
|
+
}
|
|
194
|
+
exports.helpPublish = helpPublish;
|
|
195
|
+
function helpSettings() {
|
|
196
|
+
printBanner("settings");
|
|
197
|
+
console.log("use " + ac.bold('lift settings') + " to set or review the Cloud settings and configured options");
|
|
198
|
+
}
|
|
199
|
+
exports.helpSettings = helpSettings;
|
|
200
|
+
function helpDoctor() {
|
|
201
|
+
printBanner("doctor");
|
|
202
|
+
console.log("use " + ac.bold('lift doctor') + " to report the status of your MistLift installation and dependencies");
|
|
203
|
+
}
|
|
204
|
+
exports.helpDoctor = helpDoctor;
|
|
205
|
+
//# sourceMappingURL=help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** Handles the init command to set up a new project space
|
|
3
|
+
*
|
|
4
|
+
* necessary inputs:
|
|
5
|
+
* - path to project folder
|
|
6
|
+
*
|
|
7
|
+
* create folder if not exist
|
|
8
|
+
* populate with directory structure
|
|
9
|
+
* build
|
|
10
|
+
* functions
|
|
11
|
+
* tsccoinfig
|
|
12
|
+
* package.json
|
|
13
|
+
*
|
|
14
|
+
* npm i
|
|
15
|
+
* npm run build
|
|
16
|
+
*/
|
|
17
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
+
}
|
|
23
|
+
Object.defineProperty(o, k2, desc);
|
|
24
|
+
}) : (function(o, m, k, k2) {
|
|
25
|
+
if (k2 === undefined) k2 = k;
|
|
26
|
+
o[k2] = m[k];
|
|
27
|
+
}));
|
|
28
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
+
}) : function(o, v) {
|
|
31
|
+
o["default"] = v;
|
|
32
|
+
});
|
|
33
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
41
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
42
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
43
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
44
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
45
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
46
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.doInit = void 0;
|
|
51
|
+
const path = __importStar(require("path"));
|
|
52
|
+
const fs = __importStar(require("fs"));
|
|
53
|
+
const help_1 = require("./help");
|
|
54
|
+
const initQuestions_1 = require("./actions/initQuestions");
|
|
55
|
+
const setupPackageJson_1 = require("./actions/setupPackageJson");
|
|
56
|
+
function doInit(folder) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
if (!folder) {
|
|
59
|
+
(0, help_1.helpInit)();
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const cwd = process.cwd();
|
|
63
|
+
const refPath = path.isAbsolute(folder) ? path.normalize(folder) : path.normalize(path.join(cwd, folder));
|
|
64
|
+
console.log(refPath);
|
|
65
|
+
if (!fs.existsSync(refPath)) {
|
|
66
|
+
fs.mkdirSync(refPath, { recursive: true });
|
|
67
|
+
}
|
|
68
|
+
const funcDir = path.join(refPath, "functions");
|
|
69
|
+
if (!fs.existsSync(funcDir)) {
|
|
70
|
+
fs.mkdirSync(funcDir);
|
|
71
|
+
}
|
|
72
|
+
// make webroot with docs folder and placeholder yaml
|
|
73
|
+
const webrootDocs = path.join(refPath, "webroot", "docs");
|
|
74
|
+
if (!fs.existsSync(webrootDocs)) {
|
|
75
|
+
fs.mkdirSync(webrootDocs, { recursive: true });
|
|
76
|
+
const yaml = path.join(webrootDocs, 'apidoc.yaml');
|
|
77
|
+
fs.writeFileSync(yaml, '');
|
|
78
|
+
const swaggerSrcDir = path.join(__dirname, '..', '..', 'templateData');
|
|
79
|
+
fs.copyFileSync(path.join(swaggerSrcDir, 'swagger-ui.css'), path.join(webrootDocs, 'swagger-ui.css'));
|
|
80
|
+
fs.copyFileSync(path.join(swaggerSrcDir, 'swagger-ui-bundle.js'), path.join(webrootDocs, 'swagger-ui-bundle.js'));
|
|
81
|
+
fs.copyFileSync(path.join(swaggerSrcDir, 'swagger-ui-standalone-preset.js'), path.join(webrootDocs, 'swagger-ui-standalone-preset.js'));
|
|
82
|
+
}
|
|
83
|
+
yield (0, initQuestions_1.interrogateUserForPackageJsonSettings)(refPath);
|
|
84
|
+
yield (0, setupPackageJson_1.addPackageScripts)(refPath);
|
|
85
|
+
yield (0, setupPackageJson_1.installDevPackage)(refPath, "@types/node");
|
|
86
|
+
yield (0, setupPackageJson_1.installDevPackage)(refPath, "typescript");
|
|
87
|
+
yield (0, setupPackageJson_1.installDevPackage)(refPath, "tap");
|
|
88
|
+
yield (0, setupPackageJson_1.installPackage)(refPath, "@tremho/inverse-y");
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
exports.doInit = doInit;
|
|
92
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,2CAA4B;AAC5B,uCAAwB;AACxB,iCAAgC;AAEhC,2DAA8E;AAC9E,iEAAgG;AAEhG,SAAsB,MAAM,CACxB,MAAa;;QAGb,IAAG,CAAC,MAAM,EAAE,CAAC;YACT,IAAA,eAAQ,GAAE,CAAC;YACX,OAAO;QACX,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;QACzG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACpB,IAAG,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAA;QAC5C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAC/C,IAAG,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACzB,CAAC;QAED,qDAAqD;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QACzD,IAAG,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAA;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YACnD,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;YACtE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACtG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC,CAAC;YAClH,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,iCAAiC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,iCAAiC,CAAC,CAAC,CAAC;QAC5I,CAAC;QAED,MAAM,IAAA,qDAAqC,EAAC,OAAO,CAAC,CAAA;QACpD,MAAM,IAAA,oCAAiB,EAAC,OAAO,CAAC,CAAA;QAChC,MAAM,IAAA,oCAAiB,EAAC,OAAO,EAAC,aAAa,CAAC,CAAA;QAC9C,MAAM,IAAA,oCAAiB,EAAC,OAAO,EAAC,YAAY,CAAC,CAAA;QAC7C,MAAM,IAAA,oCAAiB,EAAC,OAAO,EAAC,KAAK,CAAC,CAAA;QACtC,MAAM,IAAA,iCAAc,EAAC,OAAO,EAAC,mBAAmB,CAAC,CAAA;IACrD,CAAC;CAAA;AAtCD,wBAsCC"}
|
|
@@ -0,0 +1,249 @@
|
|
|
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.doPackageAsync = void 0;
|
|
39
|
+
const path_1 = __importDefault(require("path"));
|
|
40
|
+
const fs_1 = __importDefault(require("fs"));
|
|
41
|
+
const pathResolve_1 = require("../lib/pathResolve");
|
|
42
|
+
const ac = __importStar(require("ansi-colors"));
|
|
43
|
+
const DirectoryUtils_1 = require("../lib/DirectoryUtils");
|
|
44
|
+
const LiftVersion_1 = require("../lib/LiftVersion");
|
|
45
|
+
const executeCommand_1 = require("../lib/executeCommand");
|
|
46
|
+
const fileCompare_1 = require("../lib/fileCompare");
|
|
47
|
+
const utils_1 = require("../lib/utils");
|
|
48
|
+
const build_1 = require("./build");
|
|
49
|
+
// test then package
|
|
50
|
+
function doPackageAsync(args) {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
const projectPaths = (0, pathResolve_1.resolvePaths)();
|
|
53
|
+
const workPath = path_1.default.join(projectPaths.basePath, '.package_temp');
|
|
54
|
+
if (fs_1.default.existsSync(workPath))
|
|
55
|
+
fs_1.default.rmSync(workPath, { recursive: true });
|
|
56
|
+
fs_1.default.mkdirSync(workPath);
|
|
57
|
+
const buildFunctionsPath = path_1.default.join(projectPaths.buildPath, 'functions');
|
|
58
|
+
const funcsToPackage = [];
|
|
59
|
+
const options = [];
|
|
60
|
+
for (let arg of args) {
|
|
61
|
+
if (arg.charAt(0) == '-') {
|
|
62
|
+
options.push(arg.toLowerCase());
|
|
63
|
+
}
|
|
64
|
+
else
|
|
65
|
+
funcsToPackage.push(arg);
|
|
66
|
+
}
|
|
67
|
+
let ret = yield (0, build_1.doBuildAsync)(args);
|
|
68
|
+
if (ret)
|
|
69
|
+
return ret;
|
|
70
|
+
if (!funcsToPackage.length) {
|
|
71
|
+
let firstDepth = 0;
|
|
72
|
+
(0, DirectoryUtils_1.recurseDirectory)(buildFunctionsPath, (filepath, stats) => {
|
|
73
|
+
let depth = filepath.split(path_1.default.sep).length;
|
|
74
|
+
if (!firstDepth)
|
|
75
|
+
firstDepth = depth;
|
|
76
|
+
if (stats.isDirectory() && depth == firstDepth) {
|
|
77
|
+
funcsToPackage.push(path_1.default.basename(filepath));
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
const all = [];
|
|
82
|
+
let error = 0;
|
|
83
|
+
for (let funcName of funcsToPackage) {
|
|
84
|
+
all.push(packageFunction(funcName));
|
|
85
|
+
}
|
|
86
|
+
return Promise.all(all).then(() => {
|
|
87
|
+
return error;
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
exports.doPackageAsync = doPackageAsync;
|
|
92
|
+
function packageFunction(funcName) {
|
|
93
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
94
|
+
const projectPaths = (0, pathResolve_1.resolvePaths)();
|
|
95
|
+
const buildFunctionsPath = path_1.default.join(projectPaths.buildPath, 'functions');
|
|
96
|
+
const all = [];
|
|
97
|
+
let error = 0;
|
|
98
|
+
let funcPath = path_1.default.join(buildFunctionsPath, funcName);
|
|
99
|
+
if (!fs_1.default.existsSync(funcPath)) {
|
|
100
|
+
console.error(ac.red.bold(`${funcName} does not exist`) + ", cannot package");
|
|
101
|
+
return -1;
|
|
102
|
+
}
|
|
103
|
+
const zipdir = path_1.default.join(projectPaths.basePath, 'MistLift_Zips');
|
|
104
|
+
const zipFile = path_1.default.join(zipdir, funcName + '.zip');
|
|
105
|
+
if (!fs_1.default.existsSync(zipdir)) {
|
|
106
|
+
fs_1.default.mkdirSync(zipdir);
|
|
107
|
+
}
|
|
108
|
+
let zfx = fs_1.default.existsSync(zipFile);
|
|
109
|
+
if (!zfx) {
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
if (!(0, fileCompare_1.isNewerFile)(funcPath, zipFile, ".js", ".zip")) {
|
|
113
|
+
return 0;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if (zfx)
|
|
117
|
+
fs_1.default.unlinkSync(zipFile);
|
|
118
|
+
const projectName = (0, LiftVersion_1.getProjectName)();
|
|
119
|
+
const projectVersion = (0, LiftVersion_1.getProjectVersion)();
|
|
120
|
+
const liftVersion = (0, LiftVersion_1.getLiftVersion)();
|
|
121
|
+
// the main package json that has all imports
|
|
122
|
+
const mainPkgJsonPath = path_1.default.join(projectPaths.packagePath);
|
|
123
|
+
const mainPkgSrc = fs_1.default.readFileSync(mainPkgJsonPath).toString();
|
|
124
|
+
const mainPkgJson = JSON.parse(mainPkgSrc);
|
|
125
|
+
const workPath = path_1.default.join(projectPaths.basePath, '.package_temp');
|
|
126
|
+
console.log(ac.green.italic("packaging ") + ac.green.bold(funcName));
|
|
127
|
+
// make a nominal package.json
|
|
128
|
+
const pkgjson = {
|
|
129
|
+
name: funcName,
|
|
130
|
+
description: "Lambda function " + funcName + " for " + projectName + ", created with MistLift " + liftVersion,
|
|
131
|
+
version: projectVersion,
|
|
132
|
+
main: "runmain.mjs",
|
|
133
|
+
scripts: {
|
|
134
|
+
test: "echo \"No Tests Defined\" && exit 1"
|
|
135
|
+
},
|
|
136
|
+
dependencies: {},
|
|
137
|
+
keywords: [],
|
|
138
|
+
author: "",
|
|
139
|
+
license: "ISC"
|
|
140
|
+
};
|
|
141
|
+
// find all the imports in the sources
|
|
142
|
+
const imports = findAllImports(funcPath);
|
|
143
|
+
pkgjson.dependencies = reconcileVersionImports(imports, mainPkgJson);
|
|
144
|
+
// - write out new package.json to workPath
|
|
145
|
+
// console.log("writing package.json", pkgjson)
|
|
146
|
+
fs_1.default.writeFileSync(path_1.default.join(workPath, 'package.json'), JSON.stringify(pkgjson, null, 2));
|
|
147
|
+
// - execute npm i at workpath, create node_modules
|
|
148
|
+
all.push((0, executeCommand_1.executeCommand)('npm i', [], workPath).then(() => {
|
|
149
|
+
// copy the lambda function
|
|
150
|
+
(0, DirectoryUtils_1.recurseDirectory)(funcPath, (filepath, stats) => {
|
|
151
|
+
if (filepath.substring(0, funcPath.length) == funcPath) {
|
|
152
|
+
const endpath = filepath.substring(funcPath.length);
|
|
153
|
+
if (endpath.toLowerCase().indexOf(`${funcName}-tests`.toLowerCase()) === -1) { // skip tests
|
|
154
|
+
const fromPath = path_1.default.join(funcPath, endpath);
|
|
155
|
+
const toPath = path_1.default.join(workPath, endpath);
|
|
156
|
+
if (stats.isDirectory() && !fs_1.default.existsSync(toPath)) {
|
|
157
|
+
fs_1.default.mkdirSync(toPath);
|
|
158
|
+
}
|
|
159
|
+
if (stats.isFile()) {
|
|
160
|
+
fs_1.default.copyFileSync(fromPath, toPath);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
// put a runmain.mjs into place
|
|
166
|
+
const templatePath = path_1.default.join(__dirname, '..', '..', 'templateData', 'function-runmain-mjs');
|
|
167
|
+
const runmainPath = path_1.default.join(workPath, 'runmain.mjs');
|
|
168
|
+
fs_1.default.writeFileSync(runmainPath, fs_1.default.readFileSync(templatePath));
|
|
169
|
+
// ClogInfo("Zipping...")
|
|
170
|
+
all.push((0, utils_1.FolderToZip)(workPath, zipFile));
|
|
171
|
+
// console.log("now zip it")
|
|
172
|
+
}));
|
|
173
|
+
return Promise.all(all).then(() => {
|
|
174
|
+
// remove temp folder when done
|
|
175
|
+
return error;
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
function findAllImports(folder) {
|
|
180
|
+
const imports = [];
|
|
181
|
+
if (fs_1.default.existsSync(folder)) {
|
|
182
|
+
(0, DirectoryUtils_1.recurseDirectory)(folder, (filepath, stats) => {
|
|
183
|
+
// console.log(`filepath = ${filepath}`);
|
|
184
|
+
if (filepath.indexOf("__files__") == -1) {
|
|
185
|
+
if (!stats.isDirectory()) {
|
|
186
|
+
const content = fs_1.default.readFileSync(filepath).toString();
|
|
187
|
+
for (const m of findImports(content)) {
|
|
188
|
+
// console.log(' import', m)
|
|
189
|
+
imports.push(m);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
return imports;
|
|
196
|
+
}
|
|
197
|
+
function findImports(content) {
|
|
198
|
+
const imports = [];
|
|
199
|
+
const regexp = /require\s*\(\s*["|'](.+)["|']/gm;
|
|
200
|
+
const matches = content.matchAll(regexp);
|
|
201
|
+
for (const m of matches) {
|
|
202
|
+
imports.push(m[1]);
|
|
203
|
+
}
|
|
204
|
+
return imports;
|
|
205
|
+
}
|
|
206
|
+
function reconcileVersionImports(imports, mainPkgJson) {
|
|
207
|
+
var _a, _b;
|
|
208
|
+
const dependencies = (_a = mainPkgJson.dependencies) !== null && _a !== void 0 ? _a : {};
|
|
209
|
+
const devDependencies = (_b = mainPkgJson.devDependencies) !== null && _b !== void 0 ? _b : {};
|
|
210
|
+
const builtins = [
|
|
211
|
+
"fs",
|
|
212
|
+
"path",
|
|
213
|
+
"process",
|
|
214
|
+
"crypto",
|
|
215
|
+
"http"
|
|
216
|
+
];
|
|
217
|
+
const depsOut = {};
|
|
218
|
+
for (let m of imports) {
|
|
219
|
+
let isDev = false;
|
|
220
|
+
let r = dependencies[m];
|
|
221
|
+
if (!r) {
|
|
222
|
+
isDev = true;
|
|
223
|
+
r = devDependencies[m];
|
|
224
|
+
}
|
|
225
|
+
if (r) {
|
|
226
|
+
if (depsOut[m] && depsOut[m] !== r) {
|
|
227
|
+
console.error(ac.red.bold(` Version mismatch on ${m}: ${r} vs ${depsOut[m]}`));
|
|
228
|
+
}
|
|
229
|
+
if (isDev) {
|
|
230
|
+
console.error(ac.magenta(` ${m} import is dev-only, not migrated`));
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
if (!depsOut[m])
|
|
234
|
+
console.log(ac.blue.dim(` ${m} exported as ${r}`));
|
|
235
|
+
depsOut[m] = r;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
// if not a builtin and not local..
|
|
240
|
+
if (builtins.indexOf(m) === -1) {
|
|
241
|
+
if (m.charAt(0) !== '.') {
|
|
242
|
+
console.error(ac.red.bold(" ERROR - Found no dependency reference for import"), m);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return depsOut;
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/commands/package.ts"],"names":[],"mappings":"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"}
|