@whook/gcp-functions 9.0.0 → 10.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 +14 -11
- package/dist/commands/testHTTPFunction.d.ts +1 -1
- package/dist/commands/testHTTPFunction.js +119 -150
- package/dist/commands/testHTTPFunction.js.map +1 -1
- package/dist/index.d.ts +2 -4
- package/dist/index.js +182 -269
- package/dist/index.js.map +1 -1
- package/dist/libs/utils.js +16 -35
- package/dist/libs/utils.js.map +1 -1
- package/dist/services/_autoload.d.ts +3 -3
- package/dist/services/_autoload.js +83 -109
- package/dist/services/_autoload.js.map +1 -1
- package/dist/services/log.js +2 -12
- package/dist/services/log.js.map +1 -1
- package/dist/services/log.test.js +4 -9
- package/dist/services/log.test.js.map +1 -1
- package/dist/wrappers/googleHTTPFunction.js +246 -294
- package/dist/wrappers/googleHTTPFunction.js.map +1 -1
- package/package.json +49 -90
- package/src/commands/testHTTPFunction.ts +6 -13
- package/src/index.ts +28 -48
- package/src/libs/utils.ts +3 -4
- package/src/services/_autoload.ts +4 -3
- package/src/services/log.test.ts +1 -1
- package/src/wrappers/googleHTTPFunction.ts +6 -6
- package/dist/commands/testHTTPFunction.mjs +0 -136
- package/dist/commands/testHTTPFunction.mjs.map +0 -1
- package/dist/index.mjs +0 -265
- package/dist/index.mjs.map +0 -1
- package/dist/libs/utils.mjs +0 -27
- package/dist/libs/utils.mjs.map +0 -1
- package/dist/services/_autoload.mjs +0 -113
- package/dist/services/_autoload.mjs.map +0 -1
- package/dist/services/log.mjs +0 -4
- package/dist/services/log.mjs.map +0 -1
- package/dist/services/log.test.mjs +0 -7
- package/dist/services/log.test.mjs.map +0 -1
- package/dist/wrappers/googleHTTPFunction.mjs +0 -290
- package/dist/wrappers/googleHTTPFunction.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -21,15 +21,14 @@ You can find a complete setup with a Terraform deployment example in
|
|
|
21
21
|
|
|
22
22
|
## Quick setup
|
|
23
23
|
|
|
24
|
-
Install this module
|
|
24
|
+
Install this module:
|
|
25
25
|
|
|
26
26
|
```sh
|
|
27
27
|
npm i @whook/gcp-functions;
|
|
28
|
-
npm i --save-dev @whook/http-transaction esbuild
|
|
29
28
|
```
|
|
30
29
|
|
|
31
30
|
Add this module to your Whook plugins and tweak the 2 build functions in your
|
|
32
|
-
`build.ts` main file:
|
|
31
|
+
`src/build.ts` main file:
|
|
33
32
|
|
|
34
33
|
```diff
|
|
35
34
|
import {
|
|
@@ -103,7 +102,8 @@ Declare this module types in your `src/whook.d.ts` type
|
|
|
103
102
|
```diff
|
|
104
103
|
+ import type { WhookCompilerConfig } from '@whook/whook';
|
|
105
104
|
+ import type {
|
|
106
|
-
+
|
|
105
|
+
+ WhookGCPBuildConfig,
|
|
106
|
+
+ WhookAPIOperationGCPFunctionConfig
|
|
107
107
|
+ } from '@whook/gcp-functions';
|
|
108
108
|
|
|
109
109
|
declare module '@whook/whook' {
|
|
@@ -112,7 +112,9 @@ declare module '@whook/whook' {
|
|
|
112
112
|
|
|
113
113
|
export interface WhookConfigs
|
|
114
114
|
- extends WhookBaseConfigs {}
|
|
115
|
-
+ extends WhookBaseConfigs,
|
|
115
|
+
+ extends WhookBaseConfigs,
|
|
116
|
+
+ WhookGCPBuildConfig,
|
|
117
|
+
+ WhookCompilerConfig {}
|
|
116
118
|
|
|
117
119
|
// ...
|
|
118
120
|
|
|
@@ -121,6 +123,7 @@ declare module '@whook/whook' {
|
|
|
121
123
|
U extends {
|
|
122
124
|
[K in keyof U]: K extends `x-${string}` ? Record<string, unknown> : never;
|
|
123
125
|
} = unknown,
|
|
126
|
+
V extends Record<string, unknown> = Record<string, unknown>,
|
|
124
127
|
> extends WhookBaseAPIHandlerDefinition<T, U> {
|
|
125
128
|
operation: U & WhookAPIOperation<
|
|
126
129
|
T &
|
|
@@ -142,7 +145,7 @@ const CONFIG: WhookConfigs = {
|
|
|
142
145
|
// ...
|
|
143
146
|
+ COMPILER_OPTIONS: {
|
|
144
147
|
+ externalModules: [],
|
|
145
|
-
+ target: '
|
|
148
|
+
+ target: '16',
|
|
146
149
|
+ },
|
|
147
150
|
};
|
|
148
151
|
|
|
@@ -151,14 +154,14 @@ export default CONFIG;
|
|
|
151
154
|
|
|
152
155
|
# Build
|
|
153
156
|
|
|
154
|
-
To build your functions
|
|
157
|
+
To build your functions:
|
|
155
158
|
|
|
156
159
|
```sh
|
|
157
160
|
# Build all functions
|
|
158
|
-
npm run
|
|
161
|
+
npm run build
|
|
159
162
|
|
|
160
163
|
# Build only one function
|
|
161
|
-
npm run
|
|
164
|
+
npm run build -- getPing
|
|
162
165
|
```
|
|
163
166
|
|
|
164
167
|
# Debug
|
|
@@ -171,10 +174,10 @@ your `WHOOK_PLUGINS` list. It provides you some commands like the
|
|
|
171
174
|
npx whook testHTTPFunction --name getPing
|
|
172
175
|
```
|
|
173
176
|
|
|
174
|
-
To get more insights when errors happens:
|
|
177
|
+
To get more insights when some errors happens:
|
|
175
178
|
|
|
176
179
|
```sh
|
|
177
|
-
npm run whook-dev -- testHTTPFunction --name getPing
|
|
180
|
+
DEBUG=whook npm run whook-dev -- testHTTPFunction --name getPing
|
|
178
181
|
```
|
|
179
182
|
|
|
180
183
|
## Deployment
|
|
@@ -7,6 +7,6 @@ declare const _default: import("knifecycle").ServiceInitializer<{
|
|
|
7
7
|
PROJECT_DIR: string;
|
|
8
8
|
API: OpenAPIV3.Document<{}>;
|
|
9
9
|
log: LogService;
|
|
10
|
-
args: WhookCommandArgs
|
|
10
|
+
args: WhookCommandArgs<Record<string, import("@whook/cli").WhookArgsTypes>>;
|
|
11
11
|
}, () => Promise<void>>;
|
|
12
12
|
export default _default;
|
|
@@ -1,156 +1,125 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _utils = require("../libs/utils");
|
|
9
|
-
|
|
10
|
-
var _knifecycle = require("knifecycle");
|
|
11
|
-
|
|
12
|
-
var _cli = require("@whook/cli");
|
|
13
|
-
|
|
14
|
-
var _yerror = _interopRequireDefault(require("yerror"));
|
|
15
|
-
|
|
16
|
-
var _httpRouter = require("@whook/http-router");
|
|
17
|
-
|
|
18
|
-
var _stream = _interopRequireDefault(require("stream"));
|
|
19
|
-
|
|
20
|
-
var _camelcase = _interopRequireDefault(require("camelcase"));
|
|
21
|
-
|
|
22
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
-
|
|
1
|
+
import { loadLambda } from '../libs/utils.js';
|
|
2
|
+
import { extra, autoService } from 'knifecycle';
|
|
3
|
+
import { readArgs } from '@whook/cli';
|
|
4
|
+
import { YError } from 'yerror';
|
|
5
|
+
import { dereferenceOpenAPIOperations, getOpenAPIOperations, } from '@whook/http-router';
|
|
6
|
+
import stream from 'stream';
|
|
7
|
+
import camelCase from 'camelcase';
|
|
24
8
|
const SEARCH_SEPARATOR = '?';
|
|
25
9
|
const PATH_SEPARATOR = '/';
|
|
26
|
-
const definition = {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
10
|
+
export const definition = {
|
|
11
|
+
description: 'A command for testing AWS HTTP lambda',
|
|
12
|
+
example: `whook testHTTPLambda --name getPing`,
|
|
13
|
+
arguments: {
|
|
14
|
+
type: 'object',
|
|
15
|
+
additionalProperties: false,
|
|
16
|
+
required: ['name'],
|
|
17
|
+
properties: {
|
|
18
|
+
name: {
|
|
19
|
+
description: 'Name of the lamda to run',
|
|
20
|
+
type: 'string',
|
|
21
|
+
},
|
|
22
|
+
type: {
|
|
23
|
+
description: 'Type of lambda to test',
|
|
24
|
+
type: 'string',
|
|
25
|
+
enum: ['main', 'index'],
|
|
26
|
+
default: 'index',
|
|
27
|
+
},
|
|
28
|
+
contentType: {
|
|
29
|
+
description: 'Content type of the payload',
|
|
30
|
+
type: 'string',
|
|
31
|
+
default: 'application/json',
|
|
32
|
+
},
|
|
33
|
+
parameters: {
|
|
34
|
+
description: 'The HTTP call parameters',
|
|
35
|
+
type: 'string',
|
|
36
|
+
default: '{}',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
56
40
|
};
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
PROJECT_DIR,
|
|
66
|
-
API,
|
|
67
|
-
log,
|
|
68
|
-
args
|
|
69
|
-
}) {
|
|
70
|
-
return async () => {
|
|
71
|
-
const {
|
|
72
|
-
name,
|
|
73
|
-
type,
|
|
74
|
-
contentType,
|
|
75
|
-
parameters: rawParameters
|
|
76
|
-
} = (0, _cli.readArgs)(definition.arguments, args);
|
|
77
|
-
const handler = await (0, _utils.loadLambda)({
|
|
78
|
-
PROJECT_DIR,
|
|
79
|
-
log
|
|
80
|
-
}, NODE_ENV, name, type);
|
|
81
|
-
const OPERATION = (await (0, _httpRouter.dereferenceOpenAPIOperations)(API, (0, _httpRouter.getOpenAPIOperations)(API))).find(({
|
|
82
|
-
operationId
|
|
83
|
-
}) => operationId === name);
|
|
84
|
-
|
|
85
|
-
if (!OPERATION) {
|
|
86
|
-
throw new _yerror.default('E_OPERATION_NOT_FOUND');
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
const hasBody = !!OPERATION.requestBody;
|
|
90
|
-
const parameters = JSON.parse(rawParameters);
|
|
91
|
-
const search = (OPERATION.parameters || []).filter(p => p.in === 'query').reduce((accSearch, p) => {
|
|
92
|
-
if (null != parameters[p.name]) {
|
|
93
|
-
return accSearch + (accSearch ? '&' : '') + p.name + '=' + parameters[p.name];
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
return accSearch;
|
|
97
|
-
}, '');
|
|
98
|
-
const path = OPERATION.path.split(PATH_SEPARATOR).map(part => {
|
|
99
|
-
const matches = /^\{([\d\w]+)\}$/i.exec(part);
|
|
100
|
-
|
|
101
|
-
if (matches) {
|
|
102
|
-
return parameters[matches[1]];
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return part;
|
|
106
|
-
}).join(PATH_SEPARATOR);
|
|
107
|
-
const gcpfRequest = {
|
|
108
|
-
method: OPERATION.method,
|
|
109
|
-
originalUrl: path + (search ? SEARCH_SEPARATOR + search : ''),
|
|
110
|
-
headers: (OPERATION.parameters || []).filter(p => p.in === 'header').reduce((headerParameters, p) => {
|
|
111
|
-
headerParameters[p.name] = parameters[(0, _camelcase.default)(p.name)];
|
|
112
|
-
return headerParameters;
|
|
113
|
-
}, {}),
|
|
114
|
-
rawBody: Buffer.from(hasBody ? contentType === 'application/json' ? parameters.body ? JSON.stringify(parameters.body) : '' : parameters.body || '' : '')
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
if (hasBody) {
|
|
118
|
-
gcpfRequest.headers['content-type'] = `${contentType};charset=UTF-8`;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
log('info', 'GCPF_REQUEST:', gcpfRequest);
|
|
122
|
-
const response = {
|
|
123
|
-
status: 0,
|
|
124
|
-
headers: {},
|
|
125
|
-
data: ''
|
|
126
|
-
};
|
|
127
|
-
await new Promise((resolve, reject) => {
|
|
128
|
-
const gcpfResponse = new _stream.default.PassThrough();
|
|
129
|
-
|
|
130
|
-
gcpfResponse.set = (name, value) => {
|
|
131
|
-
response.headers[name] = value;
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
gcpfResponse.status = code => {
|
|
135
|
-
response.status = code;
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
handler(gcpfRequest, gcpfResponse).catch(reject);
|
|
139
|
-
const chunks = [];
|
|
140
|
-
gcpfResponse.once('end', () => {
|
|
141
|
-
response.data = Buffer.concat(chunks).toString();
|
|
142
|
-
resolve();
|
|
143
|
-
});
|
|
144
|
-
gcpfResponse.once('error', reject);
|
|
145
|
-
gcpfResponse.on('readable', () => {
|
|
146
|
-
let data;
|
|
147
|
-
|
|
148
|
-
while (data = gcpfResponse.read()) {
|
|
149
|
-
chunks.push(data);
|
|
41
|
+
export default extra(definition, autoService(initTestHTTPLambdaCommand));
|
|
42
|
+
async function initTestHTTPLambdaCommand({ NODE_ENV, PROJECT_DIR, API, log, args, }) {
|
|
43
|
+
return async () => {
|
|
44
|
+
const { namedArguments: { name, type, contentType, parameters: rawParameters }, } = readArgs(definition.arguments, args);
|
|
45
|
+
const handler = await loadLambda({ PROJECT_DIR, log }, NODE_ENV, name, type);
|
|
46
|
+
const OPERATION = (await dereferenceOpenAPIOperations(API, getOpenAPIOperations(API))).find(({ operationId }) => operationId === name);
|
|
47
|
+
if (!OPERATION) {
|
|
48
|
+
throw new YError('E_OPERATION_NOT_FOUND');
|
|
150
49
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
50
|
+
const hasBody = !!OPERATION.requestBody;
|
|
51
|
+
const parameters = JSON.parse(rawParameters);
|
|
52
|
+
const search = (OPERATION.parameters || [])
|
|
53
|
+
.filter((p) => p.in === 'query')
|
|
54
|
+
.reduce((accSearch, p) => {
|
|
55
|
+
if (null != parameters[p.name]) {
|
|
56
|
+
return (accSearch +
|
|
57
|
+
(accSearch ? '&' : '') +
|
|
58
|
+
p.name +
|
|
59
|
+
'=' +
|
|
60
|
+
parameters[p.name]);
|
|
61
|
+
}
|
|
62
|
+
return accSearch;
|
|
63
|
+
}, '');
|
|
64
|
+
const path = OPERATION.path
|
|
65
|
+
.split(PATH_SEPARATOR)
|
|
66
|
+
.map((part) => {
|
|
67
|
+
const matches = /^\{([\d\w]+)\}$/i.exec(part);
|
|
68
|
+
if (matches) {
|
|
69
|
+
return parameters[matches[1]];
|
|
70
|
+
}
|
|
71
|
+
return part;
|
|
72
|
+
})
|
|
73
|
+
.join(PATH_SEPARATOR);
|
|
74
|
+
const gcpfRequest = {
|
|
75
|
+
method: OPERATION.method,
|
|
76
|
+
originalUrl: path + (search ? SEARCH_SEPARATOR + search : ''),
|
|
77
|
+
headers: (OPERATION.parameters || [])
|
|
78
|
+
.filter((p) => p.in === 'header')
|
|
79
|
+
.reduce((headerParameters, p) => {
|
|
80
|
+
headerParameters[p.name] = parameters[camelCase(p.name)];
|
|
81
|
+
return headerParameters;
|
|
82
|
+
}, {}),
|
|
83
|
+
rawBody: Buffer.from(hasBody
|
|
84
|
+
? contentType === 'application/json'
|
|
85
|
+
? parameters.body
|
|
86
|
+
? JSON.stringify(parameters.body)
|
|
87
|
+
: ''
|
|
88
|
+
: parameters.body || ''
|
|
89
|
+
: ''),
|
|
90
|
+
};
|
|
91
|
+
if (hasBody) {
|
|
92
|
+
gcpfRequest.headers['content-type'] = `${contentType};charset=UTF-8`;
|
|
93
|
+
}
|
|
94
|
+
log('info', 'GCPF_REQUEST:', gcpfRequest);
|
|
95
|
+
const response = {
|
|
96
|
+
status: 0,
|
|
97
|
+
headers: {},
|
|
98
|
+
data: '',
|
|
99
|
+
};
|
|
100
|
+
await new Promise((resolve, reject) => {
|
|
101
|
+
const gcpfResponse = new stream.PassThrough();
|
|
102
|
+
gcpfResponse.set = (name, value) => {
|
|
103
|
+
response.headers[name] = value;
|
|
104
|
+
};
|
|
105
|
+
gcpfResponse.status = (code) => {
|
|
106
|
+
response.status = code;
|
|
107
|
+
};
|
|
108
|
+
handler(gcpfRequest, gcpfResponse).catch(reject);
|
|
109
|
+
const chunks = [];
|
|
110
|
+
gcpfResponse.once('end', () => {
|
|
111
|
+
response.data = Buffer.concat(chunks).toString();
|
|
112
|
+
resolve();
|
|
113
|
+
});
|
|
114
|
+
gcpfResponse.once('error', reject);
|
|
115
|
+
gcpfResponse.on('readable', () => {
|
|
116
|
+
let data;
|
|
117
|
+
while ((data = gcpfResponse.read())) {
|
|
118
|
+
chunks.push(data);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
log('info', 'SUCCESS:', response);
|
|
123
|
+
};
|
|
155
124
|
}
|
|
156
125
|
//# sourceMappingURL=testHTTPFunction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testHTTPFunction.js","
|
|
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,9 +1,7 @@
|
|
|
1
|
-
import Knifecycle from 'knifecycle';
|
|
1
|
+
import { Knifecycle } from 'knifecycle';
|
|
2
2
|
import type { WhookCompilerOptions } from '@whook/whook';
|
|
3
|
-
import type { BuildOptions } from 'knifecycle/dist/build';
|
|
4
3
|
export declare const DEFAULT_BUILD_PARALLELISM = 10;
|
|
5
|
-
export declare type
|
|
6
|
-
BUILD_OPTIONS?: BuildOptions;
|
|
4
|
+
export declare type WhookGCPBuildConfig = {
|
|
7
5
|
BUILD_PARALLELISM?: number;
|
|
8
6
|
};
|
|
9
7
|
export declare type WhookAPIOperationGCPFunctionConfig = {
|