@whook/gcp-functions 13.0.0 → 13.1.2

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.
Files changed (38) hide show
  1. package/README.md +76 -28
  2. package/dist/commands/testHTTPFunction.d.ts +1 -1
  3. package/dist/commands/testHTTPFunction.js +2 -2
  4. package/dist/commands/testHTTPFunction.js.map +1 -1
  5. package/dist/index.d.ts +27 -0
  6. package/dist/index.js +33 -65
  7. package/dist/index.js.map +1 -1
  8. package/dist/index.test.js +10 -0
  9. package/dist/index.test.js.map +1 -0
  10. package/dist/libs/utils.d.ts +3 -2
  11. package/dist/libs/utils.js +2 -2
  12. package/dist/libs/utils.js.map +1 -1
  13. package/dist/services/HANDLER.d.ts +12 -0
  14. package/dist/services/HANDLER.js +21 -0
  15. package/dist/services/HANDLER.js.map +1 -0
  16. package/dist/services/_autoload.d.ts +27 -13
  17. package/dist/services/_autoload.js +79 -31
  18. package/dist/services/_autoload.js.map +1 -1
  19. package/dist/services/log.js +2 -2
  20. package/dist/services/log.js.map +1 -1
  21. package/dist/wrappers/wrapHandlerForGoogleHTTPFunction.d.ts +24 -0
  22. package/dist/wrappers/{googleHTTPFunction.js → wrapHandlerForGoogleHTTPFunction.js} +88 -77
  23. package/dist/wrappers/wrapHandlerForGoogleHTTPFunction.js.map +1 -0
  24. package/package.json +10 -9
  25. package/src/commands/testHTTPFunction.ts +3 -4
  26. package/src/index.test.ts +11 -0
  27. package/src/index.ts +43 -97
  28. package/src/libs/utils.ts +3 -2
  29. package/src/services/HANDLER.ts +41 -0
  30. package/src/services/_autoload.ts +136 -41
  31. package/src/services/log.ts +2 -2
  32. package/src/wrappers/{googleHTTPFunction.ts → wrapHandlerForGoogleHTTPFunction.ts} +153 -141
  33. package/dist/services/log.test.js +0 -8
  34. package/dist/services/log.test.js.map +0 -1
  35. package/dist/wrappers/googleHTTPFunction.d.ts +0 -22
  36. package/dist/wrappers/googleHTTPFunction.js.map +0 -1
  37. package/src/services/log.test.ts +0 -8
  38. /package/dist/{services/log.test.d.ts → index.test.d.ts} +0 -0
package/README.md CHANGED
@@ -27,41 +27,42 @@ Install this module:
27
27
  npm i @whook/gcp-functions;
28
28
  ```
29
29
 
30
- Add this module to your Whook plugins and tweak the 2 build functions in your
30
+ Add the plugin to the `src/index.ts` main file:
31
+
32
+ ```diff
33
+
34
+ // ...
35
+
36
+ $.register(
37
+ constant('WHOOK_PLUGINS', [
38
+ '@whook/whook',
39
+ + '@whook/gcp-functions',
40
+ '@whook/cors',
41
+ ]),
42
+ );
43
+
44
+ // ...
45
+ ```
46
+
47
+ Tweak the 2 build functions in your
31
48
  `src/build.ts` main file:
32
49
 
33
50
  ```diff
34
51
  import {
35
52
  // (...)
53
+ - DEFAULT_INITIALIZER_PATH_MAP,
36
54
  - runBuild as runBaseBuild,
55
+ - prepareBuildEnvironment as prepareBaseBuildEnvironment,
37
56
  // (...)
38
57
  } from '@whook/whook';
39
58
  +import {
59
+ + DEFAULT_BUILD_INITIALIZER_PATH_MAP,
40
60
  + runBuild as runBaseBuild,
41
61
  + prepareBuildEnvironment as prepareBaseBuildEnvironment,
42
62
  +} from '@whook/gcp-functions';
43
63
 
44
64
  // (...)
45
65
 
