openapi-sync 2.1.9 → 2.1.10
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 +146 -16
- package/db.json +1 -1
- package/dist/Openapi-sync/index.js +106 -20
- package/dist/index.js +0 -2
- package/dist/openapi.sync.sample.js +34 -0
- package/dist/types.d.ts +20 -1
- package/package.json +3 -4
|
@@ -498,14 +498,82 @@ const OpenapiSync = (apiUrl, apiName, config, refetchInterval) => __awaiter(void
|
|
|
498
498
|
return endpointUrl;
|
|
499
499
|
}
|
|
500
500
|
};
|
|
501
|
+
// Helper function to check if an endpoint should be excluded
|
|
502
|
+
const shouldExcludeEndpoint = (path, method, tags = []) => {
|
|
503
|
+
var _a, _b;
|
|
504
|
+
const excludeConfig = (_a = config === null || config === void 0 ? void 0 : config.endpoints) === null || _a === void 0 ? void 0 : _a.exclude;
|
|
505
|
+
const includeConfig = (_b = config === null || config === void 0 ? void 0 : config.endpoints) === null || _b === void 0 ? void 0 : _b.include;
|
|
506
|
+
// If include is specified
|
|
507
|
+
if (includeConfig) {
|
|
508
|
+
// Check if endpoint matches include criteria
|
|
509
|
+
const matchesIncludeTags = includeConfig.tags && includeConfig.tags.length > 0
|
|
510
|
+
? tags.some((tag) => includeConfig.tags.includes(tag))
|
|
511
|
+
: true;
|
|
512
|
+
const matchesIncludeEndpoints = includeConfig.endpoints && includeConfig.endpoints.length > 0
|
|
513
|
+
? includeConfig.endpoints.some((endpoint) => {
|
|
514
|
+
const methodMatches = !endpoint.method ||
|
|
515
|
+
endpoint.method.toLowerCase() === method.toLowerCase();
|
|
516
|
+
// Use exact path match if path is provided
|
|
517
|
+
if (endpoint.path) {
|
|
518
|
+
return path === endpoint.path && methodMatches;
|
|
519
|
+
}
|
|
520
|
+
// Use regex match if regex is provided
|
|
521
|
+
else if (endpoint.regex) {
|
|
522
|
+
const pathRegex = new RegExp(endpoint.regex);
|
|
523
|
+
return pathRegex.test(path) && methodMatches;
|
|
524
|
+
}
|
|
525
|
+
return false;
|
|
526
|
+
})
|
|
527
|
+
: true;
|
|
528
|
+
// If include is specified but endpoint doesn't match, exclude it
|
|
529
|
+
if (!matchesIncludeTags || !matchesIncludeEndpoints) {
|
|
530
|
+
return true;
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
// Check exclude criteria, it takes precedence over include
|
|
534
|
+
if (excludeConfig) {
|
|
535
|
+
// Check tags exclusion
|
|
536
|
+
if (excludeConfig.tags && excludeConfig.tags.length > 0) {
|
|
537
|
+
const hasExcludedTag = tags.some((tag) => excludeConfig.tags.includes(tag));
|
|
538
|
+
if (hasExcludedTag)
|
|
539
|
+
return true;
|
|
540
|
+
}
|
|
541
|
+
// Check endpoint exclusion
|
|
542
|
+
if (excludeConfig.endpoints && excludeConfig.endpoints.length > 0) {
|
|
543
|
+
const matchesExcludedEndpoint = excludeConfig.endpoints.some((endpoint) => {
|
|
544
|
+
const methodMatches = !endpoint.method ||
|
|
545
|
+
endpoint.method.toLowerCase() === method.toLowerCase();
|
|
546
|
+
// Use exact path match if path is provided
|
|
547
|
+
if (endpoint.path) {
|
|
548
|
+
return path === endpoint.path && methodMatches;
|
|
549
|
+
}
|
|
550
|
+
// Use regex match if regex is provided
|
|
551
|
+
else if (endpoint.regex) {
|
|
552
|
+
const pathRegex = new RegExp(endpoint.regex);
|
|
553
|
+
return pathRegex.test(path) && methodMatches;
|
|
554
|
+
}
|
|
555
|
+
return false;
|
|
556
|
+
});
|
|
557
|
+
if (matchesExcludedEndpoint)
|
|
558
|
+
return true;
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
return false;
|
|
562
|
+
};
|
|
501
563
|
Object.keys(spec.paths || {}).forEach((endpointPath) => {
|
|
502
564
|
const endpointSpec = spec.paths[endpointPath];
|
|
503
565
|
const endpointMethods = Object.keys(endpointSpec);
|
|
504
566
|
endpointMethods.forEach((_method) => {
|
|
505
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
|
|
567
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
|
|
506
568
|
const method = _method;
|
|
507
569
|
const endpoint = (0, helpers_1.getEndpointDetails)(endpointPath, method);
|
|
508
|
-
|
|
570
|
+
// Get endpoint tags for filtering
|
|
571
|
+
const endpointTags = ((_a = endpointSpec[method]) === null || _a === void 0 ? void 0 : _a.tags) || [];
|
|
572
|
+
// Check if this endpoint should be excluded
|
|
573
|
+
if (shouldExcludeEndpoint(endpointPath, method, endpointTags)) {
|
|
574
|
+
return; // Skip this endpoint
|
|
575
|
+
}
|
|
576
|
+
const endpointUrlTxt = (((_c = (_b = config === null || config === void 0 ? void 0 : config.endpoints) === null || _b === void 0 ? void 0 : _b.value) === null || _c === void 0 ? void 0 : _c.includeServer) ? serverUrl : "") +
|
|
509
577
|
endpoint.pathParts
|
|
510
578
|
.map((part) => {
|
|
511
579
|
// check if part is a variable
|
|
@@ -546,18 +614,24 @@ const OpenapiSync = (apiUrl, apiName, config, refetchInterval) => __awaiter(void
|
|
|
546
614
|
if (queryTypeCnt) {
|
|
547
615
|
queryTypeCnt = `{\n${queryTypeCnt}}`;
|
|
548
616
|
let name = `${endpoint.name}Query`;
|
|
549
|
-
|
|
617
|
+
// Use operationId if configured and available
|
|
618
|
+
if (((_e = (_d = config === null || config === void 0 ? void 0 : config.types) === null || _d === void 0 ? void 0 : _d.name) === null || _e === void 0 ? void 0 : _e.useOperationId) && (eSpec === null || eSpec === void 0 ? void 0 : eSpec.operationId)) {
|
|
619
|
+
name = `${eSpec.operationId}Query`;
|
|
620
|
+
}
|
|
621
|
+
name = (0, helpers_1.capitalize)(`${typePrefix}${name}`);
|
|
622
|
+
if ((_g = (_f = config === null || config === void 0 ? void 0 : config.types) === null || _f === void 0 ? void 0 : _f.name) === null || _g === void 0 ? void 0 : _g.format) {
|
|
550
623
|
const formattedName = config === null || config === void 0 ? void 0 : config.types.name.format("endpoint", {
|
|
551
624
|
code: "",
|
|
552
625
|
type: "query",
|
|
553
626
|
method,
|
|
554
627
|
path: endpointPath,
|
|
555
628
|
summary: eSpec === null || eSpec === void 0 ? void 0 : eSpec.summary,
|
|
629
|
+
operationId: eSpec === null || eSpec === void 0 ? void 0 : eSpec.operationId,
|
|
556
630
|
}, name);
|
|
557
631
|
if (formattedName)
|
|
558
|
-
name = formattedName
|
|
632
|
+
name = `${typePrefix}${formattedName}`;
|
|
559
633
|
}
|
|
560
|
-
typesFileContent += `export type ${
|
|
634
|
+
typesFileContent += `export type ${name} = ${queryTypeCnt};\n`;
|
|
561
635
|
}
|
|
562
636
|
}
|
|
563
637
|
const requestBody = eSpec === null || eSpec === void 0 ? void 0 : eSpec.requestBody;
|
|
@@ -567,18 +641,24 @@ const OpenapiSync = (apiUrl, apiName, config, refetchInterval) => __awaiter(void
|
|
|
567
641
|
dtoTypeCnt = getBodySchemaType(requestBody);
|
|
568
642
|
if (dtoTypeCnt) {
|
|
569
643
|
let name = `${endpoint.name}DTO`;
|
|
570
|
-
|
|
644
|
+
// Use operationId if configured and available
|
|
645
|
+
if (((_j = (_h = config === null || config === void 0 ? void 0 : config.types) === null || _h === void 0 ? void 0 : _h.name) === null || _j === void 0 ? void 0 : _j.useOperationId) && (eSpec === null || eSpec === void 0 ? void 0 : eSpec.operationId)) {
|
|
646
|
+
name = `${eSpec.operationId}DTO`;
|
|
647
|
+
}
|
|
648
|
+
name = (0, helpers_1.capitalize)(`${typePrefix}${name}`);
|
|
649
|
+
if ((_l = (_k = config === null || config === void 0 ? void 0 : config.types) === null || _k === void 0 ? void 0 : _k.name) === null || _l === void 0 ? void 0 : _l.format) {
|
|
571
650
|
const formattedName = config === null || config === void 0 ? void 0 : config.types.name.format("endpoint", {
|
|
572
651
|
code: "",
|
|
573
652
|
type: "dto",
|
|
574
653
|
method,
|
|
575
654
|
path: endpointPath,
|
|
576
655
|
summary: eSpec === null || eSpec === void 0 ? void 0 : eSpec.summary,
|
|
656
|
+
operationId: eSpec === null || eSpec === void 0 ? void 0 : eSpec.operationId,
|
|
577
657
|
}, name);
|
|
578
658
|
if (formattedName)
|
|
579
|
-
name = formattedName
|
|
659
|
+
name = `${typePrefix}${formattedName}`;
|
|
580
660
|
}
|
|
581
|
-
typesFileContent += `export type ${
|
|
661
|
+
typesFileContent += `export type ${name} = ${dtoTypeCnt};\n`;
|
|
582
662
|
}
|
|
583
663
|
}
|
|
584
664
|
const responseTypeObject = {};
|
|
@@ -588,23 +668,29 @@ const OpenapiSync = (apiUrl, apiName, config, refetchInterval) => __awaiter(void
|
|
|
588
668
|
const responses = eSpec === null || eSpec === void 0 ? void 0 : eSpec.responses;
|
|
589
669
|
const resCodes = Object.keys(responses);
|
|
590
670
|
resCodes.forEach((code) => {
|
|
591
|
-
var _a, _b;
|
|
671
|
+
var _a, _b, _c, _d;
|
|
592
672
|
responseTypeCnt = getBodySchemaType(responses[code]);
|
|
593
673
|
responseTypeObject[code] = responseTypeCnt;
|
|
594
674
|
if (responseTypeCnt) {
|
|
595
675
|
let name = `${endpoint.name}${code}Response`;
|
|
596
|
-
|
|
676
|
+
// Use operationId if configured and available
|
|
677
|
+
if (((_b = (_a = config === null || config === void 0 ? void 0 : config.types) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.useOperationId) && (eSpec === null || eSpec === void 0 ? void 0 : eSpec.operationId)) {
|
|
678
|
+
name = `${eSpec.operationId}${code}Response`;
|
|
679
|
+
}
|
|
680
|
+
name = (0, helpers_1.capitalize)(`${typePrefix}${name}`);
|
|
681
|
+
if ((_d = (_c = config === null || config === void 0 ? void 0 : config.types) === null || _c === void 0 ? void 0 : _c.name) === null || _d === void 0 ? void 0 : _d.format) {
|
|
597
682
|
const formattedName = config === null || config === void 0 ? void 0 : config.types.name.format("endpoint", {
|
|
598
683
|
code,
|
|
599
684
|
type: "response",
|
|
600
685
|
method,
|
|
601
686
|
path: endpointPath,
|
|
602
687
|
summary: eSpec === null || eSpec === void 0 ? void 0 : eSpec.summary,
|
|
688
|
+
operationId: eSpec === null || eSpec === void 0 ? void 0 : eSpec.operationId,
|
|
603
689
|
}, name);
|
|
604
690
|
if (formattedName)
|
|
605
|
-
name = formattedName
|
|
691
|
+
name = `${typePrefix}${formattedName}`;
|
|
606
692
|
}
|
|
607
|
-
typesFileContent += `export type ${
|
|
693
|
+
typesFileContent += `export type ${name} = ${responseTypeCnt};\n`;
|
|
608
694
|
}
|
|
609
695
|
});
|
|
610
696
|
}
|
|
@@ -634,9 +720,9 @@ const OpenapiSync = (apiUrl, apiName, config, refetchInterval) => __awaiter(void
|
|
|
634
720
|
? formatSecuritySpec(eSpec.security)
|
|
635
721
|
: "";
|
|
636
722
|
let doc = "";
|
|
637
|
-
if (!((
|
|
723
|
+
if (!((_o = (_m = config === null || config === void 0 ? void 0 : config.endpoints) === null || _m === void 0 ? void 0 : _m.doc) === null || _o === void 0 ? void 0 : _o.disable)) {
|
|
638
724
|
let curl = "";
|
|
639
|
-
if ((
|
|
725
|
+
if ((_q = (_p = config === null || config === void 0 ? void 0 : config.endpoints) === null || _p === void 0 ? void 0 : _p.doc) === null || _q === void 0 ? void 0 : _q.showCurl) {
|
|
640
726
|
// console.log("cirl data", {
|
|
641
727
|
// body: eSpec?.requestBody,
|
|
642
728
|
// bodyContent:
|
|
@@ -647,7 +733,7 @@ const OpenapiSync = (apiUrl, apiName, config, refetchInterval) => __awaiter(void
|
|
|
647
733
|
const headers = {};
|
|
648
734
|
let body = "";
|
|
649
735
|
let extras = "";
|
|
650
|
-
if ((
|
|
736
|
+
if ((_r = eSpec.requestBody) === null || _r === void 0 ? void 0 : _r.content) {
|
|
651
737
|
const contentTypes = Object.keys(eSpec.requestBody.content);
|
|
652
738
|
contentTypes.forEach((contentType) => {
|
|
653
739
|
// console.log("requestBody content", {
|
|
@@ -712,7 +798,7 @@ ${(0, curl_generator_1.CurlGenerator)({
|
|
|
712
798
|
doc = `/**${(eSpec === null || eSpec === void 0 ? void 0 : eSpec.description) ? `\n* ${eSpec === null || eSpec === void 0 ? void 0 : eSpec.description} ` : ""}
|
|
713
799
|
* **Method**: \`${method.toUpperCase()}\`
|
|
714
800
|
* **Summary**: ${(eSpec === null || eSpec === void 0 ? void 0 : eSpec.summary) || ""}
|
|
715
|
-
* **Tags**: [${((
|
|
801
|
+
* **Tags**: [${((_s = eSpec === null || eSpec === void 0 ? void 0 : eSpec.tags) === null || _s === void 0 ? void 0 : _s.join(", ")) || ""}]
|
|
716
802
|
* **OperationId**: ${(eSpec === null || eSpec === void 0 ? void 0 : eSpec.operationId) || ""} ${queryTypeCnt
|
|
717
803
|
? `\n * **Query**: ${(0, helpers_1.renderTypeRefMD)(queryTypeCnt)} `
|
|
718
804
|
: ""}${dtoTypeCnt ? `\n * **DTO**: ${(0, helpers_1.renderTypeRefMD)(dtoTypeCnt)} ` : ""}${responseTypeCnt
|
|
@@ -722,11 +808,11 @@ ${(0, curl_generator_1.CurlGenerator)({
|
|
|
722
808
|
: ""}${securitySpec ? `\n * **Security**: ${securitySpec}\n` : ""}${curl}
|
|
723
809
|
*/\n`;
|
|
724
810
|
}
|
|
725
|
-
let name = ((
|
|
726
|
-
((
|
|
811
|
+
let name = ((_u = (_t = config === null || config === void 0 ? void 0 : config.endpoints) === null || _t === void 0 ? void 0 : _t.name) === null || _u === void 0 ? void 0 : _u.useOperationId) &&
|
|
812
|
+
((_v = eSpec === null || eSpec === void 0 ? void 0 : eSpec.operationId) === null || _v === void 0 ? void 0 : _v.length) > 0
|
|
727
813
|
? eSpec.operationId
|
|
728
814
|
: `${endpoint.name}`;
|
|
729
|
-
if ((
|
|
815
|
+
if ((_x = (_w = config === null || config === void 0 ? void 0 : config.endpoints) === null || _w === void 0 ? void 0 : _w.name) === null || _x === void 0 ? void 0 : _x.format) {
|
|
730
816
|
const formattedName = config === null || config === void 0 ? void 0 : config.endpoints.name.format({
|
|
731
817
|
method,
|
|
732
818
|
path: endpointPath,
|
|
@@ -743,7 +829,7 @@ ${(0, curl_generator_1.CurlGenerator)({
|
|
|
743
829
|
tags: (eSpec === null || eSpec === void 0 ? void 0 : eSpec.tags) || [],
|
|
744
830
|
};
|
|
745
831
|
// Add the endpoint url
|
|
746
|
-
endpointsFileContent += `${doc}export const ${endpointPrefix}${name} = ${((
|
|
832
|
+
endpointsFileContent += `${doc}export const ${endpointPrefix}${name} = ${((_z = (_y = config === null || config === void 0 ? void 0 : config.endpoints) === null || _y === void 0 ? void 0 : _y.value) === null || _z === void 0 ? void 0 : _z.type) === "object"
|
|
747
833
|
? (0, helpers_1.JSONStringify)(content)
|
|
748
834
|
: endpointUrl};
|
|
749
835
|
`;
|
package/dist/index.js
CHANGED
|
@@ -28,7 +28,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.Init = void 0;
|
|
30
30
|
const Openapi_sync_1 = __importDefault(require("./Openapi-sync"));
|
|
31
|
-
const dotenv_1 = __importDefault(require("dotenv"));
|
|
32
31
|
const path_1 = __importDefault(require("path"));
|
|
33
32
|
const fs_1 = __importDefault(require("fs"));
|
|
34
33
|
const state_1 = require("./Openapi-sync/state");
|
|
@@ -36,7 +35,6 @@ const state_1 = require("./Openapi-sync/state");
|
|
|
36
35
|
__exportStar(require("./types"), exports);
|
|
37
36
|
__exportStar(require("./helpers"), exports);
|
|
38
37
|
__exportStar(require("./regex"), exports);
|
|
39
|
-
dotenv_1.default.config();
|
|
40
38
|
const rootUsingCwd = process.cwd();
|
|
41
39
|
const Init = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
42
40
|
// Load config file
|
|
@@ -8,14 +8,20 @@ const config = {
|
|
|
8
8
|
example2: "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/examples/v3.0/petstore.yaml",
|
|
9
9
|
},
|
|
10
10
|
server: 0,
|
|
11
|
+
// Configuration for excluding endpoints from code generation
|
|
11
12
|
types: {
|
|
12
13
|
name: {
|
|
13
14
|
prefix: "",
|
|
15
|
+
useOperationId: true, // Use operationId for type naming when available
|
|
14
16
|
format: (source, data, defaultName) => {
|
|
15
17
|
if (source === "shared") {
|
|
16
18
|
return `${data.name}`;
|
|
17
19
|
}
|
|
18
20
|
else if (source === "endpoint") {
|
|
21
|
+
// Use operationId if available, otherwise fall back to path-based naming
|
|
22
|
+
if (data.operationId) {
|
|
23
|
+
return `${data.operationId}${data.code}${data.type}`;
|
|
24
|
+
}
|
|
19
25
|
return `${data.method.toLowerCase()}${data
|
|
20
26
|
.path.replace(/\//g, "_")
|
|
21
27
|
.replace(/{|}/g, "")}${data.code}${data.type}`;
|
|
@@ -50,6 +56,34 @@ const config = {
|
|
|
50
56
|
disable: false,
|
|
51
57
|
showCurl: true,
|
|
52
58
|
},
|
|
59
|
+
exclude: {
|
|
60
|
+
// Exclude endpoints by tags
|
|
61
|
+
tags: ["deprecated", "internal"],
|
|
62
|
+
// Exclude individual endpoints by path and method
|
|
63
|
+
endpoints: [
|
|
64
|
+
// Exact path match
|
|
65
|
+
{ path: "/admin/users", method: "DELETE" },
|
|
66
|
+
// Regex pattern match
|
|
67
|
+
{ regex: "^/internal/.*", method: "GET" },
|
|
68
|
+
{ regex: ".*/debug$", method: "GET" },
|
|
69
|
+
// Don't specify method to exclude all methods
|
|
70
|
+
{ path: "/debug/logs" },
|
|
71
|
+
],
|
|
72
|
+
},
|
|
73
|
+
include: {
|
|
74
|
+
// Include endpoints by tags
|
|
75
|
+
tags: ["public"],
|
|
76
|
+
// Include individual endpoints by path and method
|
|
77
|
+
endpoints: [
|
|
78
|
+
// Exact path match
|
|
79
|
+
{ path: "/public/users", method: "GET" },
|
|
80
|
+
// Regex pattern match
|
|
81
|
+
{ regex: "^/public/.*", method: "GET" },
|
|
82
|
+
{ regex: ".*/logs$", method: "GET" },
|
|
83
|
+
// Don't specify method to include all methods
|
|
84
|
+
{ path: "/public/logs" },
|
|
85
|
+
],
|
|
86
|
+
},
|
|
53
87
|
},
|
|
54
88
|
};
|
|
55
89
|
module.exports = config;
|
package/dist/types.d.ts
CHANGED
|
@@ -48,20 +48,36 @@ export type IConfigReplaceWord = {
|
|
|
48
48
|
/** string and regular expression as a string*/
|
|
49
49
|
replace: string;
|
|
50
50
|
with: string;
|
|
51
|
-
type?: "endpoint" | "type";
|
|
52
51
|
};
|
|
53
52
|
export type IConfigDoc = {
|
|
54
53
|
disable?: boolean;
|
|
55
54
|
showCurl?: boolean;
|
|
56
55
|
};
|
|
56
|
+
export type IConfigExclude = {
|
|
57
|
+
/** Exclude/Include endpoints by tags */
|
|
58
|
+
tags?: string[];
|
|
59
|
+
/** Exclude/Include individual endpoints by path and method */
|
|
60
|
+
endpoints?: Array<{
|
|
61
|
+
/** Exact path match (regex will be ignore when provided)*/
|
|
62
|
+
path?: string;
|
|
63
|
+
/** Regular expression pattern for path matching */
|
|
64
|
+
regex?: string;
|
|
65
|
+
/** Don't specify method to exclude all methods */
|
|
66
|
+
method?: Method;
|
|
67
|
+
}>;
|
|
68
|
+
};
|
|
69
|
+
export interface IConfigInclude extends IConfigExclude {
|
|
70
|
+
}
|
|
57
71
|
export type IConfig = {
|
|
58
72
|
refetchInterval?: number;
|
|
59
73
|
folder?: string;
|
|
60
74
|
api: Record<string, string>;
|
|
61
75
|
server?: number | string;
|
|
76
|
+
/** Configuration for excluding endpoints from code generation */
|
|
62
77
|
types?: {
|
|
63
78
|
name?: {
|
|
64
79
|
prefix?: string;
|
|
80
|
+
useOperationId?: boolean;
|
|
65
81
|
format?: (source: "shared" | "endpoint", data: {
|
|
66
82
|
name?: string;
|
|
67
83
|
type?: "response" | "dto" | "query";
|
|
@@ -69,6 +85,7 @@ export type IConfig = {
|
|
|
69
85
|
method?: Method;
|
|
70
86
|
path?: string;
|
|
71
87
|
summary?: string;
|
|
88
|
+
operationId?: string;
|
|
72
89
|
}, defaultName: string) => string | null | undefined;
|
|
73
90
|
};
|
|
74
91
|
doc?: IConfigDoc;
|
|
@@ -90,6 +107,8 @@ export type IConfig = {
|
|
|
90
107
|
useOperationId?: boolean;
|
|
91
108
|
};
|
|
92
109
|
doc?: IConfigDoc;
|
|
110
|
+
exclude?: IConfigExclude;
|
|
111
|
+
include?: IConfigInclude;
|
|
93
112
|
};
|
|
94
113
|
};
|
|
95
114
|
export type IOpenApiSecuritySchemes = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openapi-sync",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.10",
|
|
4
4
|
"description": "A developer-friendly tool designed to keep your API up-to-date by leveraging OpenAPI schemas. It automates the generation of endpoint URIs and type definitions, including shared types, directly from your OpenAPI specification.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"scripts": {
|
|
62
62
|
"test": "echo \"Error: no test specified\"",
|
|
63
63
|
"build": "rm -rf dist && tsc",
|
|
64
|
-
"publish-package": "npm run build && npm
|
|
64
|
+
"publish-package": "npm run build && npm publish",
|
|
65
65
|
"start": "npm run build && openapi-sync"
|
|
66
66
|
},
|
|
67
67
|
"author": "P-Technologies",
|
|
@@ -78,9 +78,8 @@
|
|
|
78
78
|
"axios-retry": "^4.5.0",
|
|
79
79
|
"esbuild-register": "^3.6.0",
|
|
80
80
|
"curl-generator": "^0.4.2",
|
|
81
|
-
"dotenv": "^16.4.5",
|
|
82
81
|
"js-yaml": "^4.1.0",
|
|
83
82
|
"lodash": "^4.17.21",
|
|
84
83
|
"yargs": "^17.7.2"
|
|
85
84
|
}
|
|
86
|
-
}
|
|
85
|
+
}
|