@openapi-qraft/plugin 1.13.1 → 1.14.0-beta.2
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/CHANGELOG.md +13 -0
- package/dist/lib/QraftCommand.d.ts.map +1 -1
- package/dist/lib/QraftCommand.js +27 -8
- package/dist/lib/QraftCommand.js.map +1 -1
- package/dist/lib/createServicePathMatch.d.ts +0 -9
- package/dist/lib/createServicePathMatch.d.ts.map +1 -1
- package/dist/lib/createServicePathMatch.js +0 -15
- package/dist/lib/createServicePathMatch.js.map +1 -1
- package/dist/lib/filterDocumentPaths.d.ts +1 -1
- package/dist/lib/filterDocumentPaths.d.ts.map +1 -1
- package/dist/lib/filterDocumentPaths.js +1 -1
- package/dist/lib/filterDocumentPaths.js.map +1 -1
- package/dist/lib/parseOperationGlobs.d.ts +17 -0
- package/dist/lib/parseOperationGlobs.d.ts.map +1 -0
- package/dist/lib/parseOperationGlobs.js +37 -0
- package/dist/lib/parseOperationGlobs.js.map +1 -0
- package/dist/lib/predefineSchemaParameters.d.ts +15 -11
- package/dist/lib/predefineSchemaParameters.d.ts.map +1 -1
- package/dist/lib/predefineSchemaParameters.js +50 -30
- package/dist/lib/predefineSchemaParameters.js.map +1 -1
- package/dist/lib/processOperationNameModifierOption.d.ts +57 -0
- package/dist/lib/processOperationNameModifierOption.d.ts.map +1 -0
- package/dist/lib/processOperationNameModifierOption.js +102 -0
- package/dist/lib/processOperationNameModifierOption.js.map +1 -0
- package/dist/lib/splitCommaSeparatedGlobs.d.ts +7 -0
- package/dist/lib/splitCommaSeparatedGlobs.d.ts.map +1 -0
- package/dist/lib/splitCommaSeparatedGlobs.js +16 -0
- package/dist/lib/splitCommaSeparatedGlobs.js.map +1 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.d.ts.map +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/package.json +3 -3
- package/src/lib/QraftCommand.ts +59 -10
- package/src/lib/createServicePathMatch.ts +0 -18
- package/src/lib/filterDocumentPaths.ts +2 -2
- package/src/lib/parseOperationGlobs.ts +55 -0
- package/src/lib/predefineSchemaParameters.ts +108 -71
- package/src/lib/processOperationNameModifierOption.ts +205 -0
- package/src/lib/splitCommaSeparatedGlobs.ts +16 -0
- package/src/packageVersion.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @openapi-qraft/plugin
|
|
2
2
|
|
|
3
|
+
## 1.14.0-beta.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 7430754: Added compatibility with Node.js v18.18.0
|
|
8
|
+
|
|
9
|
+
## 1.14.0-beta.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- 77f0812: Added support for the `--operation-predefined-parameters` option to allow changing operation names.
|
|
14
|
+
- 787f568: Updated `openapi-typescript` to `^7.3.0`.
|
|
15
|
+
|
|
3
16
|
## 1.13.1
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QraftCommand.d.ts","sourceRoot":"","sources":["../../src/lib/QraftCommand.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAiB,GAAG,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"QraftCommand.d.ts","sourceRoot":"","sources":["../../src/lib/QraftCommand.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAiB,GAAG,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAanD,qBAAa,YAAa,SAAQ,OAAO;IACvC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAC5B,SAAS,CAAC,uBAAuB,EAAE,0BAA0B,EAAE,CAAM;;IA+CrE,MAAM,CAAC,QAAQ,EAAE,0BAA0B,GAAG,IAAI;IAK5C,cAAc,CAAC,GAAG,UAAU,EAAE,GAAG,EAAE;IAiJzC,SAAS,CAAC,oBAAoB,CAAC,QAAQ,EAAE,0BAA0B;IAInE,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GACzC,IAAI;IACP,MAAM,CAAC,CAAC,EACN,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAC3C,YAAY,CAAC,EAAE,CAAC,GACf,IAAI;IACP,qEAAqE;IACrE,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GACzC,IAAI;IA8BP,cAAc,CACZ,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GACzC,IAAI;IACP,cAAc,CAAC,CAAC,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAC3C,YAAY,CAAC,EAAE,CAAC,GACf,IAAI;IACP,qEAAqE;IACrE,cAAc,CACZ,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GACzC,IAAI;IA8BP,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;CAe1E;AAWD,MAAM,MAAM,0BAA0B,GAAG,CACvC,OAAO,EAAE;IACP;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B;;OAEG;IACH,OAAO,EAAE,GAAG,CAAC;IACb;;OAEG;IACH,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB;;OAEG;IACH,MAAM,EAAE,iBAAiB,CAAC;IAC1B;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;CACvB,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,KACtC,OAAO,CAAC,IAAI,CAAC,CAAC;AAmFnB;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM;;;EAoB7C"}
|
package/dist/lib/QraftCommand.js
CHANGED
|
@@ -5,12 +5,13 @@ import c from 'ansi-colors';
|
|
|
5
5
|
import { Command } from 'commander';
|
|
6
6
|
import ora from 'ora';
|
|
7
7
|
import { packageVersion } from '../packageVersion.js';
|
|
8
|
-
import { parsePathGlobs } from './createServicePathMatch.js';
|
|
9
8
|
import { filterDocumentPaths } from './filterDocumentPaths.js';
|
|
10
9
|
import { handleSchemaInput } from './handleSchemaInput.js';
|
|
11
10
|
import { getServices } from './open-api/getServices.js';
|
|
12
11
|
import { readSchema } from './open-api/readSchema.js';
|
|
13
|
-
import {
|
|
12
|
+
import { createPredefinedParametersGlobs, parseOperationPredefinedParametersOption, predefineSchemaParameters, } from './predefineSchemaParameters.js';
|
|
13
|
+
import { parseOperationNameModifier, processOperationNameModifierOption, } from './processOperationNameModifierOption.js';
|
|
14
|
+
import { splitCommaSeparatedGlobs } from './splitCommaSeparatedGlobs.js';
|
|
14
15
|
import { writeGeneratorFiles } from './writeGeneratorFiles.js';
|
|
15
16
|
export class QraftCommand extends Command {
|
|
16
17
|
cwd;
|
|
@@ -23,7 +24,8 @@ export class QraftCommand extends Command {
|
|
|
23
24
|
.requiredOption('-o, --output-dir <path>', 'Output directory for generated services')
|
|
24
25
|
.option('-rm, --clean', 'Clean output directory before generating services')
|
|
25
26
|
.option('--filter-services <glob-pattern>', 'Filter services to be generated by glob pattern. Eg: "/user/**,/post/**". See NPM `micromatch` package for more details.')
|
|
26
|
-
.option('--operation-predefined-parameters <patterns...>', 'Predefined parameters for services. The specified services parameters will be optional. Eg: "/**:header.x-monite-version,query.x-api-key
|
|
27
|
+
.option('--operation-predefined-parameters <patterns...>', 'Predefined parameters for services. The specified services parameters will be optional. Eg: "/**:header.x-monite-version,query.x-api-key" or "get /**:header.x-monite-entity-id"')
|
|
28
|
+
.option('--operation-name-modifier <patterns...>', 'Modifies operation names using a pattern. Use the `==>` operator to separate the regular expression (left) and the substitution string (right). For example: "post /**:[A-Za-z]+Id ==> createOne"')
|
|
27
29
|
.option('--postfix-services <string>', 'Postfix to be added to the generated service name (eg: Service)')
|
|
28
30
|
.option('--service-name-base <endpoint[<index>] | tags>', 'Use OpenAPI Operation `endpoint[<index>]` path part (e.g.: "/0/1/2") or `tags` as the base name of the service.', 'endpoint[0]')
|
|
29
31
|
.option('--file-header <string>', 'Header to be added to the generated file (eg: /* eslint-disable */)');
|
|
@@ -45,22 +47,39 @@ export class QraftCommand extends Command {
|
|
|
45
47
|
const spinner = ora('Starting ⛏︎').start();
|
|
46
48
|
const input = handleSchemaInput(inputs[0], this.cwd, spinner);
|
|
47
49
|
spinner.text = 'Reading OpenAPI Schema';
|
|
48
|
-
let schema = filterDocumentPaths(await readSchema(input),
|
|
50
|
+
let schema = filterDocumentPaths(await readSchema(input), splitCommaSeparatedGlobs(args.filterServices));
|
|
49
51
|
if (args.operationPredefinedParameters) {
|
|
50
|
-
const
|
|
51
|
-
const predefinedParametersErrors =
|
|
52
|
+
const predefinedParametersGlobs = createPredefinedParametersGlobs(schema, parseOperationPredefinedParametersOption(...args.operationPredefinedParameters));
|
|
53
|
+
const predefinedParametersErrors = predefinedParametersGlobs.flatMap(({ errors }) => errors);
|
|
52
54
|
if (predefinedParametersErrors.length) {
|
|
53
55
|
predefinedParametersErrors.forEach((error) => spinner.warn(error));
|
|
54
56
|
spinner.fail('Error occurred during operation predefined parameters setup.');
|
|
55
57
|
process.exit(1);
|
|
56
58
|
}
|
|
57
|
-
schema = predefineSchemaParameters(schema,
|
|
59
|
+
schema = predefineSchemaParameters(schema, predefinedParametersGlobs);
|
|
58
60
|
}
|
|
59
61
|
spinner.text = 'Getting OpenAPI Services';
|
|
60
|
-
|
|
62
|
+
let services = getServices(schema, {
|
|
61
63
|
postfixServices: args.postfixServices,
|
|
62
64
|
serviceNameBase: args.serviceNameBase,
|
|
63
65
|
});
|
|
66
|
+
if (args.operationNameModifier) {
|
|
67
|
+
const { services: modifiedServicesOperationNames, errors: operationNameModifierErrors, } = processOperationNameModifierOption(parseOperationNameModifier(...(Array.isArray(args.operationNameModifier)
|
|
68
|
+
? args.operationNameModifier
|
|
69
|
+
: [args.operationNameModifier])), services);
|
|
70
|
+
if (operationNameModifierErrors.length) {
|
|
71
|
+
operationNameModifierErrors.forEach((error) => {
|
|
72
|
+
spinner.fail([
|
|
73
|
+
c.red.bold(`Error occurred during operation name modifier setup: '${error.serviceName}.${error.originalOperationName}' to '${error.replacedOperationName}'`),
|
|
74
|
+
c.yellow(error.modifiers
|
|
75
|
+
.map(({ pathGlobs, operationNameModifierRegex, operationNameModifierReplace, }) => `Conflicting operation name modifier: '${pathGlobs}': '${operationNameModifierRegex}' => '${operationNameModifierReplace}'`)
|
|
76
|
+
.join('\n')),
|
|
77
|
+
].join('\n'));
|
|
78
|
+
});
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
services = modifiedServicesOperationNames;
|
|
82
|
+
}
|
|
64
83
|
spinner.text = 'Generating code';
|
|
65
84
|
const outputDir = normalizeOutputDirPath(args.outputDir);
|
|
66
85
|
for (const pluginAction of this.registeredPluginActions) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QraftCommand.js","sourceRoot":"","sources":["../../src/lib/QraftCommand.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,aAAa,EAAO,MAAM,UAAU,CAAC;AAC9C,OAAO,CAAC,MAAM,aAAa,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,GAAY,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"QraftCommand.js","sourceRoot":"","sources":["../../src/lib/QraftCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,13 +3,4 @@
|
|
|
3
3
|
* @param servicesGlob
|
|
4
4
|
*/
|
|
5
5
|
export declare const createServicePathMatch: (servicesGlob: string[]) => (path: string) => boolean;
|
|
6
|
-
/**
|
|
7
|
-
* Parse services filter option to array
|
|
8
|
-
* @example
|
|
9
|
-
* ```ts
|
|
10
|
-
* parsePathGlobs('/user/**,/post/**')
|
|
11
|
-
* ```
|
|
12
|
-
* @param endpointGlobs
|
|
13
|
-
*/
|
|
14
|
-
export declare function parsePathGlobs(endpointGlobs: string): string[] | undefined;
|
|
15
6
|
//# sourceMappingURL=createServicePathMatch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createServicePathMatch.d.ts","sourceRoot":"","sources":["../../src/lib/createServicePathMatch.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,sBAAsB,iBAAkB,MAAM,EAAE,YAgBjB,MAAM,YAKjD,CAAC
|
|
1
|
+
{"version":3,"file":"createServicePathMatch.d.ts","sourceRoot":"","sources":["../../src/lib/createServicePathMatch.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,sBAAsB,iBAAkB,MAAM,EAAE,YAgBjB,MAAM,YAKjD,CAAC"}
|
|
@@ -19,19 +19,4 @@ export const createServicePathMatch = (servicesGlob) => {
|
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
|
-
/**
|
|
23
|
-
* Parse services filter option to array
|
|
24
|
-
* @example
|
|
25
|
-
* ```ts
|
|
26
|
-
* parsePathGlobs('/user/**,/post/**')
|
|
27
|
-
* ```
|
|
28
|
-
* @param endpointGlobs
|
|
29
|
-
*/
|
|
30
|
-
export function parsePathGlobs(endpointGlobs) {
|
|
31
|
-
return endpointGlobs
|
|
32
|
-
? endpointGlobs
|
|
33
|
-
.split(',')
|
|
34
|
-
.filter((item) => Boolean(typeof item === 'string' && item.trim()))
|
|
35
|
-
: undefined;
|
|
36
|
-
}
|
|
37
22
|
//# sourceMappingURL=createServicePathMatch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createServicePathMatch.js","sourceRoot":"","sources":["../../src/lib/createServicePathMatch.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,YAAsB,EAAE,EAAE;IAC/D,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAG1C,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACZ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAClB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC;IACb,CAAC,EACD;QACE,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;KACX,CACF,CAAC;IAEF,OAAO,SAAS,mBAAmB,CAAC,IAAY;QAC9C,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAE;YACtD,MAAM,EAAE,gBAAgB,CAAC,MAAM;SAChC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"createServicePathMatch.js","sourceRoot":"","sources":["../../src/lib/createServicePathMatch.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,YAAsB,EAAE,EAAE;IAC/D,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAG1C,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACZ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAClB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC;IACb,CAAC,EACD;QACE,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;KACX,CACF,CAAC;IAEF,OAAO,SAAS,mBAAmB,CAAC,IAAY;QAC9C,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAE;YACtD,MAAM,EAAE,gBAAgB,CAAC,MAAM;SAChC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -9,5 +9,5 @@ import { type OpenAPI3 } from 'openapi-typescript/src/types.js';
|
|
|
9
9
|
* filterDocumentPaths(schema, ['/user/**', '/post/**', '!/user/internal'])
|
|
10
10
|
* ```
|
|
11
11
|
*/
|
|
12
|
-
export declare const filterDocumentPaths: (schema: OpenAPI3, servicesGlob: string[]
|
|
12
|
+
export declare const filterDocumentPaths: (schema: OpenAPI3, servicesGlob: string[]) => OpenAPI3;
|
|
13
13
|
//# sourceMappingURL=filterDocumentPaths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterDocumentPaths.d.ts","sourceRoot":"","sources":["../../src/lib/filterDocumentPaths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAGhE;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,WACtB,QAAQ,gBACF,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"filterDocumentPaths.d.ts","sourceRoot":"","sources":["../../src/lib/filterDocumentPaths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAGhE;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,WACtB,QAAQ,gBACF,MAAM,EAAE,KACrB,QAaF,CAAC"}
|
|
@@ -10,7 +10,7 @@ import { createServicePathMatch } from './createServicePathMatch.js';
|
|
|
10
10
|
* ```
|
|
11
11
|
*/
|
|
12
12
|
export const filterDocumentPaths = (schema, servicesGlob) => {
|
|
13
|
-
if (!servicesGlob)
|
|
13
|
+
if (!servicesGlob.length)
|
|
14
14
|
return schema;
|
|
15
15
|
const isPathMatch = createServicePathMatch(servicesGlob);
|
|
16
16
|
const paths = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterDocumentPaths.js","sourceRoot":"","sources":["../../src/lib/filterDocumentPaths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"filterDocumentPaths.js","sourceRoot":"","sources":["../../src/lib/filterDocumentPaths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAAgB,EAChB,YAAsB,EACZ,EAAE;IACZ,IAAI,CAAC,YAAY,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAExC,MAAM,WAAW,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACzD,MAAM,KAAK,GAAwB,EAAE,CAAC;IAEtC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;YAAE,SAAS;QACxE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAAE,SAAS;QACjC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC;AAC9B,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ServiceOperation } from './open-api/getServices.js';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param operationFullGlobs - Example: `post /**`, `/**,/foo/bar`
|
|
5
|
+
* @returns `pathGlobs`, and `methods` as an array if methods are specified, or `undefined`
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* parseOperationGlobs('post /**');
|
|
9
|
+
* parseOperationGlobs('patch,put /foo/bar');
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export declare const parseOperationGlobs: (operationFullGlobs: string) => {
|
|
13
|
+
methods: ("get" | "put" | "post" | "patch" | "delete" | "options" | "head" | "trace")[] | undefined;
|
|
14
|
+
pathGlobs: string;
|
|
15
|
+
};
|
|
16
|
+
export type OperationGlobMethods = ServiceOperation['method'];
|
|
17
|
+
//# sourceMappingURL=parseOperationGlobs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseOperationGlobs.d.ts","sourceRoot":"","sources":["../../src/lib/parseOperationGlobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,uBAAwB,MAAM;;;CAmB7D,CAAC;AAsBF,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { splitCommaSeparatedGlobs } from './splitCommaSeparatedGlobs.js';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param operationFullGlobs - Example: `post /**`, `/**,/foo/bar`
|
|
5
|
+
* @returns `pathGlobs`, and `methods` as an array if methods are specified, or `undefined`
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* parseOperationGlobs('post /**');
|
|
9
|
+
* parseOperationGlobs('patch,put /foo/bar');
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export const parseOperationGlobs = (operationFullGlobs) => {
|
|
13
|
+
const methodsGlobsRaw = operationFullGlobs.slice(0, Math.max(0, operationFullGlobs.indexOf('/')));
|
|
14
|
+
const methods = methodsGlobsRaw
|
|
15
|
+
.split(',')
|
|
16
|
+
.map((method) => method.trim().toLowerCase())
|
|
17
|
+
.filter(isSupportedOperationMethod);
|
|
18
|
+
methods.sort(sortSupportedMethods);
|
|
19
|
+
return {
|
|
20
|
+
methods: methods.length ? methods : undefined,
|
|
21
|
+
pathGlobs: splitCommaSeparatedGlobs(operationFullGlobs.slice(methodsGlobsRaw.length)).join(','),
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
const supportedOperationMethods = Object.values({
|
|
25
|
+
get: 'get',
|
|
26
|
+
post: 'post',
|
|
27
|
+
put: 'put',
|
|
28
|
+
patch: 'patch',
|
|
29
|
+
delete: 'delete',
|
|
30
|
+
options: 'options',
|
|
31
|
+
head: 'head',
|
|
32
|
+
trace: 'trace',
|
|
33
|
+
});
|
|
34
|
+
const isSupportedOperationMethod = (operationRaw) => supportedOperationMethods.includes(operationRaw);
|
|
35
|
+
const sortSupportedMethods = (a, b) => supportedOperationMethods.indexOf(a) -
|
|
36
|
+
supportedOperationMethods.indexOf(b);
|
|
37
|
+
//# sourceMappingURL=parseOperationGlobs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseOperationGlobs.js","sourceRoot":"","sources":["../../src/lib/parseOperationGlobs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,kBAA0B,EAAE,EAAE;IAChE,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAC9C,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAC7C,CAAC;IAEF,MAAM,OAAO,GAAG,eAAe;SAC5B,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC5C,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAEtC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAEnC,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAC7C,SAAS,EAAE,wBAAwB,CACjC,kBAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CACjD,CAAC,IAAI,CAAC,GAAG,CAAC;KACZ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9C,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACwC,CAAC,CAAC;AAE1D,MAAM,0BAA0B,GAAG,CACjC,YAAoB,EACkB,EAAE,CACxC,yBAAyB,CAAC,QAAQ,CAAC,YAAoC,CAAC,CAAC;AAE3E,MAAM,oBAAoB,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CACpD,yBAAyB,CAAC,OAAO,CAAC,CAAyB,CAAC;IAC5D,yBAAyB,CAAC,OAAO,CAAC,CAAyB,CAAC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { OpenAPI3 } from 'openapi-typescript/src/types.js';
|
|
2
2
|
import { OperationObject, ParameterObject } from 'openapi-typescript';
|
|
3
3
|
import { ReferenceObject } from 'openapi-typescript/src/types.js';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import { OperationGlobMethods } from './parseOperationGlobs.js';
|
|
5
|
+
export declare function predefineSchemaParameters(schema: OpenAPI3, predefinedParametersGlobs: PredefinedParametersGlob[]): OpenAPI3;
|
|
6
6
|
/**
|
|
7
7
|
* Parses the given configuration string into a structured format.
|
|
8
8
|
*
|
|
@@ -14,16 +14,20 @@ type PredefinedParametersOptionMap = Record<string, Pick<ParameterObject, 'in' |
|
|
|
14
14
|
* const parsedConfig = parseOperationPredefinedParametersOption("/foo,/bar/**:header.x-monite-version,query.x-api-key");
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
|
-
declare function parseOperationPredefinedParametersOption(...optionItems: string[]):
|
|
18
|
-
|
|
19
|
-
[glob: string]: {
|
|
20
|
-
paths: string[];
|
|
21
|
-
parameters: ParameterObject[];
|
|
22
|
-
errors: string[];
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
export declare function createPredefinedParametersGlobMap(schema: OpenAPI3, predefinedParameters: PredefinedParametersOptionMap): PredefinedParametersGlobMap;
|
|
17
|
+
declare function parseOperationPredefinedParametersOption(...optionItems: string[]): ParsedPredefinedParametersOption[];
|
|
18
|
+
export declare function createPredefinedParametersGlobs(schema: OpenAPI3, predefinedParameters: ParsedPredefinedParametersOption[]): Array<PredefinedParametersGlob>;
|
|
26
19
|
export declare function assertIsOperationObject(operationItem: OperationObject | ReferenceObject): asserts operationItem is OperationObject;
|
|
27
20
|
export declare function assertIsParameterObjects(parameterObjects: Array<ParameterObject | ReferenceObject>): asserts parameterObjects is Array<ParameterObject>;
|
|
21
|
+
type ParsedPredefinedParametersOption = {
|
|
22
|
+
methods: OperationGlobMethods[] | undefined;
|
|
23
|
+
pathGlobs: string;
|
|
24
|
+
parameters: Pick<ParameterObject, 'in' | 'name'>[];
|
|
25
|
+
};
|
|
26
|
+
type PredefinedParametersGlob = {
|
|
27
|
+
methods: OperationGlobMethods[] | undefined;
|
|
28
|
+
paths: string[];
|
|
29
|
+
parameters: Pick<ParameterObject, 'in' | 'name'>[];
|
|
30
|
+
errors: string[];
|
|
31
|
+
};
|
|
28
32
|
export { parseOperationPredefinedParametersOption };
|
|
29
33
|
//# sourceMappingURL=predefineSchemaParameters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"predefineSchemaParameters.d.ts","sourceRoot":"","sources":["../../src/lib/predefineSchemaParameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAEL,eAAe,EAChB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"predefineSchemaParameters.d.ts","sourceRoot":"","sources":["../../src/lib/predefineSchemaParameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAEL,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,oBAAoB,EAErB,MAAM,0BAA0B,CAAC;AAGlC,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,QAAQ,EAChB,yBAAyB,EAAE,wBAAwB,EAAE,GACpD,QAAQ,CAkEV;AAED;;;;;;;;;;GAUG;AACH,iBAAS,wCAAwC,CAC/C,GAAG,WAAW,EAAE,MAAM,EAAE,GACvB,gCAAgC,EAAE,CAoDpC;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,QAAQ,EAChB,oBAAoB,EAAE,gCAAgC,EAAE,GACvD,KAAK,CAAC,wBAAwB,CAAC,CAiIjC;AA4BD,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,eAAe,GAAG,eAAe,GAC/C,OAAO,CAAC,aAAa,IAAI,eAAe,CAM1C;AAED,wBAAgB,wBAAwB,CACtC,gBAAgB,EAAE,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC,GACzD,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC,eAAe,CAAC,CAQpD;AAED,KAAK,gCAAgC,GAAG;IACtC,OAAO,EAAE,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;CACpD,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,OAAO,EAAE,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAC5C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;IACnD,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,OAAO,EAAE,wCAAwC,EAAE,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { createServicePathMatch
|
|
2
|
-
|
|
1
|
+
import { createServicePathMatch } from './createServicePathMatch.js';
|
|
2
|
+
import { parseOperationGlobs, } from './parseOperationGlobs.js';
|
|
3
|
+
import { splitCommaSeparatedGlobs } from './splitCommaSeparatedGlobs.js';
|
|
4
|
+
export function predefineSchemaParameters(schema, predefinedParametersGlobs) {
|
|
3
5
|
const predefinedSchemaPaths = {};
|
|
4
6
|
for (const path in schema.paths) {
|
|
5
7
|
if (!Object.prototype.hasOwnProperty.call(schema.paths, path))
|
|
@@ -13,7 +15,7 @@ export function predefineSchemaParameters(schema, predefinedParametersGlobMap) {
|
|
|
13
15
|
continue;
|
|
14
16
|
const operation = service[method];
|
|
15
17
|
assertIsOperationObject(operation);
|
|
16
|
-
for (const predefinedParametersGlob of
|
|
18
|
+
for (const predefinedParametersGlob of predefinedParametersGlobs) {
|
|
17
19
|
if (!predefinedParametersGlob.paths.includes(path)) {
|
|
18
20
|
continue;
|
|
19
21
|
}
|
|
@@ -60,20 +62,18 @@ export function predefineSchemaParameters(schema, predefinedParametersGlobMap) {
|
|
|
60
62
|
* ```
|
|
61
63
|
*/
|
|
62
64
|
function parseOperationPredefinedParametersOption(...optionItems) {
|
|
63
|
-
const globParametersMap =
|
|
65
|
+
const globParametersMap = new Map();
|
|
64
66
|
for (const optionItem of optionItems) {
|
|
65
|
-
const
|
|
67
|
+
const operationGlobsRaw = optionItem.slice(0, Math.max(0, optionItem.indexOf(':')) || optionItem.length // the second part after the `:` is optional for the predefined parameters option
|
|
68
|
+
);
|
|
69
|
+
const parameterGlobs = optionItem.slice(operationGlobsRaw.length + 1);
|
|
66
70
|
const parameters = {
|
|
67
71
|
header: [],
|
|
68
72
|
query: [],
|
|
69
73
|
cookie: [],
|
|
70
74
|
};
|
|
71
|
-
if (
|
|
72
|
-
|
|
73
|
-
.split(',')
|
|
74
|
-
.map((option) => option.trim())
|
|
75
|
-
.filter(Boolean)
|
|
76
|
-
.forEach((option) => {
|
|
75
|
+
if (parameterGlobs) {
|
|
76
|
+
splitCommaSeparatedGlobs(parameterGlobs).forEach((option) => {
|
|
77
77
|
const [type, key] = option.split('.').map((s) => s.trim());
|
|
78
78
|
if (type !== 'header' && type !== 'query' && type !== 'cookie')
|
|
79
79
|
throw new Error(`Invalid option type: ${type} in ${option}. Must be one of 'header', 'query', or 'cookie'`);
|
|
@@ -81,20 +81,28 @@ function parseOperationPredefinedParametersOption(...optionItems) {
|
|
|
81
81
|
parameters[type].push(key);
|
|
82
82
|
});
|
|
83
83
|
}
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
const { pathGlobs, methods: methodList } = parseOperationGlobs(operationGlobsRaw);
|
|
85
|
+
const methods = methodList ? methodList.join(',') : '';
|
|
86
|
+
const globKey = `${methods}${pathGlobs}`;
|
|
87
|
+
if (globParametersMap.has(globKey)) {
|
|
88
|
+
throw new Error(`Duplicate path: ${methods ? methods + ' ' : ''}${pathGlobs} in config string.`);
|
|
86
89
|
}
|
|
87
|
-
globParametersMap
|
|
90
|
+
globParametersMap.set(globKey, {
|
|
91
|
+
parameters: Object.entries(parameters).flatMap(([inLocation, names]) => names.map((name) => ({ in: inLocation, name }))),
|
|
92
|
+
methods: methodList,
|
|
93
|
+
pathGlobs,
|
|
94
|
+
});
|
|
88
95
|
}
|
|
89
|
-
return globParametersMap;
|
|
96
|
+
return Array.from(globParametersMap.values());
|
|
90
97
|
}
|
|
91
|
-
export function
|
|
92
|
-
const predefinedParametersGlobMap =
|
|
93
|
-
const servicePredefinedParametersList =
|
|
94
|
-
const globs =
|
|
95
|
-
if (!globs)
|
|
98
|
+
export function createPredefinedParametersGlobs(schema, predefinedParameters) {
|
|
99
|
+
const predefinedParametersGlobMap = new Map();
|
|
100
|
+
const servicePredefinedParametersList = predefinedParameters.map(({ pathGlobs, parameters, methods }) => {
|
|
101
|
+
const globs = splitCommaSeparatedGlobs(pathGlobs);
|
|
102
|
+
if (!globs.length)
|
|
96
103
|
throw new Error(`Invalid path glob: ${pathGlobs}. Must be a comma-separated list of globs.`);
|
|
97
104
|
return {
|
|
105
|
+
methods,
|
|
98
106
|
pathGlobs,
|
|
99
107
|
parameters,
|
|
100
108
|
isPathMatch: createServicePathMatch(globs),
|
|
@@ -103,7 +111,7 @@ export function createPredefinedParametersGlobMap(schema, predefinedParameters)
|
|
|
103
111
|
for (const path in schema.paths) {
|
|
104
112
|
if (!Object.prototype.hasOwnProperty.call(schema.paths, path))
|
|
105
113
|
continue;
|
|
106
|
-
for (const { pathGlobs, parameters: parametersToPredefine, isPathMatch, } of servicePredefinedParametersList) {
|
|
114
|
+
for (const { methods, pathGlobs, parameters: parametersToPredefine, isPathMatch, } of servicePredefinedParametersList) {
|
|
107
115
|
if (!isPathMatch(path))
|
|
108
116
|
continue;
|
|
109
117
|
const service = schema.paths[path];
|
|
@@ -112,19 +120,30 @@ export function createPredefinedParametersGlobMap(schema, predefinedParameters)
|
|
|
112
120
|
const method = _method;
|
|
113
121
|
if (!Object.prototype.hasOwnProperty.call(service, method))
|
|
114
122
|
continue;
|
|
123
|
+
if (methods !== undefined &&
|
|
124
|
+
!methods.includes(method))
|
|
125
|
+
continue;
|
|
115
126
|
const operation = service[method];
|
|
116
127
|
assertIsOperationObject(operation);
|
|
117
128
|
const operationParameters = operation.parameters ?? [];
|
|
118
129
|
assertIsParameterObjects(operationParameters);
|
|
119
|
-
if (!(pathGlobs
|
|
120
|
-
predefinedParametersGlobMap
|
|
130
|
+
if (!predefinedParametersGlobMap.has(pathGlobs))
|
|
131
|
+
predefinedParametersGlobMap.set(pathGlobs, {
|
|
132
|
+
methods: [],
|
|
121
133
|
paths: [],
|
|
122
134
|
parameters: [],
|
|
123
135
|
errors: [],
|
|
124
|
-
};
|
|
125
|
-
const predefinedPathGlob = predefinedParametersGlobMap
|
|
136
|
+
});
|
|
137
|
+
const predefinedPathGlob = predefinedParametersGlobMap.get(pathGlobs);
|
|
138
|
+
if (!predefinedPathGlob)
|
|
139
|
+
throw new Error('predefinedPathGlob not found');
|
|
126
140
|
for (const parameterSchemaToPredefine of parametersToPredefine) {
|
|
127
141
|
const parameterToPredefine = findPredefinedOperationParameter(parameterSchemaToPredefine, operationParameters);
|
|
142
|
+
if (!predefinedPathGlob.methods?.includes(method)) {
|
|
143
|
+
if (!predefinedPathGlob.methods)
|
|
144
|
+
predefinedPathGlob.methods = [];
|
|
145
|
+
predefinedPathGlob.methods.push(method);
|
|
146
|
+
}
|
|
128
147
|
if (!parameterToPredefine) {
|
|
129
148
|
predefinedPathGlob.errors.push(`Missing predefined parameter '${parameterSchemaToPredefine.in}' '${parameterSchemaToPredefine.name}' in '${method} ${path}' in '${pathGlobs}'`);
|
|
130
149
|
continue;
|
|
@@ -148,16 +167,17 @@ export function createPredefinedParametersGlobMap(schema, predefinedParameters)
|
|
|
148
167
|
}
|
|
149
168
|
}
|
|
150
169
|
}
|
|
151
|
-
|
|
152
|
-
if (!predefinedParametersGlobMap
|
|
153
|
-
predefinedParametersGlobMap
|
|
170
|
+
predefinedParameters.forEach(({ pathGlobs, methods }) => {
|
|
171
|
+
if (!predefinedParametersGlobMap.has(pathGlobs)) {
|
|
172
|
+
predefinedParametersGlobMap.set(pathGlobs, {
|
|
173
|
+
methods,
|
|
154
174
|
paths: [],
|
|
155
175
|
parameters: [],
|
|
156
176
|
errors: [`No matching paths found for '${pathGlobs}'`],
|
|
157
|
-
};
|
|
177
|
+
});
|
|
158
178
|
}
|
|
159
179
|
});
|
|
160
|
-
return predefinedParametersGlobMap;
|
|
180
|
+
return Array.from(predefinedParametersGlobMap.values());
|
|
161
181
|
}
|
|
162
182
|
function findPredefinedOperationParameter(parameterSchemaToPredefine, operationParameters) {
|
|
163
183
|
return operationParameters.find((operationParameter) => operationParameter.in === parameterSchemaToPredefine.in &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"predefineSchemaParameters.js","sourceRoot":"","sources":["../../src/lib/predefineSchemaParameters.ts"],"names":[],"mappings":"AAMA,OAAO,
|
|
1
|
+
{"version":3,"file":"predefineSchemaParameters.js","sourceRoot":"","sources":["../../src/lib/predefineSchemaParameters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Service } from './open-api/getServices.js';
|
|
2
|
+
import { OperationGlobMethods } from './parseOperationGlobs.js';
|
|
3
|
+
export declare const processOperationNameModifierOption: (modifiers: OperationNameModifier[], services: Service[]) => {
|
|
4
|
+
errors: {
|
|
5
|
+
serviceName: string;
|
|
6
|
+
replacedOperationName: string;
|
|
7
|
+
originalOperationName: string | undefined;
|
|
8
|
+
modifiers: OperationNameModifier[];
|
|
9
|
+
}[];
|
|
10
|
+
services: {
|
|
11
|
+
operations: {
|
|
12
|
+
name: string;
|
|
13
|
+
method: "get" | "put" | "post" | "patch" | "delete" | "options" | "head" | "trace";
|
|
14
|
+
path: string;
|
|
15
|
+
description: string | undefined;
|
|
16
|
+
summary: string | undefined;
|
|
17
|
+
deprecated: boolean | undefined;
|
|
18
|
+
mediaType: string | undefined;
|
|
19
|
+
errors: Record<string, string | undefined>;
|
|
20
|
+
success: Record<string, string | undefined>;
|
|
21
|
+
parameters: Record<string, any> | undefined;
|
|
22
|
+
security: Record<string, string[] | undefined>[] | undefined;
|
|
23
|
+
}[];
|
|
24
|
+
name: string;
|
|
25
|
+
variableName: string;
|
|
26
|
+
typeName: string;
|
|
27
|
+
fileBaseName: string;
|
|
28
|
+
}[];
|
|
29
|
+
};
|
|
30
|
+
export type OperationNameModifier = {
|
|
31
|
+
methods: OperationGlobMethods[] | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Glob pattern to match service paths, eg: `/foo,/bar/**`
|
|
34
|
+
*/
|
|
35
|
+
pathGlobs: string;
|
|
36
|
+
/**
|
|
37
|
+
* Regular expression to match operation names
|
|
38
|
+
*/
|
|
39
|
+
operationNameModifierRegex: string;
|
|
40
|
+
/**
|
|
41
|
+
* Replacement string for matched operation names
|
|
42
|
+
*/
|
|
43
|
+
operationNameModifierReplace: string;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Parses the given options string into a structured format.
|
|
47
|
+
*
|
|
48
|
+
* @param optionItems - The configuration string to parse. Eg. `/foo,/bar/**:post[A-Z][A-Za-z]+sId[A-Z][A-Za-z]+ ==> createOne` or `post /** ==> createOne`
|
|
49
|
+
* @returns The parsed configuration.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```ts
|
|
53
|
+
* const parsedConfig = parseOperationNameModifier("/foo,/bar/**:/**:post[A-Z][A-Za-z]+sId[A-Z][A-Za-z]+ ==> createOne");
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare function parseOperationNameModifier(...optionItems: string[]): OperationNameModifier[];
|
|
57
|
+
//# sourceMappingURL=processOperationNameModifierOption.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processOperationNameModifierOption.d.ts","sourceRoot":"","sources":["../../src/lib/processOperationNameModifierOption.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EACL,oBAAoB,EAErB,MAAM,0BAA0B,CAAC;AAGlC,eAAO,MAAM,kCAAkC,cAClC,qBAAqB,EAAE,YACxB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;CAuHpB,CAAC;AAMF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAC5C;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,0BAA0B,EAAE,MAAM,CAAC;IACnC;;OAEG;IACH,4BAA4B,EAAE,MAAM,CAAC;CACtC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,WAAW,EAAE,MAAM,EAAE,GACvB,qBAAqB,EAAE,CAwCzB"}
|