46
- export async function prepareEnvironment(
47
- $: Knifecycle = new Knifecycle(),
48
- ): Promise<Knifecycle> {
49
-
50
- // (...)
51
-
52
- // Setup your own whook plugins or avoid whook defaults by leaving it empty
53
- - $.register(constant('WHOOK_PLUGINS', ['@whook/whook']));
54
- + $.register(constant('WHOOK_PLUGINS', [
55
- + '@whook/gcp-functions',
56
- + '@whook/whook',
57
- + ]));
58
-
59
- // (...)
60
-
61
- }
62
-
63
- // (...)
64
-
65
66
  // The `prepareBuildEnvironment` create the build
66
67
  // environment
67
68
  export async function prepareBuildEnvironment(
@@ -76,18 +77,14 @@ export async function prepareBuildEnvironment(
76
77
  + // Calling the GCP specific build env
77
78
  + $ = await prepareBaseBuildEnvironment($);
78
79
 
79
-
80
80
  // The build often need to know were initializers
81
81
  // can be found to create a static build and
82
82
  // remove the need to create an injector
83
83
  $.register(
84
84
  constant('INITIALIZER_PATH_MAP', {
85
85
  // (...)
86
- obfuscator: '@whook/http-transaction/dist/services/obfuscator',
87
- - log: 'common-services/dist/log',
88
- + log: '@whook/gcp-functions/dist/services/log',
89
- time: 'common-services/dist/time',
90
- delay: 'common-services/dist/delay',
86
+ - ...DEFAULT_INITIALIZER_PATH_MAP,
87
+ + ...DEFAULT_BUILD_INITIALIZER_PATH_MAP,
91
88
  }),
92
89
  );
93
90
 
@@ -96,8 +93,8 @@ export async function prepareBuildEnvironment(
96
93
  }
97
94
  ```
98
95
 
99
- Declare this module types in your `src/whook.d.ts` type
100
- definitions:
96
+ Declare this module types in your `src/whook.d.ts` type definitions:
97
+
101
98
  ```diff
102
99
  // ...
103
100
  + import type { WhookCompilerConfig } from '@whook/whook';
@@ -137,6 +134,7 @@ declare module '@whook/whook' {
137
134
  }
138
135
  }
139
136
  ```
137
+
140
138
  And add the GCP Functions config (usually in `src/config/common/config.js`):
141
139
 
142
140
  ```diff
@@ -194,6 +192,56 @@ There is a complete example on how to deploy your functions
194
192
  [//]: # (::contents:end)
195
193
 
196
194
  # API
195
+ ## Functions
196
+
197
+ <dl>
198
+ <dt><a href="#initHandler">initHandler(services)</a> ⇒ <code>Promise.&lt;function()&gt;</code></dt>
199
+ <dd><p>Initialize one Whook handler</p>
200
+ </dd>
201
+ <dt><a href="#initWrapHandlerForGoogleHTTPFunction">initWrapHandlerForGoogleHTTPFunction(services)</a> ⇒ <code>Promise.&lt;Object&gt;</code></dt>
202
+ <dd><p>Wrap an handler to make it work with GCP Functions.</p>
203
+ </dd>
204
+ </dl>
205
+
206
+ <a name="initHandler"></a>
207
+
208
+ ## initHandler(services) ⇒ <code>Promise.&lt;function()&gt;</code>
209
+ Initialize one Whook handler
210
+
211
+ **Kind**: global function
212
+ **Returns**: <code>Promise.&lt;function()&gt;</code> - A promise of the `HANDLERS` hash.
213
+
214
+ | Param | Type | Default | Description |
215
+ | --- | --- | --- | --- |
216
+ | services | <code>Object</code> | | The services `$autoload` depends on |
217
+ | services.WRAPPERS | <code>Array</code> | | An optional list of wrappers to inject |
218
+ | [services.log] | <code>Object</code> | <code>noop</code> | An optional logging service |
219
+ | services.HANDLERS | <code>Object</code> | | The rest is a hash of handlers mapped by their operation id |
220
+
221
+ <a name="initWrapHandlerForGoogleHTTPFunction"></a>
222
+
223
+ ## initWrapHandlerForGoogleHTTPFunction(services) ⇒ <code>Promise.&lt;Object&gt;</code>
224
+ Wrap an handler to make it work with GCP Functions.
225
+
226
+ **Kind**: global function
227
+ **Returns**: <code>Promise.&lt;Object&gt;</code> - A promise of an object containing the reshaped env vars.
228
+
229
+ | Param | Type | Default | Description |
230
+ | --- | --- | --- | --- |
231
+ | services | <code>Object</code> | | The services the wrapper depends on |
232
+ | services.OPERATION_API | <code>Object</code> | | An OpenAPI definitition for that handler |
233
+ | services.ENV | <code>Object</code> | | The process environment |
234
+ | services.DEBUG_NODE_ENVS | <code>Object</code> | | The NODE_ENV values that trigger debugging |
235
+ | services.DECODERS | <code>Object</code> | | Request body decoders available |
236
+ | services.ENCODERS | <code>Object</code> | | Response body encoders available |
237
+ | services.PARSERS | <code>Object</code> | | Request body parsers available |
238
+ | services.STRINGIFYERS | <code>Object</code> | | Response body stringifyers available |
239
+ | services.BUFFER_LIMIT | <code>Object</code> | | The buffer size limit |
240
+ | services.QUERY_PARSER | <code>Object</code> | | The query parser to use |
241
+ | services.obfuscator | <code>Object</code> | | A service to hide sensible values |
242
+ | services.errorHandler | <code>Object</code> | | A service that changes any error to Whook response |
243
+ | [services.log] | <code>Object</code> | <code>noop</code> | An optional logging service |
244
+
197
245
 
198
246
  # Authors
199
247
  - [Nicolas Froidure](http://insertafter.com/en/index.html)
@@ -3,7 +3,7 @@ import type { LogService } from 'common-services';
3
3
  import type { OpenAPIV3 } from 'openapi-types';
4
4
  export declare const definition: WhookCommandDefinition;
5
5
  declare const _default: import("knifecycle").ServiceInitializer<{
6
- NODE_ENV: string;
6
+ APP_ENV: string;
7
7
  PROJECT_DIR: string;
8
8
  COMPILER_OPTIONS?: Partial<import("@whook/whook/dist/services/compiler.js").FullWhookCompilerOptions> | undefined;
9
9
  API: OpenAPIV3.Document<{}>;
@@ -39,11 +39,11 @@ export const definition = {
39
39
  },
40
40
  };
41
41
  export default extra(definition, autoService(initTestHTTPFunctionCommand));
42
- async function initTestHTTPFunctionCommand({ NODE_ENV, PROJECT_DIR, COMPILER_OPTIONS = DEFAULT_COMPILER_OPTIONS, API, log, args, }) {
42
+ async function initTestHTTPFunctionCommand({ APP_ENV, PROJECT_DIR, COMPILER_OPTIONS = DEFAULT_COMPILER_OPTIONS, API, log, args, }) {
43
43
  return async () => {
44
44
  const { namedArguments: { name, type, contentType, parameters: rawParameters }, } = readArgs(definition.arguments, args);
45
45
  const extension = COMPILER_OPTIONS.format === 'cjs' ? '.cjs' : '.mjs';
46
- const handler = await loadFunction({ PROJECT_DIR, log }, NODE_ENV, name, type, extension);
46
+ const handler = await loadFunction({ APP_ENV, PROJECT_DIR, log }, name, type, extension);
47
47
  const OPERATION = (await dereferenceOpenAPIOperations(API, getOpenAPIOperations(API))).find(({ operationId }) => operationId === name);
48
48
  if (!OPERATION) {
49
49
  throw new YError('E_OPERATION_NOT_FOUND');
@@ -1 +1 @@
1
- {"version":3,"file":"testHTTPFunction.js","sourceRoot":"","sources":["../../src/commands/testHTTPFunction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testHTTPFunction.js","sourceRoot":"","sources":["../../src/commands/testHTTPFunction.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,33 @@
1
1
  import { Knifecycle } from 'knifecycle';
2
2
  import type { WhookCompilerOptions } from '@whook/whook';
3
3
  export declare const DEFAULT_BUILD_PARALLELISM = 10;
4
+ export declare const DEFAULT_BUILD_INITIALIZER_PATH_MAP: {
5
+ log: string;
6
+ $fatalError: string;
7
+ BASE_URL: string;
8
+ API_DEFINITIONS: string;
9
+ logger: string;
10
+ exit: string;
11
+ PORT: string;
12
+ HOST: string;
13
+ WHOOK_PLUGINS_PATHS: string;
14
+ httpRouter: string;
15
+ httpTransaction: string;
16
+ httpServer: string;
17
+ apm: string;
18
+ obfuscator: string;
19
+ errorHandler: string;
20
+ APP_CONFIG: string;
21
+ PROJECT_DIR: string;
22
+ PROCESS_ENV: string;
23
+ process: string;
24
+ ENV: string;
25
+ time: string;
26
+ delay: string;
27
+ random: string;
28
+ importer: string;
29
+ resolve: string;
30
+ };
4
31
  export type WhookGCPBuildConfig = {
5
32
  BUILD_PARALLELISM?: number;
6
33
  };
package/dist/index.js CHANGED
@@ -1,38 +1,24 @@
1
- /* eslint global-require:0 */
2
1
  import fs from 'fs';
3
2
  import util from 'util';
4
3
  import path from 'path';
5
4
  import { mkdirp } from 'mkdirp';
5
+ import { argv, exit, stderr } from 'node:process';
6
6
  import cpr from 'cpr';
7
7
  import { printStackTrace, YError } from 'yerror';
8
- import { createRequire } from 'module';
9
- import { Knifecycle, SPECIAL_PROPS, constant, initInitializerBuilder, } from 'knifecycle';
10
- import { initCompiler } from '@whook/whook';
8
+ import { Knifecycle, constant, initInitializerBuilder } from 'knifecycle';
9
+ import { DEFAULT_BUILD_INITIALIZER_PATH_MAP as BASE_DEFAULT_BUILD_INITIALIZER_PATH_MAP, initCompiler, } from '@whook/whook';
11
10
  import initBuildAutoloader from './services/_autoload.js';
12
11
  import { dereferenceOpenAPIOperations, getOpenAPIOperations, } from '@whook/http-router';
13
12
  export const DEFAULT_BUILD_PARALLELISM = 10;
13
+ export const DEFAULT_BUILD_INITIALIZER_PATH_MAP = {
14
+ ...BASE_DEFAULT_BUILD_INITIALIZER_PATH_MAP,
15
+ log: '@whook/gcp-functions/dist/services/log',
16
+ };
14
17
  const readFileAsync = util.promisify(fs.readFile);
15
18
  const writeFileAsync = util.promisify(fs.writeFile);
16
19
  const cprAsync = util.promisify(cpr);
17
- // TODO: Use import.meta when Jest will support it
18
- const require = createRequire(path.join(process.cwd(), 'src', 'index.ts'));
19
- const BUILD_DEFINITIONS = {
20
- http: {
21
- type: 'HTTP',
22
- wrapper: {
23
- name: 'wrapHandlerForGoogleHTTPFunction',
24
- path: path.join(path.dirname(require.resolve('@whook/gcp-functions')), 'wrappers/googleHTTPFunction.js'),
25
- },
26
- suffix: 'Wrapped',
27
- },
28
- };
29
20
  export async function prepareBuildEnvironment($ = new Knifecycle()) {
30
- $.register(constant('INITIALIZER_PATH_MAP', {
31
- ENV: '@whook/whook/dist/services/ProxyedENV',
32
- log: '@whook/gcp-functions/dist/services/log',
33
- time: 'common-services/dist/time',
34
- delay: 'common-services/dist/delay',
35
- }));
21
+ $.register(constant('INITIALIZER_PATH_MAP', DEFAULT_BUILD_INITIALIZER_PATH_MAP));
36
22
  $.register(initInitializerBuilder);
37
23
  $.register(initBuildAutoloader);
38
24
  $.register(initCompiler);
@@ -42,10 +28,10 @@ export async function prepareBuildEnvironment($ = new Knifecycle()) {
42
28
  }
43
29
  export async function runBuild(aPrepareBuildEnvironment) {
44
30
  try {
45
- const handlerName = process.argv[2];
31
+ const handlerName = argv[2];
46
32
  const $ = await aPrepareBuildEnvironment();
47
- const { NODE_ENV, BUILD_PARALLELISM, PROJECT_DIR, compiler, log, $autoload, API, buildInitializer, } = await $.run([
48
- 'NODE_ENV',
33
+ const { APP_ENV, BUILD_PARALLELISM, PROJECT_DIR, compiler, log, $autoload, API, buildInitializer, } = await $.run([
34
+ 'APP_ENV',
49
35
  '?BUILD_PARALLELISM',
50
36
  'PROJECT_DIR',
51
37
  'process',
@@ -64,9 +50,9 @@ export async function runBuild(aPrepareBuildEnvironment) {
64
50
  }
65
51
  return true;
66
52
  });
67
- log('warning', `${operations.length} operations to process.`);
53
+ log('warning', `📃 - ${operations.length} operations to process.`);
68
54
  await processOperations({
69
- NODE_ENV,
55
+ APP_ENV,
70
56
  BUILD_PARALLELISM: BUILD_PARALLELISM || DEFAULT_BUILD_PARALLELISM,
71
57
  PROJECT_DIR,
72
58
  compiler,
@@ -77,25 +63,23 @@ export async function runBuild(aPrepareBuildEnvironment) {
77
63
  await $.destroy();
78
64
  }
79
65
  catch (err) {
80
- // eslint-disable-next-line
81
- console.error('💀 - Cannot launch the build:', printStackTrace(err), JSON.stringify(err?.params, null, 2));
82
- process.exit(1);
66
+ stderr.write(`💀 - Cannot launch the build:' ${printStackTrace(err)}`);
67
+ exit(1);
83
68
  }
84
69
  }
85
- async function processOperations({ NODE_ENV, BUILD_PARALLELISM, PROJECT_DIR, compiler, log, $autoload, buildInitializer, }, operations) {
70
+ async function processOperations({ APP_ENV, BUILD_PARALLELISM, PROJECT_DIR, compiler, log, $autoload, buildInitializer, }, operations) {
86
71
  const operationsLeft = operations.slice(BUILD_PARALLELISM);
87
72
  await Promise.all(operations.slice(0, BUILD_PARALLELISM).map((operation) => buildAnyLambda({
88
- NODE_ENV,
73
+ APP_ENV,
89
74
  PROJECT_DIR,
90
75
  compiler,
91
76
  log,
92
- $autoload,
93
77
  buildInitializer,
94
78
  }, operation)));
95
79
  if (operationsLeft.length) {
96
- log('info', operationsLeft.length, ' operations left.');
80
+ log('info', `📃 - ${operationsLeft.length} operations left.`);
97
81
  return processOperations({
98
- NODE_ENV,
82
+ APP_ENV,
99
83
  BUILD_PARALLELISM,
100
84
  PROJECT_DIR,
101
85
  compiler,
@@ -104,31 +88,22 @@ async function processOperations({ NODE_ENV, BUILD_PARALLELISM, PROJECT_DIR, com
104
88
  buildInitializer,
105
89
  }, operationsLeft);
106
90
  }
107
- log('info', 'No more operations.');
91
+ log('info', '🤷 - No more operations.');
108
92
  }
109
- async function buildAnyLambda({ NODE_ENV, PROJECT_DIR, compiler, log, $autoload, buildInitializer, }, operation) {
93
+ async function buildAnyLambda({ APP_ENV, PROJECT_DIR, compiler, log, buildInitializer, }, operation) {
110
94
  const { operationId } = operation;
111
95
  try {
112
96
  const whookConfig = operation['x-whook'] || { type: 'http' };
113
97
  const operationType = whookConfig.type || 'http';
114
98
  const sourceOperationId = whookConfig.sourceOperationId;
115
- const entryPoint = operationId;
116
99
  const finalEntryPoint = (sourceOperationId ? sourceOperationId : operationId) +
117
100
  ((operation['x-whook'] || {}).suffix || '');
118
- log('warning', `Building ${operationType} "${finalEntryPoint}"...`);
119
- const buildDefinition = BUILD_DEFINITIONS[operationType];
120
- // eslint-disable-next-line
121
- const applyWrapper = (await import(buildDefinition.wrapper.path)).default;
122
- const rootNode = await $autoload(entryPoint + (buildDefinition.suffix || ''));
123
- const lambdaPath = path.join(PROJECT_DIR, 'builds', NODE_ENV, finalEntryPoint);
124
- const finalHandlerInitializer = applyWrapper(rootNode.initializer);
125
- const initializerContent = await buildInitializer(finalHandlerInitializer[SPECIAL_PROPS.INJECT].map((name) => name === 'OPERATION_API'
126
- ? `OPERATION_API>OPERATION_API_${finalEntryPoint}`
127
- : name));
128
- const indexContent = await buildLambdaIndex(rootNode, {
129
- name: buildDefinition.wrapper.name,
130
- path: buildDefinition.wrapper.path,
131
- });
101
+ log('warning', `🏗 - Building ${operationType} "${finalEntryPoint}"...`);
102
+ const lambdaPath = path.join(PROJECT_DIR, 'builds', APP_ENV, finalEntryPoint);
103
+ const initializerContent = await buildInitializer([
104
+ `OPERATION_HANDLER_${finalEntryPoint}`,
105
+ ]);
106
+ const indexContent = await buildLambdaIndex(`OPERATION_HANDLER_${finalEntryPoint}`);
132
107
  await mkdirp(lambdaPath);
133
108
  await Promise.all([
134
109
  copyStaticFiles({ PROJECT_DIR, log }, lambdaPath, whookConfig.staticFiles || []),
@@ -140,25 +115,18 @@ async function buildAnyLambda({ NODE_ENV, PROJECT_DIR, compiler, log, $autoload,
140
115
  catch (err) {
141
116
  log('error', `Error building "${operationId}"...`);
142
117
  log('error-stack', printStackTrace(err));
143
- log('debug', JSON.stringify(err.params, null, 2));
144
118
  throw YError.wrap(err, 'E_LAMBDA_BUILD', operationId);
145
119
  }
146
120
  }
147
- async function buildLambdaIndex(rootNode, buildWrapper) {
148
- return `import initHandler from '${rootNode.path}';
149
- import ${buildWrapper.name} from '${buildWrapper.path}';
121
+ async function buildLambdaIndex(name) {
122
+ return `// Automatically generated by \`@whook/gcp-functions\`
150
123
  import { initialize } from './initialize.js';
151
124
 
152
- const handlerInitializer = ${buildWrapper.name}(
153
- initHandler
154
- );
155
-
156
- const handlerPromise = initialize()
157
- .then(handlerInitializer);
125
+ const initializationPromise = initialize();
158
126
 
159
- export default function handler (req, res) {
160
- return handlerPromise
161
- .then(handler => handler(req, res));
127
+ export default function handler (req, res) {
128
+ return initializationPromise
129
+ .then(services => services['${name}'](req, res));
162
130
  };
163
131
  `;
164
132
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Knifecycle } from 'knifecycle';
2
+ import { describe, test, expect } from '@jest/globals';
3
+ import { prepareBuildEnvironment } from './index.js';
4
+ describe('prepareBuildEnvironment', () => {
5
+ test('should work', async () => {
6
+ const $ = await prepareBuildEnvironment(new Knifecycle());
7
+ expect($).toBeDefined();
8
+ });
9
+ });
10
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,CAAC,GAAG,MAAM,uBAAuB,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;QAE1D,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { LogService } from 'common-services';
2
- export declare function loadFunction({ PROJECT_DIR, log, }: {
2
+ export declare function loadFunction({ PROJECT_DIR, APP_ENV, log, }: {
3
3
  PROJECT_DIR: string;
4
+ APP_ENV: string;
4
5
  log: LogService;
5
- }, target: string, operationId: string, type: string, extension?: string): Promise<any>;
6
+ }, operationId: string, type: string, extension?: string): Promise<any>;
@@ -1,7 +1,7 @@
1
1
  import { YError } from 'yerror';
2
2
  import path from 'path';
3
- export async function loadFunction({ PROJECT_DIR, log, }, target, operationId, type, extension = '.mjs') {
4
- const modulePath = path.join(PROJECT_DIR, 'builds', target, operationId, type + extension);
3
+ export async function loadFunction({ PROJECT_DIR, APP_ENV, log, }, operationId, type, extension = '.mjs') {
4
+ const modulePath = path.join(PROJECT_DIR, 'builds', APP_ENV, operationId, type + extension);
5
5
  log('debug', `⛏️ - Loading function module at path "${modulePath}".`);
6
6
  try {
7
7
  const module = await import(modulePath);
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/libs/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EACE,WAAW,EACX,GAAG,GAIJ,EACD,MAAc,EACd,WAAmB,EACnB,IAAY,EACZ,SAAS,GAAG,MAAM;IAGlB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,WAAW,EACX,QAAQ,EACR,MAAM,EACN,WAAW,EACX,IAAI,GAAG,SAAS,CACjB,CAAC;IAEF,GAAG,CAAC,OAAO,EAAE,yCAAyC,UAAU,IAAI,CAAC,CAAC;IAEtE,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;SAChD;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACnB,MAAM,IAAI,MAAM,CAAC,oBAAoB,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SACrE;QAED,OAAO,MAAM,CAAC,OAAO,CAAC;KACvB;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,MAAM,CAAC,IAAI,CAAC,GAAY,EAAE,eAAe,CAAC,CAAC;KAClD;AACH,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/libs/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EACE,WAAW,EACX,OAAO,EACP,GAAG,GAKJ,EACD,WAAmB,EACnB,IAAY,EACZ,SAAS,GAAG,MAAM;IAGlB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,WAAW,EACX,QAAQ,EACR,OAAO,EACP,WAAW,EACX,IAAI,GAAG,SAAS,CACjB,CAAC;IAEF,GAAG,CAAC,OAAO,EAAE,yCAAyC,UAAU,IAAI,CAAC,CAAC;IAEtE,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;SAChD;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACnB,MAAM,IAAI,MAAM,CAAC,oBAAoB,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SACrE;QAED,OAAO,MAAM,CAAC,OAAO,CAAC;KACvB;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,MAAM,CAAC,IAAI,CAAC,GAAY,EAAE,eAAe,CAAC,CAAC;KAClD;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import type { WhookWrapper } from '@whook/whook';
3
+ import type { WhookHandler } from '@whook/http-transaction';
4
+ import type { LogService } from 'common-services';
5
+ export type WhookHandlerDependencies<T extends WhookHandler> = {
6
+ WRAPPERS: WhookWrapper<T>[];
7
+ mainWrapper: WhookWrapper<T>;
8
+ baseHandler: T;
9
+ log?: LogService;
10
+ };
11
+ declare const _default: import("knifecycle").ServiceInitializer<WhookHandlerDependencies<WhookHandler<import("knifecycle").Parameters, import("@whook/http-transaction").WhookResponse<number, void | import("@whook/http-transaction").WhookHeaders, void | import("stream").Readable | import("type-fest").JsonValue>, import("@whook/http-transaction").WhookOperation<Record<string, unknown>>>>, WhookHandler<WhookHandler<import("knifecycle").Parameters, import("@whook/http-transaction").WhookResponse<number, void | import("@whook/http-transaction").WhookHeaders, void | import("stream").Readable | import("type-fest").JsonValue>, import("@whook/http-transaction").WhookOperation<Record<string, unknown>>>, import("@whook/http-transaction").WhookResponse<number, void | import("@whook/http-transaction").WhookHeaders, void | import("stream").Readable | import("type-fest").JsonValue>, import("@whook/http-transaction").WhookOperation<Record<string, unknown>>>>;
12
+ export default _default;
@@ -0,0 +1,21 @@
1
+ import { autoService, name } from 'knifecycle';
2
+ import { noop, applyWrappers } from '@whook/whook';
3
+ export default name('HANDLER', autoService(initHandler));
4
+ /**
5
+ * Initialize one Whook handler
6
+ * @param {Object} services
7
+ * The services `$autoload` depends on
8
+ * @param {Array} services.WRAPPERS
9
+ * An optional list of wrappers to inject
10
+ * @param {Object} [services.log=noop]
11
+ * An optional logging service
12
+ * @param {Object} services.HANDLERS
13
+ * The rest is a hash of handlers mapped by their operation id
14
+ * @return {Promise<Function>}
15
+ * A promise of the `HANDLERS` hash.
16
+ */
17
+ async function initHandler({ WRAPPERS, mainWrapper, baseHandler, log = noop, }) {
18
+ log('warning', `🏭 - Initializing the HANDLER service with wrapped by ${WRAPPERS.length} wrappers.`);
19
+ return await applyWrappers([...WRAPPERS, mainWrapper], baseHandler);
20
+ }
21
+ //# sourceMappingURL=HANDLER.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HANDLER.js","sourceRoot":"","sources":["../../src/services/HANDLER.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAYnD,eAAe,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;AAEzD;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,WAAW,CAAyB,EACjD,QAAQ,EACR,WAAW,EACX,WAAW,EACX,GAAG,GAAG,IAAI,GACkB;IAC5B,GAAG,CACD,SAAS,EACT,yDAAyD,QAAQ,CAAC,MAAM,YAAY,CACrF,CAAC;IAEF,OAAO,MAAM,aAAa,CAAI,CAAC,GAAG,QAAQ,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;AACzE,CAAC"}
@@ -1,31 +1,45 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import type { Injector, Autoloader, Initializer, Dependencies } from 'knifecycle';
3
- import type { LogService } from 'common-services';
1
+ import { Knifecycle } from 'knifecycle';
2
+ import type { Injector, Autoloader, Initializer, Dependencies, Service } from 'knifecycle';
3
+ import type { WhookBuildConstantsService } from '@whook/whook';
4
+ import type { LogService, ResolveService } from 'common-services';
5
+ import type { WhookAPIOperationGCPFunctionConfig } from '../index.js';
6
+ export type WhookGoogleFunctionsAutoloadDependencies = {
7
+ BUILD_CONSTANTS?: WhookBuildConstantsService;
8
+ $injector: Injector<Service>;
9
+ $instance: Knifecycle;
10
+ resolve: ResolveService;
11
+ log?: LogService;
12
+ };
13
+ export declare const GCP_WRAPPERS: Record<Required<WhookAPIOperationGCPFunctionConfig>['type'], {
14
+ name: string;
15
+ initializer: Initializer<Service, Dependencies>;
16
+ }>;
4
17
  /**
5
- * Wrap the _autoload service in order to build AWS
6
- * Lambda compatible code.
18
+ * Wrap the _autoload service in order to build for GCP
19
+ * Functions compatible code.
7
20
  * @param {Object} services
8
21
  * The services ENV depends on
9
- * @param {Object} services.NODE_ENV
10
- * The injected NODE_ENV value to add it to the build env
11
- * @param {Object} [services.PROXYED_ENV_VARS={}]
12
- * A list of environment variable names to proxy
22
+ * @param {Object} [services.BUILD_CONSTANTS]
23
+ * Service whose contents should be considered as constants
24
+ * @param {Object} $instance
25
+ * A Knifecycle instance
26
+ * @param {Object} $injector
27
+ * The Knifecycle injector
13
28
  * @param {Object} [services.log=noop]
14
29
  * An optional logging service
15
30
  * @return {Promise<Object>}
16
31
  * A promise of an object containing the reshaped env vars.
17
32
  */
18
- declare const _default: import("knifecycle").ServiceInitializer<Dependencies<any> & import("@whook/whook/dist/services/_autoload.js").AutoloadConfig & {
33
+ declare const _default: import("knifecycle").ServiceInitializer<Dependencies<any> & import("@whook/whook").WhookWrappersConfig & {
19
34
  PROJECT_SRC: string;
20
- APP_CONFIG?: import("application-services").AppConfig | undefined;
21
- WRAPPERS?: import("@whook/whook").WhookWrapper<Dependencies, import("@whook/http-transaction").WhookHandler<import("knifecycle").Parameters, import("@whook/http-transaction").WhookResponse<number, void | import("@whook/http-transaction").WhookHeaders, void | import("stream").Readable | import("type-fest").JsonValue>, import("@whook/http-transaction").WhookOperation<Record<string, unknown>>>>[] | undefined;
35
+ APP_CONFIG?: import("@whook/whook").WhookAutoloadConfig | undefined;
22
36
  INITIALIZER_PATH_MAP?: import("@whook/whook").WhookInitializerMap | undefined;
23
37
  WHOOK_PLUGINS_PATHS?: string[] | undefined;
24
38
  $injector: Injector<any>;
25
39
  importer: import("common-services").ImporterService<{
26
40
  default: Initializer<any, Dependencies>;
27
41
  }>;
28
- resolve: import("common-services").ResolveService;
42
+ resolve: ResolveService;
29
43
  log?: LogService | undefined;
30
44
  }, Autoloader<Initializer<unknown, Dependencies>>>;
31
45
  export default _default;