@whook/gcp-functions 12.0.2 → 13.1.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.
Files changed (38) hide show
  1. package/README.md +55 -35
  2. package/dist/commands/testHTTPFunction.d.ts +2 -2
  3. package/dist/commands/testHTTPFunction.js +4 -2
  4. package/dist/commands/testHTTPFunction.js.map +1 -1
  5. package/dist/index.d.ts +27 -0
  6. package/dist/index.js +34 -66
  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 +31 -15
  17. package/dist/services/_autoload.js +78 -26
  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 +26 -0
  22. package/dist/wrappers/{googleHTTPFunction.js → wrapHandlerForGoogleHTTPFunction.js} +71 -63
  23. package/dist/wrappers/wrapHandlerForGoogleHTTPFunction.js.map +1 -0
  24. package/package.json +46 -42
  25. package/src/commands/testHTTPFunction.ts +5 -4
  26. package/src/index.test.ts +11 -0
  27. package/src/index.ts +45 -99
  28. package/src/libs/utils.ts +4 -2
  29. package/src/services/HANDLER.ts +41 -0
  30. package/src/services/_autoload.ts +134 -36
  31. package/src/services/log.ts +2 -2
  32. package/src/wrappers/{googleHTTPFunction.ts → wrapHandlerForGoogleHTTPFunction.ts} +135 -123
  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
