polyapi 0.23.3 → 0.23.4
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/build/client/src/commands/{generate.d.ts → generate/index.d.ts} +2 -2
- package/build/client/src/commands/generate/index.d.ts.map +1 -0
- package/build/client/src/commands/generate/index.js +321 -0
- package/build/client/src/commands/generate/index.js.map +1 -0
- package/build/client/src/commands/generate/schemaTypes.d.ts +54 -0
- package/build/client/src/commands/generate/schemaTypes.d.ts.map +1 -0
- package/build/client/src/commands/generate/schemaTypes.js +440 -0
- package/build/client/src/commands/generate/schemaTypes.js.map +1 -0
- package/build/client/src/commands/generate/types.d.ts +6 -0
- package/build/client/src/commands/generate/types.d.ts.map +1 -0
- package/build/client/src/commands/{generate.js → generate/types.js} +156 -506
- package/build/client/src/commands/generate/types.js.map +1 -0
- package/build/client/src/utils.d.ts +8 -0
- package/build/client/src/utils.d.ts.map +1 -1
- package/build/client/src/utils.js +47 -7
- package/build/client/src/utils.js.map +1 -1
- package/build/model/src/dto/function/create-api-function.dto.d.ts.map +1 -1
- package/build/model/src/dto/function/create-api-function.dto.js +2 -1
- package/build/model/src/dto/function/create-api-function.dto.js.map +1 -1
- package/build/model/src/dto/function/create-custom-function.dto.js +1 -1
- package/build/model/src/dto/function/create-custom-function.dto.js.map +1 -1
- package/build/model/src/dto/function/update-api-function.dto.d.ts.map +1 -1
- package/build/model/src/dto/function/update-api-function.dto.js +1 -0
- package/build/model/src/dto/function/update-api-function.dto.js.map +1 -1
- package/build/model/src/dto/function/update-custom-function.dto.d.ts.map +1 -1
- package/build/model/src/dto/function/update-custom-function.dto.js +1 -0
- package/build/model/src/dto/function/update-custom-function.dto.js.map +1 -1
- package/build/model/src/dto/schema/create-schema.dto.js +1 -1
- package/build/model/src/dto/schema/create-schema.dto.js.map +1 -1
- package/build/model/src/dto/schema/update-schema.dto.js +3 -3
- package/build/model/src/dto/schema/update-schema.dto.js.map +1 -1
- package/build/model/src/dto/snippet/create-snippet.dto.d.ts.map +1 -1
- package/build/model/src/dto/snippet/create-snippet.dto.js +2 -0
- package/build/model/src/dto/snippet/create-snippet.dto.js.map +1 -1
- package/build/model/src/dto/snippet/update-snippet.dto.d.ts.map +1 -1
- package/build/model/src/dto/snippet/update-snippet.dto.js +3 -1
- package/build/model/src/dto/snippet/update-snippet.dto.js.map +1 -1
- package/build/model/src/dto/validators/context-identifier.js +2 -2
- package/build/model/src/dto/validators/context-identifier.js.map +1 -1
- package/build/model/src/dto/webhook/create-webhook-handle.dto.d.ts.map +1 -1
- package/build/model/src/dto/webhook/create-webhook-handle.dto.js +3 -2
- package/build/model/src/dto/webhook/create-webhook-handle.dto.js.map +1 -1
- package/build/model/src/dto/webhook/update-webhook-handle.dto.d.ts.map +1 -1
- package/build/model/src/dto/webhook/update-webhook-handle.dto.js +1 -0
- package/build/model/src/dto/webhook/update-webhook-handle.dto.js.map +1 -1
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +45 -2
- package/build/client/src/commands/generate.d.ts.map +0 -1
- package/build/client/src/commands/generate.js.map +0 -1
- package/build/client/src/templates/schemas/index.d.ts.hbs +0 -3
- package/build/client/src/templates/schemas/{{context}}.d.ts.hbs +0 -25
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Specification } from '
|
|
1
|
+
import { Specification } from '../../../../model/src';
|
|
2
2
|
declare const generateSingleCustomFunction: (polyPath: string, functionId: string, updated: boolean) => Promise<void>;
|
|
3
3
|
declare const generate: ({ polyPath, contexts, names, functionIds, noTypes, }: {
|
|
4
4
|
polyPath: string;
|
|
@@ -9,4 +9,4 @@ declare const generate: ({ polyPath, contexts, names, functionIds, noTypes, }: {
|
|
|
9
9
|
}) => Promise<void>;
|
|
10
10
|
export declare const generateSpecs: (libPath: string, specs: Specification[], noTypes: boolean) => Promise<void>;
|
|
11
11
|
export { generate, generateSingleCustomFunction };
|
|
12
|
-
//# sourceMappingURL=
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/generate/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAML,aAAa,EAEd,MAAM,aAAa,CAAC;AAmSrB,QAAA,MAAM,4BAA4B,aAAoB,MAAM,cAAc,MAAM,WAAW,OAAO,kBAoDjG,CAAC;AAEF,QAAA,MAAM,QAAQ;cAOF,MAAM;eACL,MAAM,EAAE;YACX,MAAM,EAAE;kBACF,MAAM,EAAE;aACb,OAAO;mBAyBjB,CAAC;AAYF,eAAO,MAAM,aAAa,YAAmB,MAAM,SAAS,aAAa,EAAE,WAAW,OAAO,kBAgC5F,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,4BAA4B,EAAE,CAAC"}
|
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateSingleCustomFunction = exports.generate = exports.generateSpecs = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const handlebars_1 = __importDefault(require("handlebars"));
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const shelljs_1 = __importDefault(require("shelljs"));
|
|
11
|
+
const uuid_1 = require("uuid");
|
|
12
|
+
const utils_1 = require("../../../../common/src/utils");
|
|
13
|
+
const specs_1 = require("../../../../common/src/specs");
|
|
14
|
+
const api_1 = require("../../api");
|
|
15
|
+
const config_1 = require("../../config");
|
|
16
|
+
const utils_2 = require("../../utils");
|
|
17
|
+
const constants_1 = require("../../constants");
|
|
18
|
+
const types_1 = require("./types");
|
|
19
|
+
const schemaTypes_1 = require("./schemaTypes");
|
|
20
|
+
const fsWriteAsync = (file, data) => new Promise((resolve, reject) => {
|
|
21
|
+
fs_1.default.writeFile(file, data, (err) => err ? reject(err) : resolve());
|
|
22
|
+
});
|
|
23
|
+
const getApiBaseUrl = () => process.env.POLY_API_BASE_URL || 'http://localhost:8000';
|
|
24
|
+
const getApiKey = () => process.env.POLY_API_KEY;
|
|
25
|
+
const prepareDir = async (polyPath) => {
|
|
26
|
+
const libPath = (0, utils_2.getPolyLibPath)(polyPath);
|
|
27
|
+
fs_1.default.rmSync(libPath, { recursive: true, force: true });
|
|
28
|
+
fs_1.default.mkdirSync(libPath, { recursive: true });
|
|
29
|
+
fs_1.default.mkdirSync(`${libPath}/api`);
|
|
30
|
+
fs_1.default.mkdirSync(`${libPath}/client`);
|
|
31
|
+
fs_1.default.mkdirSync(`${libPath}/auth`);
|
|
32
|
+
fs_1.default.mkdirSync(`${libPath}/webhooks`);
|
|
33
|
+
fs_1.default.mkdirSync(`${libPath}/server`);
|
|
34
|
+
fs_1.default.mkdirSync(`${libPath}/vari`);
|
|
35
|
+
fs_1.default.mkdirSync(`${libPath}/schemas`);
|
|
36
|
+
if (polyPath !== constants_1.DEFAULT_POLY_PATH) {
|
|
37
|
+
try {
|
|
38
|
+
await generateRedirectIndexFiles(polyPath);
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
shelljs_1.default.echo(chalk_1.default.red(`Could not generate redirect index files: ${err.message}, continuing...`));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const generateRedirectIndexFiles = async (polyPath) => {
|
|
46
|
+
const defaultPolyLib = (0, utils_2.getPolyLibPath)(constants_1.DEFAULT_POLY_PATH);
|
|
47
|
+
polyPath = polyPath.startsWith('/') ? polyPath : `../../../${polyPath}`;
|
|
48
|
+
fs_1.default.rmSync(defaultPolyLib, { recursive: true, force: true });
|
|
49
|
+
fs_1.default.mkdirSync(defaultPolyLib, { recursive: true });
|
|
50
|
+
const indexRedirectJSTemplate = handlebars_1.default.compile((0, utils_2.loadTemplate)('index-redirect.js.hbs'));
|
|
51
|
+
const indexTSRedirectJSTemplate = handlebars_1.default.compile((0, utils_2.loadTemplate)('index-redirect.d.ts.hbs'));
|
|
52
|
+
await Promise.all([
|
|
53
|
+
fsWriteAsync(`${defaultPolyLib}/index.js`, indexRedirectJSTemplate({ polyPath })),
|
|
54
|
+
fsWriteAsync(`${defaultPolyLib}/index.d.ts`, indexTSRedirectJSTemplate({ polyPath })),
|
|
55
|
+
]);
|
|
56
|
+
};
|
|
57
|
+
const generateJSFiles = async (libPath, specs) => {
|
|
58
|
+
const apiFunctions = specs.filter((spec) => spec.type === 'apiFunction');
|
|
59
|
+
const customFunctions = specs
|
|
60
|
+
.filter((spec) => spec.type === 'customFunction')
|
|
61
|
+
.filter((spec) => spec.language === 'javascript');
|
|
62
|
+
const webhookHandles = specs.filter((spec) => spec.type === 'webhookHandle');
|
|
63
|
+
const authFunctions = specs.filter((spec) => spec.type === 'authFunction');
|
|
64
|
+
const serverFunctions = specs.filter((spec) => spec.type === 'serverFunction');
|
|
65
|
+
const serverVariables = specs.filter((spec) => spec.type === 'serverVariable');
|
|
66
|
+
await generateIndexJSFile(libPath);
|
|
67
|
+
await generatePolyCustomJSFile(libPath);
|
|
68
|
+
await generateAxiosJSFile(libPath);
|
|
69
|
+
await generateErrorHandlerFile(libPath);
|
|
70
|
+
await tryAsync(generateApiFunctionJSFiles(libPath, apiFunctions), 'api functions');
|
|
71
|
+
const customFnCodeGenerationErrors = await tryAsync(generateCustomFunctionJSFiles(libPath, customFunctions), 'custom functions');
|
|
72
|
+
await tryAsync(generateWebhooksJSFiles(libPath, webhookHandles), 'webhooks');
|
|
73
|
+
await tryAsync(generateAuthFunctionJSFiles(libPath, authFunctions), 'auth functions');
|
|
74
|
+
await tryAsync(generateServerFunctionJSFiles(libPath, serverFunctions), 'server functions');
|
|
75
|
+
await tryAsync(generateServerVariableJSFiles(libPath, serverVariables), 'variables');
|
|
76
|
+
return customFnCodeGenerationErrors;
|
|
77
|
+
};
|
|
78
|
+
const generateIndexJSFile = async (libPath) => {
|
|
79
|
+
const indexJSTemplate = handlebars_1.default.compile((0, utils_2.loadTemplate)('index.js.hbs'));
|
|
80
|
+
fs_1.default.writeFileSync(`${libPath}/index.js`, indexJSTemplate({
|
|
81
|
+
clientID: (0, uuid_1.v4)(),
|
|
82
|
+
apiBaseUrl: getApiBaseUrl(),
|
|
83
|
+
apiKey: getApiKey(),
|
|
84
|
+
}));
|
|
85
|
+
};
|
|
86
|
+
const generatePolyCustomJSFile = async (libPath) => {
|
|
87
|
+
const polyCustomJSTemplate = handlebars_1.default.compile((0, utils_2.loadTemplate)('poly-custom.js.hbs'));
|
|
88
|
+
fs_1.default.writeFileSync(`${libPath}/poly-custom.js`, polyCustomJSTemplate({
|
|
89
|
+
apiBaseUrl: getApiBaseUrl(),
|
|
90
|
+
apiKey: getApiKey(),
|
|
91
|
+
}));
|
|
92
|
+
};
|
|
93
|
+
const generateAxiosJSFile = async (libPath) => {
|
|
94
|
+
const axiosJSTemplate = handlebars_1.default.compile((0, utils_2.loadTemplate)('axios.js.hbs'));
|
|
95
|
+
fs_1.default.writeFileSync(`${libPath}/axios.js`, axiosJSTemplate({
|
|
96
|
+
apiBaseUrl: getApiBaseUrl(),
|
|
97
|
+
apiKey: getApiKey(),
|
|
98
|
+
}));
|
|
99
|
+
};
|
|
100
|
+
const generateErrorHandlerFile = async (libPath) => {
|
|
101
|
+
const errorHandlerJSTemplate = handlebars_1.default.compile((0, utils_2.loadTemplate)('error-handler.js.hbs'));
|
|
102
|
+
fs_1.default.writeFileSync(`${libPath}/error-handler.js`, errorHandlerJSTemplate({}));
|
|
103
|
+
};
|
|
104
|
+
const generateApiFunctionJSFiles = async (libPath, specifications) => {
|
|
105
|
+
const template = handlebars_1.default.compile((0, utils_2.loadTemplate)('api-index.js.hbs'));
|
|
106
|
+
fs_1.default.writeFileSync(`${libPath}/api/index.js`, template({
|
|
107
|
+
specifications,
|
|
108
|
+
}));
|
|
109
|
+
};
|
|
110
|
+
const generateCustomFunctionJSFiles = async (libPath, specifications) => {
|
|
111
|
+
const codeGenerationErrors = {};
|
|
112
|
+
if (!specifications.length) {
|
|
113
|
+
const customFunctionJSTemplate = handlebars_1.default.compile((0, utils_2.loadTemplate)('custom-function.js.hbs'));
|
|
114
|
+
await Promise.all(specifications.map((spec) => fsWriteAsync(`${libPath}/client/${spec.context ? `${spec.context}-` : ''}${spec.name}.js`, customFunctionJSTemplate(spec))
|
|
115
|
+
.catch(error => {
|
|
116
|
+
codeGenerationErrors[spec.id] = {
|
|
117
|
+
stack: error.stack,
|
|
118
|
+
specification: spec,
|
|
119
|
+
};
|
|
120
|
+
})));
|
|
121
|
+
}
|
|
122
|
+
const customIndexJSTemplate = handlebars_1.default.compile((0, utils_2.loadTemplate)('custom-index.js.hbs'));
|
|
123
|
+
fs_1.default.writeFileSync(`${libPath}/client/index.js`, customIndexJSTemplate({
|
|
124
|
+
specifications: specifications.filter(spec => !codeGenerationErrors[spec.id]),
|
|
125
|
+
}));
|
|
126
|
+
return Array.from(Object.values(codeGenerationErrors));
|
|
127
|
+
};
|
|
128
|
+
const generateWebhooksJSFiles = async (libPath, specifications) => {
|
|
129
|
+
const template = handlebars_1.default.compile((0, utils_2.loadTemplate)('webhooks-index.js.hbs'));
|
|
130
|
+
fs_1.default.writeFileSync(`${libPath}/webhooks/index.js`, template({
|
|
131
|
+
specifications,
|
|
132
|
+
apiKey: getApiKey(),
|
|
133
|
+
}));
|
|
134
|
+
};
|
|
135
|
+
const generateServerFunctionJSFiles = async (libPath, specifications) => {
|
|
136
|
+
const serverIndexJSTemplate = handlebars_1.default.compile((0, utils_2.loadTemplate)('server-index.js.hbs'));
|
|
137
|
+
fs_1.default.writeFileSync(`${libPath}/server/index.js`, serverIndexJSTemplate({
|
|
138
|
+
specifications,
|
|
139
|
+
}));
|
|
140
|
+
};
|
|
141
|
+
const generateServerVariableJSFiles = async (libPath, specifications) => {
|
|
142
|
+
const contextData = (0, specs_1.getContextData)(specifications);
|
|
143
|
+
const contextPaths = getContextPaths(contextData);
|
|
144
|
+
const template = handlebars_1.default.compile((0, utils_2.loadTemplate)('vari/index.js.hbs'));
|
|
145
|
+
const arrPaths = [];
|
|
146
|
+
for (const specification of specifications) {
|
|
147
|
+
if ((0, utils_1.isPlainObjectPredicate)(specification.variable.value) || Array.isArray(specification.variable.value)) {
|
|
148
|
+
arrPaths.push({
|
|
149
|
+
context: specification.context || '',
|
|
150
|
+
paths: (0, utils_2.getStringPaths)(specification.variable.value),
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
fs_1.default.writeFileSync(`${libPath}/vari/index.js`, template({
|
|
155
|
+
specifications,
|
|
156
|
+
contextPaths,
|
|
157
|
+
apiKey: getApiKey(),
|
|
158
|
+
arrPaths: JSON.stringify(arrPaths),
|
|
159
|
+
}));
|
|
160
|
+
};
|
|
161
|
+
const generateAuthFunctionJSFiles = async (libPath, specifications) => {
|
|
162
|
+
const apiBaseUrl = getApiBaseUrl();
|
|
163
|
+
const apiKey = getApiKey();
|
|
164
|
+
const authIndexJSTemplate = handlebars_1.default.compile((0, utils_2.loadTemplate)('auth-index.js.hbs'));
|
|
165
|
+
fs_1.default.writeFileSync(`${libPath}/auth/index.js`, authIndexJSTemplate({
|
|
166
|
+
getTokenFunctions: specifications.filter((spec) => spec.name === 'getToken'),
|
|
167
|
+
subResourceFunctions: specifications.filter((spec) => spec.subResource),
|
|
168
|
+
apiBaseUrl,
|
|
169
|
+
apiKey,
|
|
170
|
+
}));
|
|
171
|
+
const specsToGenerate = specifications.filter((spec) => !spec.subResource);
|
|
172
|
+
if (specsToGenerate.length === 0)
|
|
173
|
+
return [];
|
|
174
|
+
const authFunctionJSTemplate = handlebars_1.default.compile((0, utils_2.loadTemplate)('auth-function.js.hbs'));
|
|
175
|
+
const codeGenerationErrors = {};
|
|
176
|
+
await Promise.all(specifications.map((spec) => fsWriteAsync(`${libPath}/auth/${spec.context ? `${spec.context}-` : ''}${spec.name}.js`, authFunctionJSTemplate({
|
|
177
|
+
...spec,
|
|
178
|
+
audienceRequired: spec.function.arguments.some((arg) => arg.name === 'audience'),
|
|
179
|
+
apiBaseUrl,
|
|
180
|
+
apiKey,
|
|
181
|
+
}))
|
|
182
|
+
.catch(error => {
|
|
183
|
+
codeGenerationErrors[spec.id] = {
|
|
184
|
+
stack: error.stack,
|
|
185
|
+
specification: spec,
|
|
186
|
+
};
|
|
187
|
+
})));
|
|
188
|
+
return Array.from(Object.values(codeGenerationErrors));
|
|
189
|
+
};
|
|
190
|
+
const getContextPaths = (contextData) => {
|
|
191
|
+
const paths = [];
|
|
192
|
+
const traverseAndAddPath = (data, path = '') => {
|
|
193
|
+
for (const key of Object.keys(data)) {
|
|
194
|
+
if (typeof data[key].context === 'string') {
|
|
195
|
+
continue;
|
|
196
|
+
}
|
|
197
|
+
const currentPath = path ? `${path}.${key}` : key;
|
|
198
|
+
paths.push(currentPath);
|
|
199
|
+
traverseAndAddPath(data[key], currentPath);
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
traverseAndAddPath(contextData);
|
|
203
|
+
return paths;
|
|
204
|
+
};
|
|
205
|
+
const showErrGeneratingFiles = (error) => {
|
|
206
|
+
shelljs_1.default.echo(chalk_1.default.red('ERROR'));
|
|
207
|
+
shelljs_1.default.echo('Error while generating code files. Make sure the version of library/server is up to date.');
|
|
208
|
+
shelljs_1.default.echo(chalk_1.default.red(error.message));
|
|
209
|
+
shelljs_1.default.echo(chalk_1.default.red(error.stack));
|
|
210
|
+
shelljs_1.default.exit(2);
|
|
211
|
+
};
|
|
212
|
+
const generateSingleCustomFunction = async (polyPath, functionId, updated) => {
|
|
213
|
+
shelljs_1.default.echo('-n', updated ? 'Regenerating TypeScript SDK...' : 'Generating TypeScript SDK...');
|
|
214
|
+
const libPath = (0, utils_2.getPolyLibPath)(polyPath);
|
|
215
|
+
let contextData = {};
|
|
216
|
+
try {
|
|
217
|
+
contextData = (0, utils_2.getContextDataFileContent)(libPath);
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
shelljs_1.default.echo(chalk_1.default.red('ERROR'));
|
|
221
|
+
shelljs_1.default.echo('Error while fetching local context data.');
|
|
222
|
+
shelljs_1.default.echo(chalk_1.default.red(error.message));
|
|
223
|
+
shelljs_1.default.echo(chalk_1.default.red(error.stack));
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
const prevSpecs = (0, utils_2.getSpecsFromContextData)(contextData);
|
|
227
|
+
let specs = [];
|
|
228
|
+
try {
|
|
229
|
+
specs = await (0, api_1.getSpecs)([], [], [functionId]);
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
(0, utils_2.showErrGettingSpecs)(error);
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
const [customFunction] = specs;
|
|
236
|
+
if (prevSpecs.some((prevSpec) => prevSpec.id === customFunction.id)) {
|
|
237
|
+
specs = prevSpecs.map((prevSpec) => {
|
|
238
|
+
if (prevSpec.id === customFunction.id) {
|
|
239
|
+
return customFunction;
|
|
240
|
+
}
|
|
241
|
+
return prevSpec;
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
prevSpecs.push(customFunction);
|
|
246
|
+
specs = prevSpecs;
|
|
247
|
+
}
|
|
248
|
+
await prepareDir(polyPath);
|
|
249
|
+
(0, types_1.setGenerationErrors)(false);
|
|
250
|
+
await (0, exports.generateSpecs)(libPath, specs, false);
|
|
251
|
+
if ((0, types_1.getGenerationErrors)()) {
|
|
252
|
+
shelljs_1.default.echo(chalk_1.default.yellow('Generate DONE with errors. Please investigate the errors and contact support@polyapi.io for assistance.'));
|
|
253
|
+
}
|
|
254
|
+
else {
|
|
255
|
+
shelljs_1.default.echo(chalk_1.default.green('DONE'));
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
exports.generateSingleCustomFunction = generateSingleCustomFunction;
|
|
259
|
+
const generate = async ({ polyPath, contexts, names, functionIds, noTypes, }) => {
|
|
260
|
+
let specs = [];
|
|
261
|
+
const generateMsg = contexts ? `Generating Poly TypeScript SDK for contexts "${contexts}"...` : 'Generating Poly TypeScript SDK...';
|
|
262
|
+
shelljs_1.default.echo('-n', generateMsg);
|
|
263
|
+
await prepareDir(polyPath);
|
|
264
|
+
(0, config_1.loadConfig)(polyPath);
|
|
265
|
+
try {
|
|
266
|
+
specs = await (0, api_1.getSpecs)(contexts, names, functionIds);
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
(0, utils_2.showErrGettingSpecs)(error);
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
(0, types_1.setGenerationErrors)(false);
|
|
273
|
+
await (0, exports.generateSpecs)((0, utils_2.getPolyLibPath)(polyPath), specs, noTypes);
|
|
274
|
+
if ((0, types_1.getGenerationErrors)()) {
|
|
275
|
+
shelljs_1.default.echo(chalk_1.default.yellow('Generate DONE with errors. Please investigate the errors and contact support@polyapi.io for assistance.'));
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
shelljs_1.default.echo(chalk_1.default.green('DONE'));
|
|
279
|
+
}
|
|
280
|
+
};
|
|
281
|
+
exports.generate = generate;
|
|
282
|
+
const tryAsync = async (promise, generatingName) => {
|
|
283
|
+
try {
|
|
284
|
+
return await promise;
|
|
285
|
+
}
|
|
286
|
+
catch (err) {
|
|
287
|
+
shelljs_1.default.echo(chalk_1.default.red(`\nUnexpected error encountered while generating ${generatingName}: ${err}`));
|
|
288
|
+
}
|
|
289
|
+
};
|
|
290
|
+
const generateSpecs = async (libPath, specs, noTypes) => {
|
|
291
|
+
try {
|
|
292
|
+
let missingNames = [];
|
|
293
|
+
[missingNames, specs] = specs.reduce((acc, s) => {
|
|
294
|
+
acc[s.name.trim() ? 1 : 0].push(s);
|
|
295
|
+
return acc;
|
|
296
|
+
}, [[], []]);
|
|
297
|
+
const jsFilesCodeGenerationErrors = await generateJSFiles(libPath, specs);
|
|
298
|
+
const filteredSpecs = specs.filter(spec => !jsFilesCodeGenerationErrors.find(codeGenerationError => codeGenerationError.specification.id === spec.id));
|
|
299
|
+
if (!noTypes) {
|
|
300
|
+
await tryAsync((0, types_1.generateFunctionsTSDeclarationFile)(libPath, filteredSpecs), 'function types');
|
|
301
|
+
await tryAsync((0, types_1.generateVariablesTSDeclarationFile)(libPath, filteredSpecs), 'variable types');
|
|
302
|
+
await tryAsync((0, schemaTypes_1.generateSchemaTSDeclarationFiles)(libPath, filteredSpecs.filter(s => s.type === 'schema')), 'schemas');
|
|
303
|
+
}
|
|
304
|
+
(0, utils_2.generateContextDataFile)(libPath, filteredSpecs);
|
|
305
|
+
if (missingNames.length) {
|
|
306
|
+
(0, types_1.setGenerationErrors)(true);
|
|
307
|
+
missingNames.map((s) => (0, utils_2.echoGenerationError)(s));
|
|
308
|
+
}
|
|
309
|
+
if (jsFilesCodeGenerationErrors.length) {
|
|
310
|
+
(0, types_1.setGenerationErrors)(true);
|
|
311
|
+
jsFilesCodeGenerationErrors.forEach((error) => {
|
|
312
|
+
(0, utils_2.echoGenerationError)(error.specification);
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
catch (error) {
|
|
317
|
+
showErrGeneratingFiles(error);
|
|
318
|
+
}
|
|
319
|
+
};
|
|
320
|
+
exports.generateSpecs = generateSpecs;
|
|
321
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/generate/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { SchemaRef, SchemaSpecification } from '../../../../model/src';
|
|
2
|
+
type JsonSchemaType = 'string' | 'number' | 'integer' | 'object' | 'array' | 'boolean' | 'null';
|
|
3
|
+
type JsonSchemaTypeDeclaration = JsonSchemaType | JsonSchemaType[];
|
|
4
|
+
type ConstValueT = null | string | number | boolean;
|
|
5
|
+
export type JsonSchema = {
|
|
6
|
+
type?: JsonSchemaTypeDeclaration | 'unresolved';
|
|
7
|
+
title?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
items?: JsonSchema | JsonSchema[];
|
|
10
|
+
additionalItems?: boolean | JsonSchema;
|
|
11
|
+
schemas?: Record<string, JsonSchema>;
|
|
12
|
+
properties?: Record<string, JsonSchema>;
|
|
13
|
+
patternProperties?: Record<string, JsonSchema>;
|
|
14
|
+
additionalProperties?: boolean | JsonSchema;
|
|
15
|
+
required?: string[];
|
|
16
|
+
allOf?: JsonSchema[];
|
|
17
|
+
anyOf?: JsonSchema[];
|
|
18
|
+
oneOf?: JsonSchema[];
|
|
19
|
+
discriminator?: {
|
|
20
|
+
propertyName: string;
|
|
21
|
+
mapping: Record<string, string>;
|
|
22
|
+
};
|
|
23
|
+
'$id'?: string;
|
|
24
|
+
'$ref'?: string;
|
|
25
|
+
'$schema'?: string;
|
|
26
|
+
'x-poly-ref'?: SchemaRef;
|
|
27
|
+
deprecated?: boolean;
|
|
28
|
+
nullable?: boolean;
|
|
29
|
+
enum?: ConstValueT[];
|
|
30
|
+
const?: ConstValueT;
|
|
31
|
+
[k: string]: unknown;
|
|
32
|
+
};
|
|
33
|
+
export type SchemaSpec = Omit<SchemaSpecification, 'definition'> & {
|
|
34
|
+
definition: JsonSchema;
|
|
35
|
+
};
|
|
36
|
+
type SchemaTree = Record<string, SchemaSpec | Record<string, SchemaSpec>>;
|
|
37
|
+
type NestedT = undefined | null | 'object' | 'array' | 'union' | 'intersection';
|
|
38
|
+
type PrintSchemaFn = (schema: JsonSchema, key: string, depth: number, nested?: NestedT, optional?: boolean) => string;
|
|
39
|
+
type SchemaRoot = {
|
|
40
|
+
path: string;
|
|
41
|
+
interfaceName: string;
|
|
42
|
+
interfaces: Record<string, string>;
|
|
43
|
+
namespaces: SchemaTree;
|
|
44
|
+
hasTypes: boolean;
|
|
45
|
+
};
|
|
46
|
+
export declare const generateSchemaTSDeclarationFiles: (libPath: string, specs: SchemaSpec[]) => Promise<void>;
|
|
47
|
+
export declare const __test: {
|
|
48
|
+
printComment: (comment?: string, depth?: number, deprecated?: boolean) => string;
|
|
49
|
+
printSchemaAsType: PrintSchemaFn;
|
|
50
|
+
buildSchemaTree: (specs: SchemaSpec[]) => SchemaRoot[];
|
|
51
|
+
printSchemaSpecs: (specs: SchemaSpec[]) => Record<string, string>;
|
|
52
|
+
};
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=schemaTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemaTypes.d.ts","sourceRoot":"","sources":["../../../../../src/commands/generate/schemaTypes.ts"],"names":[],"mappings":"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"}
|