@whook/gcp-functions 13.0.0 → 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 +43 -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 +74 -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} +70 -62
  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 +131 -36
  31. package/src/services/log.ts +2 -2
  32. package/src/wrappers/{googleHTTPFunction.ts → wrapHandlerForGoogleHTTPFunction.ts} +134 -122
  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,5 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { printStackTrace } from 'yerror';
2
+ import { YError, printStackTrace } from 'yerror';
3
3
  import {
4
4
  DEFAULT_DEBUG_NODE_ENVS,
5
5
  DEFAULT_BUFFER_LIMIT,
@@ -10,7 +10,7 @@ import {
10
10
  extractOperationSecurityParameters,
11
11
  castParameters,
12
12
  } from '@whook/http-router';
13
- import { reuseSpecialProps, alsoInject } from 'knifecycle';
13
+ import { autoService } from 'knifecycle';
14
14
  import Ajv from 'ajv';
15
15
  import addAJVFormats from 'ajv-formats';
16
16
  import bytes from 'bytes';
@@ -30,15 +30,14 @@ import {
30
30
  getBody,
31
31
  sendBody,
32
32
  } from '@whook/http-router';
33
- import { noop, compose, identity, lowerCaseHeaders } from '@whook/whook';
33
+ import { noop, identity, lowerCaseHeaders } from '@whook/whook';
34
34
  import stream from 'stream';
35
35
  import type { WhookQueryStringParser } from '@whook/http-router';
36
- import type { ServiceInitializer, Dependencies, Service } from 'knifecycle';
37
36
  import type {
38
37
  WhookRequest,
39
38
  WhookResponse,
40
39
  WhookHandler,
41
- ObfuscatorService,
40
+ WhookObfuscatorService,
42
41
  WhookOperation,
43
42
  WhookWrapper,
44
43
  } from '@whook/whook';
@@ -46,90 +45,91 @@ import type { TimeService, LogService } from 'common-services';
46
45
  import type { OpenAPIV3 } from 'openapi-types';
47
46
  import type { Readable } from 'stream';
48
47
  import type { CORSConfig } from '@whook/cors';
48
+ import type { AppEnvVars } from 'application-services';
49
49
 
50
- type HTTPWrapperDependencies = {
51
- NODE_ENV: string;
50
+ const SEARCH_SEPARATOR = '?';
51
+ const PATH_SEPARATOR = '/';
52
+
53
+ export type WhookWrapHTTPFunctionDependencies = {
54
+ CORS: CORSConfig;
55
+ ENV: AppEnvVars;
52
56
  DEBUG_NODE_ENVS?: string[];
53
- OPERATION: WhookOperation;
54
57
  DECODERS?: typeof DEFAULT_DECODERS;
55
58
  ENCODERS?: typeof DEFAULT_ENCODERS;
56
59
  PARSERS?: typeof DEFAULT_PARSERS;
57
60
  STRINGIFYERS?: typeof DEFAULT_STRINGIFYERS;
58
61
  QUERY_PARSER: WhookQueryStringParser;
59
62
  BUFFER_LIMIT?: string;
60
- obfuscator: ObfuscatorService;
63
+ obfuscator: WhookObfuscatorService;
61
64
  time?: TimeService;
62
65
  log?: LogService;
63
- WRAPPERS: WhookWrapper<Dependencies, Service>[];
66
+ OPERATION_API: OpenAPIV3.Document;
64
67
  };
65
68
 
66
- const SEARCH_SEPARATOR = '?';
67
- const PATH_SEPARATOR = '/';
68
-
69
- export default function wrapHandlerForAWSHTTPFunction<
70
- D extends Dependencies,
71
- S extends WhookHandler,
72
- >(
73
- initHandler: ServiceInitializer<D, S>,
74
- ): ServiceInitializer<D & HTTPWrapperDependencies, S> {
75
- return alsoInject<HTTPWrapperDependencies, D, S>(
76
- [
77
- 'OPERATION_API',
78
- 'WRAPPERS',
79
- '?DEBUG_NODE_ENVS',
80
- 'NODE_ENV',
81
- '?DECODERS',
82
- '?ENCODERS',
83
- '?PARSERS',
84
- '?STRINGIFYERS',
85
- '?BUFFER_LIMIT',
86
- 'QUERY_PARSER',
87
- 'obfuscator',
88
- '?log',
89
- '?time',
90
- ],
91
- reuseSpecialProps(
92
- initHandler,
93
- (initHandlerForAWSHTTPFunction as any).bind(
94
- null,
95
- initHandler,
96
- ) as ServiceInitializer<D, S>,
97
- ),
98
- );
99
- }
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.');
100
102
 
101
- async function initHandlerForAWSHTTPFunction(
102
- initHandler: ServiceInitializer<Dependencies, WhookHandler>,
103
- {
104
- OPERATION_API,
105
- WRAPPERS,
106
- NODE_ENV,
107
- DEBUG_NODE_ENVS = DEFAULT_DEBUG_NODE_ENVS,
108
- DECODERS = DEFAULT_DECODERS,
109
- ENCODERS = DEFAULT_ENCODERS,
110
- log = noop,
111
- time = Date.now.bind(Date),
112
- ...services
113
- },
114
- ) {
115
103
  const path = Object.keys(OPERATION_API.paths)[0];
116
- const method = Object.keys(OPERATION_API.paths[path])[0];
117
- 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 = {
118
118
  path,
119
119
  method,
120
- ...OPERATION_API.paths[path][method],
120
+ ...operationObject,
121
121
  };
122
122
  const consumableCharsets = Object.keys(DECODERS);
123
123
  const produceableCharsets = Object.keys(ENCODERS);
124
- const consumableMediaTypes = extractConsumableMediaTypes(OPERATION);
125
- const produceableMediaTypes = extractProduceableMediaTypes(OPERATION);
124
+ const consumableMediaTypes = extractConsumableMediaTypes(operation);
125
+ const produceableMediaTypes = extractProduceableMediaTypes(operation);
126
126
  const ajv = new Ajv.default({
127
- verbose: DEBUG_NODE_ENVS.includes(NODE_ENV),
127
+ verbose: DEBUG_NODE_ENVS.includes(ENV.NODE_ENV),
128
128
  strict: true,
129
129
  logger: {
130
- log: (...args) => log?.('debug', ...args),
131
- warn: (...args) => log?.('warning', ...args),
132
- 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),
133
133
  },
134
134
  useDefaults: true,
135
135
  coerceTypes: true,
@@ -137,71 +137,67 @@ async function initHandlerForAWSHTTPFunction(
137
137
  addAJVFormats.default(ajv);
138
138
  const ammendedParameters = extractOperationSecurityParameters(
139
139
  OPERATION_API,
140
- OPERATION,
140
+ operation,
141
141
  );
142
142
  const validators = prepareParametersValidators(
143
143
  ajv,
144
- OPERATION.operationId,
145
- ((OPERATION.parameters || []) as OpenAPIV3.ParameterObject[]).concat(
144
+ operation.operationId,
145
+ ((operation.parameters || []) as OpenAPIV3.ParameterObject[]).concat(
146
146
  ammendedParameters,
147
147
  ),
148
148
  );
149
- const bodyValidator = prepareBodyValidator(ajv, OPERATION);
150
- const applyWrappers = compose(...WRAPPERS) as WhookWrapper<
151
- Dependencies,
152
- Service
153
- >;
154
-
155
- const handler = await (
156
- applyWrappers(initHandler) as ServiceInitializer<Dependencies, Service>
157
- )({
158
- OPERATION,
159
- DEBUG_NODE_ENVS,
160
- NODE_ENV,
161
- ...services,
162
- time,
163
- log,
164
- });
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
+ );
165
177
 
166
- return handleForAWSHTTPFunction.bind(
167
- null,
168
- {
169
- OPERATION,
170
- NODE_ENV,
171
- DEBUG_NODE_ENVS,
172
- DECODERS,
173
- ENCODERS,
174
- log,
175
- time,
176
- ...services,
177
- } as unknown as HTTPWrapperDependencies & { CORS: CORSConfig },
178
- {
179
- consumableMediaTypes,
180
- produceableMediaTypes,
181
- consumableCharsets,
182
- produceableCharsets,
183
- validators,
184
- bodyValidator,
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
- });