vls-openapi-generator 1.8.3 → 1.10.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.
- package/.github/workflows/release.yaml +31 -12
- package/dist/generate-openapi.js +22 -13
- package/dist/lambda-type.d.ts +2 -0
- package/package.json +1 -1
- package/src/generate-openapi.ts +36 -16
- package/src/lambda-type.ts +2 -0
|
@@ -11,16 +11,26 @@ on:
|
|
|
11
11
|
jobs:
|
|
12
12
|
release:
|
|
13
13
|
if: github.event_name == 'push'
|
|
14
|
-
runs-on:
|
|
14
|
+
runs-on: [mb-runner]
|
|
15
|
+
container:
|
|
16
|
+
image: ubuntu:latest
|
|
15
17
|
steps:
|
|
18
|
+
- name: Install Git
|
|
19
|
+
run: apt-get update && apt-get -y install git
|
|
20
|
+
|
|
16
21
|
- name: Checkout code
|
|
17
|
-
uses: actions/checkout@
|
|
22
|
+
uses: actions/checkout@v4
|
|
23
|
+
with:
|
|
24
|
+
fetch-depth: 0
|
|
18
25
|
|
|
19
|
-
- name:
|
|
20
|
-
uses: actions/setup-node@
|
|
26
|
+
- name: Setup Node
|
|
27
|
+
uses: actions/setup-node@v4
|
|
21
28
|
with:
|
|
22
|
-
node-version:
|
|
23
|
-
|
|
29
|
+
node-version: 20
|
|
30
|
+
cache: 'npm'
|
|
31
|
+
|
|
32
|
+
- name: Set ownership
|
|
33
|
+
run: chown -R $(whoami) .
|
|
24
34
|
|
|
25
35
|
- name: Install dependencies
|
|
26
36
|
run: npm install
|
|
@@ -28,22 +38,31 @@ jobs:
|
|
|
28
38
|
- name: Build project
|
|
29
39
|
run: npm run build
|
|
30
40
|
|
|
41
|
+
- name: Check .git exists
|
|
42
|
+
run: |
|
|
43
|
+
echo "PWD: $PWD"
|
|
44
|
+
ls -la
|
|
45
|
+
ls -la .git || echo ".git not found"
|
|
46
|
+
|
|
31
47
|
- name: Release with Semantic
|
|
32
48
|
run: npx semantic-release
|
|
33
49
|
env:
|
|
34
|
-
|
|
50
|
+
NPM_TOKEN: ${{ secrets.NPM_TOKEN_FOR_VLS }}
|
|
35
51
|
|
|
36
52
|
build:
|
|
37
53
|
if: github.event_name == 'pull_request'
|
|
38
|
-
runs-on:
|
|
54
|
+
runs-on: [mb-runner]
|
|
55
|
+
container:
|
|
56
|
+
image: ubuntu:latest
|
|
39
57
|
steps:
|
|
40
58
|
- name: Checkout code
|
|
41
|
-
uses: actions/checkout@
|
|
59
|
+
uses: actions/checkout@v4
|
|
42
60
|
|
|
43
|
-
- name:
|
|
44
|
-
uses: actions/setup-node@
|
|
61
|
+
- name: Setup Node
|
|
62
|
+
uses: actions/setup-node@v4
|
|
45
63
|
with:
|
|
46
|
-
node-version:
|
|
64
|
+
node-version: 20
|
|
65
|
+
cache: 'npm'
|
|
47
66
|
|
|
48
67
|
- name: Install dependencies
|
|
49
68
|
run: npm install
|
package/dist/generate-openapi.js
CHANGED
|
@@ -76,22 +76,13 @@ const generateOpenAPI = async () => {
|
|
|
76
76
|
continue;
|
|
77
77
|
}
|
|
78
78
|
const { bodySchema, queryParametersSchema, eventResponseParametersSchema, eventResponseModulesSchema, OPENAPI_CONFIG: openAPIConfig } = (await Promise.resolve(`${path.join(SCHEMAS_DIR, fileName + '.js')}`).then(s => __importStar(require(s))).catch(() => ({})));
|
|
79
|
+
if (openAPIConfig.isDocumentationNeeded === false) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
79
82
|
const { LAMBDA_CONFIG } = (await Promise.resolve(`${path.join(HANDLERS_DIR, `${fileName}.js`)}`).then(s => __importStar(require(s))));
|
|
80
83
|
const bodyComponent = (0, zod_openapi_1.generateSchema)(bodySchema ?? zod_1.z.never(), undefined, '3.0');
|
|
81
84
|
const queryParametersComponent = (0, zod_openapi_1.generateSchema)(queryParametersSchema ?? zod_1.z.never(), undefined, '3.0');
|
|
82
|
-
const eventResponseComponent = (
|
|
83
|
-
...(eventResponseParametersSchema
|
|
84
|
-
? { params: eventResponseParametersSchema }
|
|
85
|
-
: { params: zod_1.z.object({}) }),
|
|
86
|
-
...(eventResponseModulesSchema
|
|
87
|
-
? { modules: eventResponseModulesSchema }
|
|
88
|
-
: {
|
|
89
|
-
modules: (0, zod_openapi_1.extendApi)(zod_1.z.array(zod_1.z.unknown()), {
|
|
90
|
-
example: []
|
|
91
|
-
})
|
|
92
|
-
}),
|
|
93
|
-
fallback: zod_1.z.boolean().default(false)
|
|
94
|
-
}), undefined, '3.0');
|
|
85
|
+
const eventResponseComponent = generateEventResponseComponent(openAPIConfig.responseType, eventResponseParametersSchema, eventResponseModulesSchema);
|
|
95
86
|
const queryParameters = [];
|
|
96
87
|
if (queryParametersSchema) {
|
|
97
88
|
for (const key in queryParametersComponent.properties) {
|
|
@@ -192,3 +183,21 @@ async function getStackURL(partnerName, environment) {
|
|
|
192
183
|
}
|
|
193
184
|
}
|
|
194
185
|
}
|
|
186
|
+
function generateEventResponseComponent(responseType = 'mindbehind-chat-bot-response', eventResponseParametersSchema, eventResponseModulesSchema) {
|
|
187
|
+
if (responseType === 'mindbehind-chat-bot-response') {
|
|
188
|
+
return (0, zod_openapi_1.generateSchema)(zod_1.z.object({
|
|
189
|
+
...(eventResponseParametersSchema
|
|
190
|
+
? { params: eventResponseParametersSchema }
|
|
191
|
+
: { params: zod_1.z.object({}) }),
|
|
192
|
+
...(eventResponseModulesSchema
|
|
193
|
+
? { modules: eventResponseModulesSchema }
|
|
194
|
+
: {
|
|
195
|
+
modules: (0, zod_openapi_1.extendApi)(zod_1.z.array(zod_1.z.unknown()), {
|
|
196
|
+
example: []
|
|
197
|
+
})
|
|
198
|
+
}),
|
|
199
|
+
fallback: zod_1.z.boolean().default(false)
|
|
200
|
+
}), undefined, '3.0');
|
|
201
|
+
}
|
|
202
|
+
return (0, zod_openapi_1.generateSchema)(eventResponseParametersSchema ?? zod_1.z.object({}), undefined, '3.0');
|
|
203
|
+
}
|
package/dist/lambda-type.d.ts
CHANGED
package/package.json
CHANGED
package/src/generate-openapi.ts
CHANGED
|
@@ -70,28 +70,20 @@ export const generateOpenAPI = async (): Promise<void> => {
|
|
|
70
70
|
OPENAPI_CONFIG: OpenAPIConfig;
|
|
71
71
|
};
|
|
72
72
|
|
|
73
|
+
if (openAPIConfig.isDocumentationNeeded === false) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
|
|
73
77
|
const { LAMBDA_CONFIG } = (await import(path.join(HANDLERS_DIR, `${fileName}.js`))) as {
|
|
74
78
|
LAMBDA_CONFIG?: LambdaConfig;
|
|
75
79
|
};
|
|
76
80
|
|
|
77
81
|
const bodyComponent = generateSchema(bodySchema ?? z.never(), undefined, '3.0');
|
|
78
82
|
const queryParametersComponent = generateSchema(queryParametersSchema ?? z.never(), undefined, '3.0');
|
|
79
|
-
const eventResponseComponent =
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
: { params: z.object({}) }),
|
|
84
|
-
...(eventResponseModulesSchema
|
|
85
|
-
? { modules: eventResponseModulesSchema }
|
|
86
|
-
: {
|
|
87
|
-
modules: extendApi(z.array(z.unknown()), {
|
|
88
|
-
example: []
|
|
89
|
-
})
|
|
90
|
-
}),
|
|
91
|
-
fallback: z.boolean().default(false)
|
|
92
|
-
}),
|
|
93
|
-
undefined,
|
|
94
|
-
'3.0'
|
|
83
|
+
const eventResponseComponent = generateEventResponseComponent(
|
|
84
|
+
openAPIConfig.responseType,
|
|
85
|
+
eventResponseParametersSchema,
|
|
86
|
+
eventResponseModulesSchema
|
|
95
87
|
);
|
|
96
88
|
|
|
97
89
|
const queryParameters = [];
|
|
@@ -219,3 +211,31 @@ async function getStackURL(partnerName: string, environment: 'development' | 'pr
|
|
|
219
211
|
}
|
|
220
212
|
}
|
|
221
213
|
}
|
|
214
|
+
|
|
215
|
+
function generateEventResponseComponent(
|
|
216
|
+
responseType: OpenAPIConfig['responseType'] = 'mindbehind-chat-bot-response',
|
|
217
|
+
eventResponseParametersSchema?: OpenApiZodAny,
|
|
218
|
+
eventResponseModulesSchema?: OpenApiZodAny
|
|
219
|
+
) {
|
|
220
|
+
if (responseType === 'mindbehind-chat-bot-response') {
|
|
221
|
+
return generateSchema(
|
|
222
|
+
z.object({
|
|
223
|
+
...(eventResponseParametersSchema
|
|
224
|
+
? { params: eventResponseParametersSchema }
|
|
225
|
+
: { params: z.object({}) }),
|
|
226
|
+
...(eventResponseModulesSchema
|
|
227
|
+
? { modules: eventResponseModulesSchema }
|
|
228
|
+
: {
|
|
229
|
+
modules: extendApi(z.array(z.unknown()), {
|
|
230
|
+
example: []
|
|
231
|
+
})
|
|
232
|
+
}),
|
|
233
|
+
fallback: z.boolean().default(false)
|
|
234
|
+
}),
|
|
235
|
+
undefined,
|
|
236
|
+
'3.0'
|
|
237
|
+
);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
return generateSchema(eventResponseParametersSchema ?? z.object({}), undefined, '3.0');
|
|
241
|
+
}
|