@@ -1,4 +1,5 @@
1
- import { printStackTrace } from 'yerror';
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { YError, printStackTrace } from 'yerror';
2
3
  import {
3
4
  DEFAULT_DEBUG_NODE_ENVS,
4
5
  DEFAULT_BUFFER_LIMIT,
@@ -9,7 +10,7 @@ import {
9
10
  extractOperationSecurityParameters,
10
11
  castParameters,
11
12
  } from '@whook/http-router';
12
- import { reuseSpecialProps, alsoInject } from 'knifecycle';
13
+ import { autoService } from 'knifecycle';
13
14
  import Ajv from 'ajv';
14
15
  import addAJVFormats from 'ajv-formats';
15
16
  import bytes from 'bytes';
@@ -29,15 +30,14 @@ import {
29
30
  getBody,
30
31
  sendBody,
31
32
  } from '@whook/http-router';
32
- import { noop, compose, identity, lowerCaseHeaders } from '@whook/whook';
33
+ import { noop, identity, lowerCaseHeaders } from '@whook/whook';
33
34
  import stream from 'stream';
34
35
  import type { WhookQueryStringParser } from '@whook/http-router';
35
- import type { ServiceInitializer, Dependencies, Service } from 'knifecycle';
36
36
  import type {
37
37
  WhookRequest,
38
38
  WhookResponse,
39
39
  WhookHandler,
40
- ObfuscatorService,
40
+ WhookObfuscatorService,
41
41
  WhookOperation,
42
42
  WhookWrapper,
43
43
  } from '@whook/whook';
@@ -45,90 +45,91 @@ import type { TimeService, LogService } from 'common-services';
45
45
  import type { OpenAPIV3 } from 'openapi-types';
46
46
  import type { Readable } from 'stream';
47
47
  import type { CORSConfig } from '@whook/cors';
48
+ import type { AppEnvVars } from 'application-services';
48
49
 
49
- type HTTPWrapperDependencies = {
50
- NODE_ENV: string;
50
+ const SEARCH_SEPARATOR = '?';
51
+ const PATH_SEPARATOR = '/';
52
+
53
+ export type WhookWrapHTTPFunctionDependencies = {
54
+ CORS: CORSConfig;
55
+ ENV: AppEnvVars;
51
56
  DEBUG_NODE_ENVS?: string[];
52
- OPERATION: WhookOperation;
53
57
  DECODERS?: typeof DEFAULT_DECODERS;
54
58
  ENCODERS?: typeof DEFAULT_ENCODERS;
55
59
  PARSERS?: typeof DEFAULT_PARSERS;
56
60
  STRINGIFYERS?: typeof DEFAULT_STRINGIFYERS;
57
61
  QUERY_PARSER: WhookQueryStringParser;
58
62
  BUFFER_LIMIT?: string;
59
- obfuscator: ObfuscatorService;
63
+ obfuscator: WhookObfuscatorService;
60
64
  time?: TimeService;
61
65
  log?: LogService;
62
- WRAPPERS: WhookWrapper<Dependencies, Service>[];
66
+ OPERATION_API: OpenAPIV3.Document;
63
67
  };
64
68
 
65
- const SEARCH_SEPARATOR = '?';
66
- const PATH_SEPARATOR = '/';
69
+ /**
70
+ * Wrap an handler to make it work with GCP Functions.
71
+ * @param {Object} services
72
+ * The services the wrapper depends on
73
+ * @param {Object} services.ENV
74
+ * The process environment
75
+ * @param {Object} services.OPERATION_API
76
+ * An OpenAPI definitition for that handler
77
+ * @param {Object} services.CORS
78
+ * The CORS for the server
79
+ * @param {Object} [services.time]
80
+ * An optional time service
81
+ * @param {Object} [services.log=noop]
82
+ * An optional logging service
83
+ * @return {Promise<Object>}
84
+ * A promise of an object containing the reshaped env vars.
85
+ */
86
+
87
+ async function initWrapHandlerForGoogleHTTPFunction<S extends WhookHandler>({
88
+ OPERATION_API,
89
+ ENV,
90
+ DEBUG_NODE_ENVS = DEFAULT_DEBUG_NODE_ENVS,
91
+ CORS,
92
+ DECODERS = DEFAULT_DECODERS,
93
+ ENCODERS = DEFAULT_ENCODERS,
94
+ PARSERS = DEFAULT_PARSERS,
95
+ STRINGIFYERS = DEFAULT_STRINGIFYERS,
96
+ BUFFER_LIMIT = DEFAULT_BUFFER_LIMIT,
97
+ QUERY_PARSER,
98
+ obfuscator,
99
+ log = noop,
100
+ }: WhookWrapHTTPFunctionDependencies): Promise<WhookWrapper<S>> {
101
+ log('debug', '📥 - Initializing the AWS Lambda cron wrapper.');
67
102
 
68
- export default function wrapHandlerForAWSHTTPFunction<
69
- D extends Dependencies,
70
- S extends WhookHandler,
71
- >(
72
- initHandler: ServiceInitializer<D, S>,
73
- ): ServiceInitializer<D & HTTPWrapperDependencies, S> {
74
- return alsoInject<HTTPWrapperDependencies, D, S>(
75
- [
76
- 'OPERATION_API',
77
- 'WRAPPERS',
78
- '?DEBUG_NODE_ENVS',
79
- 'NODE_ENV',
80
- '?DECODERS',
81
- '?ENCODERS',
82
- '?PARSERS',
83
- '?STRINGIFYERS',
84
- '?BUFFER_LIMIT',
85
- 'QUERY_PARSER',
86
- 'obfuscator',
87
- '?log',
88
- '?time',
89
- ],
90
- reuseSpecialProps(
91
- initHandler,
92
- (initHandlerForAWSHTTPFunction as any).bind(
93
- null,
94
- initHandler,
95
- ) as ServiceInitializer<D, S>,
96
- ),
97
- );
98
- }
99
-
100
- async function initHandlerForAWSHTTPFunction(
101
- initHandler: ServiceInitializer<Dependencies, WhookHandler>,
102
- {
103
- OPERATION_API,
104
- WRAPPERS,
105
- NODE_ENV,
106
- DEBUG_NODE_ENVS = DEFAULT_DEBUG_NODE_ENVS,
107
- DECODERS = DEFAULT_DECODERS,
108
- ENCODERS = DEFAULT_ENCODERS,
109
- log = noop,
110
- time = Date.now.bind(Date),
111
- ...services
112
- },
113
- ) {
114
103
  const path = Object.keys(OPERATION_API.paths)[0];
115
- const method = Object.keys(OPERATION_API.paths[path])[0];
116
- const OPERATION: WhookOperation = {
104
+ const pathObject = OPERATION_API.paths[path];
105
+
106
+ if (typeof pathObject === 'undefined' || '$ref' in pathObject) {
107
+ throw new YError('E_BAD_OPERATION', 'pathObject', pathObject);
108
+ }
109
+
110
+ const method = Object.keys(pathObject)[0];
111
+ const operationObject = pathObject[method];
112
+
113
+ if (typeof operationObject === 'undefined' || '$ref' in operationObject) {
114
+ throw new YError('E_BAD_OPERATION', 'operationObject', operationObject);
115
+ }
116
+
117
+ const operation: WhookOperation = {
117
118
  path,
118
119
  method,
119
- ...OPERATION_API.paths[path][method],
120
+ ...operationObject,
120
121
  };
121
122
  const consumableCharsets = Object.keys(DECODERS);
122
123
  const produceableCharsets = Object.keys(ENCODERS);
123
- const consumableMediaTypes = extractConsumableMediaTypes(OPERATION);
124
- const produceableMediaTypes = extractProduceableMediaTypes(OPERATION);
124
+ const consumableMediaTypes = extractConsumableMediaTypes(operation);
125
+ const produceableMediaTypes = extractProduceableMediaTypes(operation);
125
126
  const ajv = new Ajv.default({
126
- verbose: DEBUG_NODE_ENVS.includes(NODE_ENV),
127
+ verbose: DEBUG_NODE_ENVS.includes(ENV.NODE_ENV),
127
128
  strict: true,
128
129
  logger: {
129
- log: (...args) => log?.('debug', ...args),
130
- warn: (...args) => log?.('warning', ...args),
131
- error: (...args) => log?.('error', ...args),
130
+ log: (...args: string[]) => log?.('debug', ...args),
131
+ warn: (...args: string[]) => log?.('warning', ...args),
132
+ error: (...args: string[]) => log?.('error', ...args),
132
133
  },
133
134
  useDefaults: true,
134
135
  coerceTypes: true,
@@ -136,72 +137,67 @@ async function initHandlerForAWSHTTPFunction(
136
137
  addAJVFormats.default(ajv);
137
138
  const ammendedParameters = extractOperationSecurityParameters(
138
139
  OPERATION_API,
139
- OPERATION,
140
+ operation,
140
141
  );
141
142
  const validators = prepareParametersValidators(
142
143
  ajv,
143
- OPERATION.operationId,
144
- ((OPERATION.parameters || []) as OpenAPIV3.ParameterObject[]).concat(
144
+ operation.operationId,
145
+ ((operation.parameters || []) as OpenAPIV3.ParameterObject[]).concat(
145
146
  ammendedParameters,
146
147
  ),
147
148
  );
148
- const bodyValidator = prepareBodyValidator(ajv, OPERATION);
149
- const applyWrappers = compose(...WRAPPERS) as WhookWrapper<
150
- Dependencies,
151
- Service
152
- >;
153
-
154
- const handler = await (
155
- applyWrappers(initHandler) as ServiceInitializer<Dependencies, Service>
156
- )({
157
- OPERATION,
158
- DEBUG_NODE_ENVS,
159
- NODE_ENV,
160
- ...services,
161
- time,
162
- log,
163
- });
149
+ const bodyValidator = prepareBodyValidator(ajv, operation);
150
+ const wrapper = async (handler: S): Promise<S> => {
151
+ const wrappedHandler = handleForAWSHTTPFunction.bind(
152
+ null,
153
+ {
154
+ ENV,
155
+ DEBUG_NODE_ENVS,
156
+ CORS,
157
+ DECODERS,
158
+ ENCODERS,
159
+ PARSERS,
160
+ STRINGIFYERS,
161
+ BUFFER_LIMIT,
162
+ QUERY_PARSER,
163
+ obfuscator,
164
+ log,
165
+ },
166
+ {
167
+ consumableMediaTypes,
168
+ produceableMediaTypes,
169
+ consumableCharsets,
170
+ produceableCharsets,
171
+ validators,
172
+ bodyValidator,
173
+ operation,
174
+ },
175
+ handler as any,
176
+ );
164
177
 
165
- return handleForAWSHTTPFunction.bind(
166
- null,
167
- {
168
- OPERATION,
169
- NODE_ENV,
170
- DEBUG_NODE_ENVS,
171
- DECODERS,
172
- ENCODERS,
173
- log,
174
- time,
175
- ...services,
176
- },
177
- {
178
- consumableMediaTypes,
179
- produceableMediaTypes,
180
- consumableCharsets,
181
- produceableCharsets,
182
- validators,
183
- bodyValidator,
184
- ammendedParameters,
185
- },
186
- handler,
187
- );
178
+ return wrappedHandler as unknown as S;
179
+ };
180
+
181
+ return wrapper;
188
182
  }
189
183
 
190
184
  async function handleForAWSHTTPFunction(
191
185
  {
192
- OPERATION,
193
- DEBUG_NODE_ENVS,
194
- NODE_ENV,
195
- ENCODERS,
186
+ ENV,
187
+ DEBUG_NODE_ENVS = DEFAULT_DEBUG_NODE_ENVS,
188
+ CORS,
196
189
  DECODERS,
197
- PARSERS = DEFAULT_PARSERS,
198
- STRINGIFYERS = DEFAULT_STRINGIFYERS,
199
- BUFFER_LIMIT = DEFAULT_BUFFER_LIMIT,
190
+ ENCODERS,
191
+ PARSERS,
192
+ STRINGIFYERS,
193
+ BUFFER_LIMIT,
200
194
  QUERY_PARSER,
201
- CORS,
202
- log,
203
195
  obfuscator,
204
- }: HTTPWrapperDependencies & { CORS: CORSConfig },
196
+ log,
197
+ }: Omit<
198
+ Required<WhookWrapHTTPFunctionDependencies>,
199
+ 'time' | 'OPERATION_API'
200
+ >,
205
201
  {
206
202
  consumableMediaTypes,
207
203
  produceableMediaTypes,
@@ -209,12 +205,27 @@ async function handleForAWSHTTPFunction(
209
205
  produceableCharsets,
210
206
  validators,
211
207
  bodyValidator,
208
+ operation,
209
+ }: {
210
+ consumableMediaTypes: string[];
211
+ produceableMediaTypes: string[];
212
+ consumableCharsets: string[];
213
+ produceableCharsets: string[];
214
+ validators: {
215
+ [name: string]: Ajv.ValidateFunction<unknown>;
216
+ };
217
+ bodyValidator: (
218
+ operation: WhookOperation,
219
+ contentType: string,
220
+ value: unknown,
221
+ ) => void;
222
+ operation: WhookOperation;
212
223
  },
213
224
  handler: WhookHandler,
214
225
  req,
215
226
  res,
216
227
  ) {
217
- const debugging = (DEBUG_NODE_ENVS || []).includes(NODE_ENV);
228
+ const debugging = (DEBUG_NODE_ENVS || []).includes(ENV.NODE_ENV);
218
229
  const bufferLimit = bytes.parse(BUFFER_LIMIT);
219
230
 
220
231
  log?.(
@@ -246,7 +257,6 @@ async function handleForAWSHTTPFunction(
246
257
  );
247
258
 
248
259
  try {
249
- const operation = OPERATION;
250
260
  const bodySpec = extractBodySpec(
251
261
  request,
252
262
  consumableMediaTypes,
@@ -278,7 +288,7 @@ async function handleForAWSHTTPFunction(
278
288
  );
279
289
 
280
290
  const pathParameters = (
281
- OPERATION.path
291
+ operation.path
282
292
  .split(PATH_SEPARATOR)
283
293
  .filter(identity)
284
294
  .map((part, index) => {
@@ -302,7 +312,7 @@ async function handleForAWSHTTPFunction(
302
312
  );
303
313
 
304
314
  // TODO: Update strictQS to handle OpenAPI 3
305
- const retroCompatibleQueryParameters = (OPERATION.parameters || [])
315
+ const retroCompatibleQueryParameters = (operation.parameters || [])
306
316
  .filter((p) => p.in === 'query')
307
317
  .map((p) => ({ ...p, ...p.schema }));
308
318
 
@@ -468,3 +478,5 @@ function obfuscateEventBody(obfuscator, rawBody) {
468
478
  }
469
479
  return rawBody;
470
480
  }
481
+
482
+ export default autoService(initWrapHandlerForGoogleHTTPFunction);
@@ -1,8 +0,0 @@
1
- import { describe, it } from '@jest/globals';
2
- import initLogService from './log.js';
3
- describe('initLogService', () => {
4
- it('should work', async () => {
5
- await initLogService({});
6
- });
7
- });
8
- //# sourceMappingURL=log.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log.test.js","sourceRoot":"","sources":["../../src/services/log.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,cAAc,MAAM,UAAU,CAAC;AAEtC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,22 +0,0 @@
1
- import { DEFAULT_PARSERS, DEFAULT_STRINGIFYERS, DEFAULT_DECODERS, DEFAULT_ENCODERS } from '@whook/http-router';
2
- import type { WhookQueryStringParser } from '@whook/http-router';
3
- import type { ServiceInitializer, Dependencies, Service } from 'knifecycle';
4
- import type { WhookHandler, ObfuscatorService, WhookOperation, WhookWrapper } from '@whook/whook';
5
- import type { TimeService, LogService } from 'common-services';
6
- type HTTPWrapperDependencies = {
7
- NODE_ENV: string;
8
- DEBUG_NODE_ENVS?: string[];
9
- OPERATION: WhookOperation;
10
- DECODERS?: typeof DEFAULT_DECODERS;
11
- ENCODERS?: typeof DEFAULT_ENCODERS;
12
- PARSERS?: typeof DEFAULT_PARSERS;
13
- STRINGIFYERS?: typeof DEFAULT_STRINGIFYERS;
14
- QUERY_PARSER: WhookQueryStringParser;
15
- BUFFER_LIMIT?: string;
16
- obfuscator: ObfuscatorService;
17
- time?: TimeService;
18
- log?: LogService;
19
- WRAPPERS: WhookWrapper<Dependencies, Service>[];
20
- };
21
- export default function wrapHandlerForAWSHTTPFunction<D extends Dependencies, S extends WhookHandler>(initHandler: ServiceInitializer<D, S>): ServiceInitializer<D & HTTPWrapperDependencies, S>;
22
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"googleHTTPFunction.js","sourceRoot":"","sources":["../../src/wrappers/googleHTTPFunction.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { describe, it } from '@jest/globals';
2
- import initLogService from './log.js';
3
-
4
- describe('initLogService', () => {
5
- it('should work', async () => {
6
- await initLogService({});
7
- });
8
- });