@whook/gcp-functions 15.0.0 → 16.0.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 +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +26 -27
- package/dist/index.js.map +1 -1
- package/dist/services/_autoload.d.ts +6 -5
- package/dist/services/_autoload.js +3 -3
- package/dist/services/_autoload.js.map +1 -1
- package/package.json +12 -11
- package/src/index.ts +35 -50
- package/src/services/_autoload.ts +3 -7
package/README.md
CHANGED
|
@@ -35,7 +35,7 @@ Add the plugin to the `src/index.ts` main file:
|
|
|
35
35
|
|
|
36
36
|
$.register(
|
|
37
37
|
constant('WHOOK_PLUGINS', [
|
|
38
|
-
|
|
38
|
+
...WHOOK_DEFAULT_PLUGINS,
|
|
39
39
|
+ '@whook/gcp-functions',
|
|
40
40
|
'@whook/cors',
|
|
41
41
|
]),
|
|
@@ -147,7 +147,7 @@ const CONFIG: AppConfig = {
|
|
|
147
147
|
// ...
|
|
148
148
|
+ COMPILER_OPTIONS: {
|
|
149
149
|
+ externalModules: [],
|
|
150
|
-
+ target: '
|
|
150
|
+
+ target: '20',
|
|
151
151
|
+ },
|
|
152
152
|
};
|
|
153
153
|
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import util from 'util';
|
|
3
|
-
import path from 'path';
|
|
4
|
-
import { mkdirp } from 'mkdirp';
|
|
5
1
|
import { argv, exit, stderr } from 'node:process';
|
|
2
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { promisify } from 'node:util';
|
|
4
|
+
import { join, relative } from 'node:path';
|
|
5
|
+
import { pathToFileURL } from 'node:url';
|
|
6
|
+
import { mkdirp } from 'mkdirp';
|
|
6
7
|
import cpr from 'cpr';
|
|
7
8
|
import { printStackTrace, YError } from 'yerror';
|
|
8
9
|
import { Knifecycle, constant, initInitializerBuilder } from 'knifecycle';
|
|
@@ -12,11 +13,9 @@ import { dereferenceOpenAPIOperations, getOpenAPIOperations, } from '@whook/http
|
|
|
12
13
|
export const DEFAULT_BUILD_PARALLELISM = 10;
|
|
13
14
|
export const DEFAULT_BUILD_INITIALIZER_PATH_MAP = {
|
|
14
15
|
...BASE_DEFAULT_BUILD_INITIALIZER_PATH_MAP,
|
|
15
|
-
log: '@whook/gcp-functions/dist/services/log',
|
|
16
|
+
log: '@whook/gcp-functions/dist/services/log.js',
|
|
16
17
|
};
|
|
17
|
-
const
|
|
18
|
-
const writeFileAsync = util.promisify(fs.writeFile);
|
|
19
|
-
const cprAsync = util.promisify(cpr);
|
|
18
|
+
const cprAsync = promisify(cpr);
|
|
20
19
|
export async function prepareBuildEnvironment($ = new Knifecycle()) {
|
|
21
20
|
$.register(constant('INITIALIZER_PATH_MAP', DEFAULT_BUILD_INITIALIZER_PATH_MAP));
|
|
22
21
|
$.register(initInitializerBuilder);
|
|
@@ -99,16 +98,16 @@ async function buildAnyLambda({ APP_ENV, PROJECT_DIR, compiler, log, buildInitia
|
|
|
99
98
|
const finalEntryPoint = (sourceOperationId ? sourceOperationId : operationId) +
|
|
100
99
|
((operation['x-whook'] || {}).suffix || '');
|
|
101
100
|
log('warning', `🏗 - Building ${operationType} "${finalEntryPoint}"...`);
|
|
102
|
-
const lambdaPath =
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
]);
|
|
101
|
+
const lambdaPath = join(PROJECT_DIR, 'builds', APP_ENV, finalEntryPoint);
|
|
102
|
+
const srcPath = join(PROJECT_DIR, 'src');
|
|
103
|
+
const srcRelativePath = relative(lambdaPath, srcPath);
|
|
104
|
+
const initializerContent = (await buildInitializer([`OPERATION_HANDLER_${finalEntryPoint}`])).replaceAll(pathToFileURL(srcPath).toString(), srcRelativePath);
|
|
106
105
|
const indexContent = await buildLambdaIndex(`OPERATION_HANDLER_${finalEntryPoint}`);
|
|
107
106
|
await mkdirp(lambdaPath);
|
|
108
107
|
await Promise.all([
|
|
109
108
|
copyStaticFiles({ PROJECT_DIR, log }, lambdaPath, whookConfig.staticFiles || []),
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
ensureFile({ log }, join(lambdaPath, 'initialize.js'), initializerContent),
|
|
110
|
+
ensureFile({ log }, join(lambdaPath, 'main.js'), indexContent),
|
|
112
111
|
]);
|
|
113
112
|
await buildFinalLambda({ compiler, log }, lambdaPath, whookConfig);
|
|
114
113
|
}
|
|
@@ -134,21 +133,21 @@ async function buildFinalLambda({ compiler, log }, lambdaPath, whookConfig) {
|
|
|
134
133
|
const entryPoint = `${lambdaPath}/main.js`;
|
|
135
134
|
const { extension, contents, mappings } = await compiler(entryPoint, whookConfig.compilerOptions);
|
|
136
135
|
await Promise.all([
|
|
137
|
-
|
|
136
|
+
ensureFile({ log }, join(lambdaPath, `/index${extension}`), contents),
|
|
138
137
|
mappings
|
|
139
|
-
?
|
|
138
|
+
? ensureFile({ log }, join(lambdaPath, `/index${extension}.map`), mappings)
|
|
140
139
|
: Promise.resolve(),
|
|
141
140
|
]);
|
|
142
141
|
}
|
|
143
142
|
async function copyStaticFiles({ PROJECT_DIR, log }, lambdaPath, staticFiles = []) {
|
|
144
|
-
await Promise.all(staticFiles.map(async (staticFile) => await copyFiles({ log },
|
|
143
|
+
await Promise.all(staticFiles.map(async (staticFile) => await copyFiles({ log }, join(PROJECT_DIR, 'node_modules', staticFile), join(lambdaPath, 'node_modules', staticFile))));
|
|
145
144
|
}
|
|
146
145
|
async function copyFiles({ log }, source, destination) {
|
|
147
|
-
let theError;
|
|
146
|
+
let theError = undefined;
|
|
148
147
|
try {
|
|
149
148
|
await mkdirp(destination);
|
|
150
|
-
const data = await
|
|
151
|
-
await
|
|
149
|
+
const data = await readFile(source);
|
|
150
|
+
await ensureFile({ log }, destination, data.toString());
|
|
152
151
|
}
|
|
153
152
|
catch (err) {
|
|
154
153
|
theError = err;
|
|
@@ -162,19 +161,19 @@ async function copyFiles({ log }, source, destination) {
|
|
|
162
161
|
});
|
|
163
162
|
}
|
|
164
163
|
}
|
|
165
|
-
async function
|
|
164
|
+
async function ensureFile({ log }, path, content) {
|
|
166
165
|
try {
|
|
167
|
-
const oldContent = await
|
|
166
|
+
const oldContent = (await readFile(path)).toString();
|
|
168
167
|
if (oldContent === content) {
|
|
169
|
-
log('debug',
|
|
168
|
+
log('debug', `🗀 - Ignore unchanged file: "${path}".`);
|
|
170
169
|
return;
|
|
171
170
|
}
|
|
172
171
|
}
|
|
173
172
|
catch (err) {
|
|
174
|
-
log('debug',
|
|
175
|
-
return await
|
|
173
|
+
log('debug', `🗀 - Write new file: "${path}".`);
|
|
174
|
+
return await writeFile(path, content);
|
|
176
175
|
}
|
|
177
|
-
log('debug',
|
|
178
|
-
return await
|
|
176
|
+
log('debug', `🗀 - Write changed file: "${path}".`);
|
|
177
|
+
return await writeFile(path, content);
|
|
179
178
|
}
|
|
180
179
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EACL,kCAAkC,IAAI,uCAAuC,EAC7E,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,mBAAmB,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAiB5B,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAC5C,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,GAAG,uCAAuC;IAC1C,GAAG,EAAE,2CAA2C;CACjD,CAAC;AAaF,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAIR,CAAC;AAEvB,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAO,IAAI,UAAU,EAAO;IAE5B,CAAC,CAAC,QAAQ,CACR,QAAQ,CAAC,sBAAsB,EAAE,kCAAkC,CAAC,CACrE,CAAC;IACF,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACnC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAChC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAE1C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,wBAAwD;IAExD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,GAAG,MAAM,wBAAwB,EAAE,CAAC;QAC3C,MAAM,EACJ,OAAO,EACP,iBAAiB,EACjB,WAAW,EACX,QAAQ,EACR,GAAG,EACH,SAAS,EACT,GAAG,EACH,gBAAgB,GACjB,GAQG,MAAM,CAAC,CAAC,GAAG,CAAC;YACd,SAAS;YACT,oBAAoB;YACpB,aAAa;YACb,SAAS;YACT,UAAU;YACV,KAAK;YACL,WAAW;YACX,KAAK;YACL,kBAAkB;SACnB,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,EAAE,kDAAkD,CAAC,CAAC;QAEhE,MAAM,UAAU,GAAG,CACjB,MAAM,4BAA4B,CAChC,GAAG,EACH,oBAAoB,CAAqC,GAAG,CAAC,CAC9D,CACF,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE;YACrB,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,iBAAiB,GACrB,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC;gBAEjE,OAAO,CACL,WAAW,KAAK,SAAS,CAAC,WAAW;oBACrC,WAAW,KAAK,iBAAiB,CAClC,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,SAAS,EAAE,QAAQ,UAAU,CAAC,MAAM,yBAAyB,CAAC,CAAC;QAEnE,MAAM,iBAAiB,CACrB;YACE,OAAO;YACP,iBAAiB,EAAE,iBAAiB,IAAI,yBAAyB;YACjE,WAAW;YACX,QAAQ;YACR,GAAG;YACH,SAAS;YACT,gBAAgB;SACjB,EACD,UAAU,CACX,CAAC;QACF,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CACV,kCAAkC,eAAe,CAAC,GAAY,CAAC,EAAE,CAClE,CAAC;QACF,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,EACE,OAAO,EACP,iBAAiB,EACjB,WAAW,EACX,QAAQ,EACR,GAAG,EACH,SAAS,EACT,gBAAgB,GAQjB,EACD,UAAgE;IAEhE,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE3D,MAAM,OAAO,CAAC,GAAG,CACf,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CACvD,cAAc,CACZ;QACE,OAAO;QACP,WAAW;QACX,QAAQ;QACR,GAAG;QACH,gBAAgB;KACjB,EACD,SAAS,CACV,CACF,CACF,CAAC;IAEF,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1B,GAAG,CAAC,MAAM,EAAE,QAAQ,cAAc,CAAC,MAAM,mBAAmB,CAAC,CAAC;QAC9D,OAAO,iBAAiB,CACtB;YACE,OAAO;YACP,iBAAiB;YACjB,WAAW;YACX,QAAQ;YACR,GAAG;YACH,SAAS;YACT,gBAAgB;SACjB,EACD,cAAc,CACf,CAAC;IACJ,CAAC;IACD,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,EACE,OAAO,EACP,WAAW,EACX,QAAQ,EACR,GAAG,EACH,gBAAgB,GAOjB,EACD,SAA6D;IAE7D,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;IAElC,IAAI,CAAC;QACH,MAAM,WAAW,GAAuC,SAAS,CAC/D,SAAS,CACV,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,IAAI,MAAM,CAAC;QACjD,MAAM,iBAAiB,GAAG,WAAW,CAAC,iBAAiB,CAAC;QACxD,MAAM,eAAe,GACnB,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC;YACrD,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAE9C,GAAG,CAAC,SAAS,EAAE,iBAAiB,aAAa,KAAK,eAAe,MAAM,CAAC,CAAC;QAEzE,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEtD,MAAM,kBAAkB,GAAG,CACzB,MAAM,gBAAgB,CAAC,CAAC,qBAAqB,eAAe,EAAE,CAAC,CAAC,CACjE,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,eAAe,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,MAAM,gBAAgB,CACzC,qBAAqB,eAAe,EAAE,CACvC,CAAC;QAEF,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QACzB,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,eAAe,CACb,EAAE,WAAW,EAAE,GAAG,EAAE,EACpB,UAAU,EACV,WAAW,CAAC,WAAW,IAAI,EAAE,CAC9B;YACD,UAAU,CACR,EAAE,GAAG,EAAE,EACP,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EACjC,kBAAkB,CACnB;YACD,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC;SAC/D,CAAC,CAAC;QACH,MAAM,gBAAgB,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,OAAO,EAAE,mBAAmB,WAAW,MAAM,CAAC,CAAC;QACnD,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,GAAY,CAAC,CAAC,CAAC;QAClD,MAAM,MAAM,CAAC,IAAI,CAAC,GAAY,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAY;IAC1C,OAAO;;;;;;;kCAOyB,IAAI;;CAErC,CAAC;AACF,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,EAAE,QAAQ,EAAE,GAAG,EAAuD,EACtE,UAAkB,EAClB,WAA+C;IAE/C,MAAM,UAAU,GAAG,GAAG,UAAU,UAAU,CAAC;IAC3C,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CACtD,UAAU,EACV,WAAW,CAAC,eAAe,CAC5B,CAAC;IAEF,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC;QACrE,QAAQ;YACN,CAAC,CAAC,UAAU,CACR,EAAE,GAAG,EAAE,EACP,IAAI,CAAC,UAAU,EAAE,SAAS,SAAS,MAAM,CAAC,EAC1C,QAAQ,CACT;YACH,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;KACtB,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,EAAE,WAAW,EAAE,GAAG,EAA4C,EAC9D,UAAkB,EAClB,cAAwB,EAAE;IAE1B,MAAM,OAAO,CAAC,GAAG,CACf,WAAW,CAAC,GAAG,CACb,KAAK,EAAE,UAAU,EAAE,EAAE,CACnB,MAAM,SAAS,CACb,EAAE,GAAG,EAAE,EACP,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,EAC7C,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,CAC7C,CACJ,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,EAAE,GAAG,EAAuB,EAC5B,MAAc,EACd,WAAmB;IAEnB,IAAI,QAAQ,GAAuB,SAAS,CAAC;IAE7C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAE1B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEpC,MAAM,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,QAAQ,GAAG,GAAa,CAAC;IAC3B,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,QAAQ,CAAC;QACjB,CAAC;QACD,MAAM,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE;YAClC,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,EAAE,GAAG,EAAuB,EAC5B,IAAY,EACZ,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAErD,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YAC3B,GAAG,CAAC,OAAO,EAAE,gCAAgC,IAAI,IAAI,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,OAAO,EAAE,yBAAyB,IAAI,IAAI,CAAC,CAAC;QAChD,OAAO,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,GAAG,CAAC,OAAO,EAAE,6BAA6B,IAAI,IAAI,CAAC,CAAC;IACpD,OAAO,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
1
2
|
import { Knifecycle } from 'knifecycle';
|
|
2
3
|
import type { Injector, Autoloader, Initializer, Dependencies, Service } from 'knifecycle';
|
|
3
4
|
import type { WhookBuildConstantsService } from '@whook/whook';
|
|
4
|
-
import type { LogService
|
|
5
|
+
import type { LogService } from 'common-services';
|
|
5
6
|
import type { WhookAPIOperationGCPFunctionConfig } from '../index.js';
|
|
6
7
|
export type WhookGoogleFunctionsAutoloadDependencies = {
|
|
7
8
|
BUILD_CONSTANTS?: WhookBuildConstantsService;
|
|
8
9
|
$injector: Injector<Service>;
|
|
9
10
|
$instance: Knifecycle;
|
|
10
|
-
resolve: ResolveService;
|
|
11
11
|
log?: LogService;
|
|
12
12
|
};
|
|
13
13
|
export declare const GCP_WRAPPERS: Record<Required<WhookAPIOperationGCPFunctionConfig>['type'], {
|
|
@@ -31,15 +31,16 @@ export declare const GCP_WRAPPERS: Record<Required<WhookAPIOperationGCPFunctionC
|
|
|
31
31
|
* A promise of an object containing the reshaped env vars.
|
|
32
32
|
*/
|
|
33
33
|
declare const _default: import("knifecycle").ServiceInitializer<Dependencies<any> & import("@whook/whook").WhookWrappersConfig & {
|
|
34
|
-
PROJECT_SRC: string;
|
|
35
34
|
APP_CONFIG?: import("@whook/whook").WhookAutoloadConfig | undefined;
|
|
36
35
|
INITIALIZER_PATH_MAP?: import("@whook/whook").WhookInitializerMap | undefined;
|
|
37
|
-
|
|
36
|
+
WHOOK_PLUGINS?: import("@whook/whook").WhookPluginName[] | undefined;
|
|
37
|
+
WHOOK_RESOLVED_PLUGINS: import("@whook/whook/dist/services/WHOOK_RESOLVED_PLUGINS.js").WhookResolvedPluginsService;
|
|
38
38
|
$injector: Injector<any>;
|
|
39
39
|
importer: import("common-services").ImporterService<{
|
|
40
40
|
default: Initializer<any, Dependencies>;
|
|
41
41
|
}>;
|
|
42
|
-
resolve: ResolveService;
|
|
42
|
+
resolve: import("common-services").ResolveService;
|
|
43
|
+
access?: typeof import("fs/promises").access | undefined;
|
|
43
44
|
log?: LogService | undefined;
|
|
44
45
|
}, Autoloader<Initializer<unknown, Dependencies>>>;
|
|
45
46
|
export default _default;
|
|
@@ -11,7 +11,7 @@ export const GCP_WRAPPERS = {
|
|
|
11
11
|
initializer: initWrapHandlerForGoogleHTTPFunction,
|
|
12
12
|
},
|
|
13
13
|
};
|
|
14
|
-
const initializerWrapper = (async ({ BUILD_CONSTANTS = {}, $injector, $instance,
|
|
14
|
+
const initializerWrapper = (async ({ BUILD_CONSTANTS = {}, $injector, $instance, log = noop, }, $autoload) => {
|
|
15
15
|
let API;
|
|
16
16
|
let OPERATION_APIS;
|
|
17
17
|
const getAPIOperation = (() => {
|
|
@@ -100,7 +100,7 @@ const initializerWrapper = (async ({ BUILD_CONSTANTS = {}, $injector, $instance,
|
|
|
100
100
|
initializer: alsoInject([
|
|
101
101
|
`OPERATION_API>${serviceName.replace('OPERATION_WRAPPER_', 'OPERATION_API_')}`,
|
|
102
102
|
], GCP_WRAPPERS[type].initializer),
|
|
103
|
-
path:
|
|
103
|
+
path: `@whook/gcp-functions/dist/wrappers/${GCP_WRAPPERS[type].name}.js`,
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
106
|
if (serviceName.startsWith('OPERATION_HANDLER_')) {
|
|
@@ -112,7 +112,7 @@ const initializerWrapper = (async ({ BUILD_CONSTANTS = {}, $injector, $instance,
|
|
|
112
112
|
`mainWrapper>OPERATION_WRAPPER_${serviceName.replace('OPERATION_HANDLER_', '')}`,
|
|
113
113
|
`baseHandler>${operationId}`,
|
|
114
114
|
], initHandler),
|
|
115
|
-
path:
|
|
115
|
+
path: '@whook/gcp-functions/dist/services/HANDLER.js',
|
|
116
116
|
};
|
|
117
117
|
}
|
|
118
118
|
if (BUILD_CONSTANTS[serviceName]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_autoload.js","sourceRoot":"","sources":["../../src/services/_autoload.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EACL,aAAa,EACb,oBAAoB,EAEpB,eAAe,EACf,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,oCAAoC,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"_autoload.js","sourceRoot":"","sources":["../../src/services/_autoload.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"name": "@whook/gcp-functions",
|
|
32
|
-
"version": "
|
|
32
|
+
"version": "16.0.1",
|
|
33
33
|
"description": "Build and deploy to GCP Cloud Functions with Whook.",
|
|
34
34
|
"type": "module",
|
|
35
35
|
"main": "dist/index.js",
|
|
@@ -49,20 +49,20 @@
|
|
|
49
49
|
},
|
|
50
50
|
"homepage": "https://github.com/nfroidure/whook",
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@whook/cors": "^
|
|
53
|
-
"@whook/http-router": "^
|
|
54
|
-
"@whook/whook": "^
|
|
52
|
+
"@whook/cors": "^16.0.1",
|
|
53
|
+
"@whook/http-router": "^16.0.0",
|
|
54
|
+
"@whook/whook": "^16.0.1",
|
|
55
55
|
"ajv": "^8.12.0",
|
|
56
56
|
"ajv-formats": "^2.1.1",
|
|
57
|
-
"application-services": "^
|
|
57
|
+
"application-services": "^6.0.0",
|
|
58
58
|
"camelcase": "^8.0.0",
|
|
59
|
-
"common-services": "^
|
|
59
|
+
"common-services": "^16.0.1",
|
|
60
60
|
"cpr": "3.0.1",
|
|
61
61
|
"knifecycle": "^17.0.1",
|
|
62
62
|
"mkdirp": "^3.0.1",
|
|
63
63
|
"openapi-types": "^12.1.3",
|
|
64
64
|
"qs": "^6.11.2",
|
|
65
|
-
"strict-qs": "^8.0.
|
|
65
|
+
"strict-qs": "^8.0.2",
|
|
66
66
|
"yerror": "^8.0.0"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
@@ -78,15 +78,15 @@
|
|
|
78
78
|
"eslint-plugin-prettier": "^5.0.1",
|
|
79
79
|
"jest": "^29.7.0",
|
|
80
80
|
"jsdoc-to-markdown": "^8.0.0",
|
|
81
|
-
"metapak": "^
|
|
82
|
-
"metapak-nfroidure": "
|
|
81
|
+
"metapak": "^6.0.0",
|
|
82
|
+
"metapak-nfroidure": "18.0.0",
|
|
83
83
|
"prettier": "^3.0.3",
|
|
84
84
|
"rimraf": "^5.0.5",
|
|
85
85
|
"typescript": "^5.2.2"
|
|
86
86
|
},
|
|
87
87
|
"contributors": [],
|
|
88
88
|
"engines": {
|
|
89
|
-
"node": ">=
|
|
89
|
+
"node": ">=20.11.1"
|
|
90
90
|
},
|
|
91
91
|
"files": [
|
|
92
92
|
"dist",
|
|
@@ -163,6 +163,7 @@
|
|
|
163
163
|
"cli": "env NODE_ENV=${NODE_ENV:-cli}",
|
|
164
164
|
"cover": "npm run jest -- --coverage",
|
|
165
165
|
"doc": "echo \"# API\" > API.md; jsdoc2md 'dist/**/*.js' >> API.md && git add API.md",
|
|
166
|
+
"format": "npm run prettier",
|
|
166
167
|
"jest": "NODE_OPTIONS=--experimental-vm-modules NODE_ENV=test jest",
|
|
167
168
|
"lint": "eslint 'src/**/*.ts'",
|
|
168
169
|
"metapak": "metapak",
|
|
@@ -171,5 +172,5 @@
|
|
|
171
172
|
"test": "npm run jest",
|
|
172
173
|
"type-check": "tsc --pretty --noEmit"
|
|
173
174
|
},
|
|
174
|
-
"gitHead": "
|
|
175
|
+
"gitHead": "be477f173cb376bfd3668a5b59ebb1da473d8956"
|
|
175
176
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import util from 'util';
|
|
3
|
-
import path from 'path';
|
|
4
|
-
import { mkdirp } from 'mkdirp';
|
|
5
1
|
import { argv, exit, stderr } from 'node:process';
|
|
2
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { promisify } from 'node:util';
|
|
4
|
+
import { join, relative } from 'node:path';
|
|
5
|
+
import { pathToFileURL } from 'node:url';
|
|
6
|
+
import { mkdirp } from 'mkdirp';
|
|
6
7
|
import cpr from 'cpr';
|
|
7
8
|
import { printStackTrace, YError } from 'yerror';
|
|
8
9
|
import { Knifecycle, constant, initInitializerBuilder } from 'knifecycle';
|
|
@@ -34,7 +35,7 @@ import type { CprOptions } from 'cpr';
|
|
|
34
35
|
export const DEFAULT_BUILD_PARALLELISM = 10;
|
|
35
36
|
export const DEFAULT_BUILD_INITIALIZER_PATH_MAP = {
|
|
36
37
|
...BASE_DEFAULT_BUILD_INITIALIZER_PATH_MAP,
|
|
37
|
-
log: '@whook/gcp-functions/dist/services/log',
|
|
38
|
+
log: '@whook/gcp-functions/dist/services/log.js',
|
|
38
39
|
};
|
|
39
40
|
|
|
40
41
|
export type WhookGCPBuildConfig = {
|
|
@@ -48,16 +49,7 @@ export type WhookAPIOperationGCPFunctionConfig = {
|
|
|
48
49
|
suffix?: string;
|
|
49
50
|
};
|
|
50
51
|
|
|
51
|
-
const
|
|
52
|
-
path: string,
|
|
53
|
-
encoding: string,
|
|
54
|
-
) => Promise<string>;
|
|
55
|
-
const writeFileAsync = util.promisify(fs.writeFile) as (
|
|
56
|
-
path: string,
|
|
57
|
-
content: string,
|
|
58
|
-
encoding: string,
|
|
59
|
-
) => Promise<void>;
|
|
60
|
-
const cprAsync = util.promisify(cpr) as (
|
|
52
|
+
const cprAsync = promisify(cpr) as (
|
|
61
53
|
source: string,
|
|
62
54
|
destination: string,
|
|
63
55
|
options: CprOptions,
|
|
@@ -240,16 +232,13 @@ async function buildAnyLambda(
|
|
|
240
232
|
|
|
241
233
|
log('warning', `🏗 - Building ${operationType} "${finalEntryPoint}"...`);
|
|
242
234
|
|
|
243
|
-
const lambdaPath =
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
APP_ENV,
|
|
247
|
-
finalEntryPoint,
|
|
248
|
-
);
|
|
235
|
+
const lambdaPath = join(PROJECT_DIR, 'builds', APP_ENV, finalEntryPoint);
|
|
236
|
+
const srcPath = join(PROJECT_DIR, 'src');
|
|
237
|
+
const srcRelativePath = relative(lambdaPath, srcPath);
|
|
249
238
|
|
|
250
|
-
const initializerContent =
|
|
251
|
-
`OPERATION_HANDLER_${finalEntryPoint}
|
|
252
|
-
|
|
239
|
+
const initializerContent = (
|
|
240
|
+
await buildInitializer([`OPERATION_HANDLER_${finalEntryPoint}`])
|
|
241
|
+
).replaceAll(pathToFileURL(srcPath).toString(), srcRelativePath);
|
|
253
242
|
const indexContent = await buildLambdaIndex(
|
|
254
243
|
`OPERATION_HANDLER_${finalEntryPoint}`,
|
|
255
244
|
);
|
|
@@ -261,12 +250,12 @@ async function buildAnyLambda(
|
|
|
261
250
|
lambdaPath,
|
|
262
251
|
whookConfig.staticFiles || [],
|
|
263
252
|
),
|
|
264
|
-
|
|
253
|
+
ensureFile(
|
|
265
254
|
{ log },
|
|
266
|
-
|
|
255
|
+
join(lambdaPath, 'initialize.js'),
|
|
267
256
|
initializerContent,
|
|
268
257
|
),
|
|
269
|
-
|
|
258
|
+
ensureFile({ log }, join(lambdaPath, 'main.js'), indexContent),
|
|
270
259
|
]);
|
|
271
260
|
await buildFinalLambda({ compiler, log }, lambdaPath, whookConfig);
|
|
272
261
|
} catch (err) {
|
|
@@ -301,18 +290,12 @@ async function buildFinalLambda(
|
|
|
301
290
|
);
|
|
302
291
|
|
|
303
292
|
await Promise.all([
|
|
304
|
-
|
|
305
|
-
{ log },
|
|
306
|
-
path.join(lambdaPath, `/index${extension}`),
|
|
307
|
-
contents,
|
|
308
|
-
'utf-8',
|
|
309
|
-
),
|
|
293
|
+
ensureFile({ log }, join(lambdaPath, `/index${extension}`), contents),
|
|
310
294
|
mappings
|
|
311
|
-
?
|
|
295
|
+
? ensureFile(
|
|
312
296
|
{ log },
|
|
313
|
-
|
|
297
|
+
join(lambdaPath, `/index${extension}.map`),
|
|
314
298
|
mappings,
|
|
315
|
-
'utf-8',
|
|
316
299
|
)
|
|
317
300
|
: Promise.resolve(),
|
|
318
301
|
]);
|
|
@@ -328,8 +311,8 @@ async function copyStaticFiles(
|
|
|
328
311
|
async (staticFile) =>
|
|
329
312
|
await copyFiles(
|
|
330
313
|
{ log },
|
|
331
|
-
|
|
332
|
-
|
|
314
|
+
join(PROJECT_DIR, 'node_modules', staticFile),
|
|
315
|
+
join(lambdaPath, 'node_modules', staticFile),
|
|
333
316
|
),
|
|
334
317
|
),
|
|
335
318
|
);
|
|
@@ -340,13 +323,16 @@ async function copyFiles(
|
|
|
340
323
|
source: string,
|
|
341
324
|
destination: string,
|
|
342
325
|
): Promise<void> {
|
|
343
|
-
let theError;
|
|
326
|
+
let theError: YError | undefined = undefined;
|
|
327
|
+
|
|
344
328
|
try {
|
|
345
329
|
await mkdirp(destination);
|
|
346
|
-
|
|
347
|
-
|
|
330
|
+
|
|
331
|
+
const data = await readFile(source);
|
|
332
|
+
|
|
333
|
+
await ensureFile({ log }, destination, data.toString());
|
|
348
334
|
} catch (err) {
|
|
349
|
-
theError = err;
|
|
335
|
+
theError = err as YError;
|
|
350
336
|
}
|
|
351
337
|
if (theError) {
|
|
352
338
|
if ('EISDIR' !== theError.code) {
|
|
@@ -358,23 +344,22 @@ async function copyFiles(
|
|
|
358
344
|
}
|
|
359
345
|
}
|
|
360
346
|
|
|
361
|
-
async function
|
|
347
|
+
async function ensureFile(
|
|
362
348
|
{ log }: { log: LogService },
|
|
363
349
|
path: string,
|
|
364
350
|
content: string,
|
|
365
|
-
encoding = 'utf-8',
|
|
366
351
|
): Promise<void> {
|
|
367
352
|
try {
|
|
368
|
-
const oldContent = await
|
|
353
|
+
const oldContent = (await readFile(path)).toString();
|
|
369
354
|
|
|
370
355
|
if (oldContent === content) {
|
|
371
|
-
log('debug',
|
|
356
|
+
log('debug', `🗀 - Ignore unchanged file: "${path}".`);
|
|
372
357
|
return;
|
|
373
358
|
}
|
|
374
359
|
} catch (err) {
|
|
375
|
-
log('debug',
|
|
376
|
-
return await
|
|
360
|
+
log('debug', `🗀 - Write new file: "${path}".`);
|
|
361
|
+
return await writeFile(path, content);
|
|
377
362
|
}
|
|
378
|
-
log('debug',
|
|
379
|
-
return await
|
|
363
|
+
log('debug', `🗀 - Write changed file: "${path}".`);
|
|
364
|
+
return await writeFile(path, content);
|
|
380
365
|
}
|
|
@@ -25,7 +25,7 @@ import type {
|
|
|
25
25
|
} from 'knifecycle';
|
|
26
26
|
import type { WhookBuildConstantsService } from '@whook/whook';
|
|
27
27
|
import type { WhookRawOperation } from '@whook/http-router';
|
|
28
|
-
import type { LogService
|
|
28
|
+
import type { LogService } from 'common-services';
|
|
29
29
|
import type { OpenAPIV3 } from 'openapi-types';
|
|
30
30
|
import type { WhookAPIOperationGCPFunctionConfig } from '../index.js';
|
|
31
31
|
|
|
@@ -33,7 +33,6 @@ export type WhookGoogleFunctionsAutoloadDependencies = {
|
|
|
33
33
|
BUILD_CONSTANTS?: WhookBuildConstantsService;
|
|
34
34
|
$injector: Injector<Service>;
|
|
35
35
|
$instance: Knifecycle;
|
|
36
|
-
resolve: ResolveService;
|
|
37
36
|
log?: LogService;
|
|
38
37
|
};
|
|
39
38
|
|
|
@@ -58,7 +57,6 @@ const initializerWrapper: ServiceInitializerWrapper<
|
|
|
58
57
|
BUILD_CONSTANTS = {},
|
|
59
58
|
$injector,
|
|
60
59
|
$instance,
|
|
61
|
-
resolve,
|
|
62
60
|
log = noop,
|
|
63
61
|
}: WhookGoogleFunctionsAutoloadDependencies,
|
|
64
62
|
$autoload: Autoloader<Initializer<Dependencies, Service>>,
|
|
@@ -198,9 +196,7 @@ const initializerWrapper: ServiceInitializerWrapper<
|
|
|
198
196
|
],
|
|
199
197
|
GCP_WRAPPERS[type].initializer as any,
|
|
200
198
|
) as any,
|
|
201
|
-
path:
|
|
202
|
-
`@whook/gcp-functions/dist/wrappers/${GCP_WRAPPERS[type].name}`,
|
|
203
|
-
),
|
|
199
|
+
path: `@whook/gcp-functions/dist/wrappers/${GCP_WRAPPERS[type].name}.js`,
|
|
204
200
|
};
|
|
205
201
|
}
|
|
206
202
|
|
|
@@ -220,7 +216,7 @@ const initializerWrapper: ServiceInitializerWrapper<
|
|
|
220
216
|
],
|
|
221
217
|
initHandler,
|
|
222
218
|
) as any,
|
|
223
|
-
path:
|
|
219
|
+
path: '@whook/gcp-functions/dist/services/HANDLER.js',
|
|
224
220
|
};
|
|
225
221
|
}
|
|
226
222
|
|