@trapi/swagger 0.3.8 → 1.0.0-alpha.3
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/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +25 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/type.d.ts +83 -0
- package/dist/config/type.d.ts.map +1 -0
- package/dist/config/type.js +9 -0
- package/dist/config/type.js.map +1 -0
- package/dist/config/utils.d.ts +3 -0
- package/dist/config/utils.d.ts.map +1 -0
- package/dist/config/utils.js +52 -0
- package/dist/config/utils.js.map +1 -0
- package/dist/constants.d.ts +15 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +27 -0
- package/dist/constants.js.map +1 -0
- package/dist/generator/abstract.d.ts +27 -0
- package/dist/generator/abstract.d.ts.map +1 -0
- package/dist/{specification → generator}/abstract.js +68 -84
- package/dist/generator/abstract.js.map +1 -0
- package/dist/{specification → generator}/index.d.ts +0 -2
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/{specification → generator}/index.js +1 -3
- package/dist/generator/index.js.map +1 -0
- package/dist/generator/module.d.ts +14 -0
- package/dist/generator/module.d.ts.map +1 -0
- package/dist/generator/module.js +35 -0
- package/dist/generator/module.js.map +1 -0
- package/dist/generator/v2/index.d.ts +2 -0
- package/dist/generator/v2/index.d.ts.map +1 -0
- package/dist/{specification/utils → generator/v2}/index.js +2 -2
- package/dist/generator/v2/index.js.map +1 -0
- package/dist/generator/v2/module.d.ts +25 -0
- package/dist/generator/v2/module.d.ts.map +1 -0
- package/dist/generator/v2/module.js +501 -0
- package/dist/generator/v2/module.js.map +1 -0
- package/dist/generator/v3/index.d.ts +2 -0
- package/dist/generator/v3/index.d.ts.map +1 -0
- package/dist/generator/v3/index.js +24 -0
- package/dist/generator/v3/index.js.map +1 -0
- package/dist/generator/v3/module.d.ts +27 -0
- package/dist/generator/v3/module.d.ts.map +1 -0
- package/dist/{specification → generator}/v3/module.js +191 -115
- package/dist/generator/v3/module.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/metadata.d.ts +3 -4
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +1 -15
- package/dist/metadata.js.map +1 -1
- package/dist/schema/constants.d.ts +7 -0
- package/dist/schema/constants.d.ts.map +1 -0
- package/dist/schema/constants.js +17 -0
- package/dist/schema/constants.js.map +1 -0
- package/dist/schema/index.d.ts +5 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +27 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/type.d.ts +140 -0
- package/dist/schema/type.d.ts.map +1 -0
- package/dist/schema/type.js.map +1 -0
- package/dist/schema/v2/constants.d.ts +8 -0
- package/dist/schema/v2/constants.d.ts.map +1 -0
- package/dist/schema/v2/constants.js +18 -0
- package/dist/schema/v2/constants.js.map +1 -0
- package/dist/schema/v2/index.d.ts +3 -0
- package/dist/schema/v2/index.d.ts.map +1 -0
- package/dist/{specification/v3 → schema/v2}/index.js +1 -1
- package/dist/schema/v2/index.js.map +1 -0
- package/dist/schema/v2/type.d.ts +116 -0
- package/dist/schema/v2/type.d.ts.map +1 -0
- package/dist/schema/v2/type.js.map +1 -0
- package/dist/schema/v3/constants.d.ts +7 -0
- package/dist/schema/v3/constants.d.ts.map +1 -0
- package/dist/schema/v3/constants.js +17 -0
- package/dist/schema/v3/constants.js.map +1 -0
- package/dist/schema/v3/index.d.ts +3 -0
- package/dist/schema/v3/index.d.ts.map +1 -0
- package/dist/{specification/v2 → schema/v3}/index.js +1 -1
- package/dist/schema/v3/index.js.map +1 -0
- package/dist/schema/v3/type.d.ts +158 -0
- package/dist/schema/v3/type.d.ts.map +1 -0
- package/dist/schema/v3/type.js +9 -0
- package/dist/schema/v3/type.js.map +1 -0
- package/dist/type.d.ts +44 -2
- package/dist/type.d.ts.map +1 -1
- package/dist/utils/character.d.ts +3 -0
- package/dist/utils/character.d.ts.map +1 -0
- package/dist/{specification/utils → utils}/character.js +4 -5
- package/dist/utils/character.js.map +1 -0
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/object.d.ts.map +1 -1
- package/dist/utils/object.js +1 -0
- package/dist/utils/object.js.map +1 -1
- package/dist/utils/value.d.ts +2 -0
- package/dist/utils/value.d.ts.map +1 -0
- package/dist/utils/value.js +26 -0
- package/dist/utils/value.js.map +1 -0
- package/package.json +7 -10
- package/dist/module.d.ts +0 -8
- package/dist/module.d.ts.map +0 -1
- package/dist/module.js +0 -31
- package/dist/module.js.map +0 -1
- package/dist/specification/abstract.d.ts +0 -29
- package/dist/specification/abstract.d.ts.map +0 -1
- package/dist/specification/abstract.js.map +0 -1
- package/dist/specification/index.d.ts.map +0 -1
- package/dist/specification/index.js.map +0 -1
- package/dist/specification/module.d.ts +0 -5
- package/dist/specification/module.d.ts.map +0 -1
- package/dist/specification/module.js +0 -29
- package/dist/specification/module.js.map +0 -1
- package/dist/specification/type.d.ts +0 -268
- package/dist/specification/type.d.ts.map +0 -1
- package/dist/specification/type.js +0 -18
- package/dist/specification/type.js.map +0 -1
- package/dist/specification/utils/character.d.ts +0 -3
- package/dist/specification/utils/character.d.ts.map +0 -1
- package/dist/specification/utils/character.js.map +0 -1
- package/dist/specification/utils/index.d.ts +0 -2
- package/dist/specification/utils/index.d.ts.map +0 -1
- package/dist/specification/utils/index.js.map +0 -1
- package/dist/specification/v2/index.d.ts +0 -3
- package/dist/specification/v2/index.d.ts.map +0 -1
- package/dist/specification/v2/index.js.map +0 -1
- package/dist/specification/v2/module.d.ts +0 -24
- package/dist/specification/v2/module.d.ts.map +0 -1
- package/dist/specification/v2/module.js +0 -389
- package/dist/specification/v2/module.js.map +0 -1
- package/dist/specification/v2/type.d.ts +0 -79
- package/dist/specification/v2/type.d.ts.map +0 -1
- package/dist/specification/v2/type.js.map +0 -1
- package/dist/specification/v3/index.d.ts +0 -3
- package/dist/specification/v3/index.d.ts.map +0 -1
- package/dist/specification/v3/index.js.map +0 -1
- package/dist/specification/v3/module.d.ts +0 -25
- package/dist/specification/v3/module.d.ts.map +0 -1
- package/dist/specification/v3/module.js.map +0 -1
- package/dist/specification/v3/type.d.ts +0 -121
- package/dist/specification/v3/type.d.ts.map +0 -1
- package/dist/specification/v3/type.js.map +0 -1
- package/dist/utils/package-json.d.ts +0 -3
- package/dist/utils/package-json.d.ts.map +0 -1
- package/dist/utils/package-json.js +0 -35
- package/dist/utils/package-json.js.map +0 -1
- /package/dist/{specification/v2 → schema}/type.js +0 -0
- /package/dist/{specification/v3 → schema/v2}/type.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAOA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2023.
|
|
4
|
+
* Author Peter Placzek (tada5hi)
|
|
5
|
+
* For the full copyright and license information,
|
|
6
|
+
* view the LICENSE file that was distributed with this source code.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
20
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
|
+
};
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
__exportStar(require("./type"), exports);
|
|
24
|
+
__exportStar(require("./utils"), exports);
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,yCAAuB;AACvB,0CAAwB"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { CollectionFormat, Metadata, Options as MetadataOptions } from '@trapi/metadata';
|
|
2
|
+
import type { SecurityDefinitions } from '../type';
|
|
3
|
+
export type ServerOption = {
|
|
4
|
+
url: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
};
|
|
7
|
+
export interface Options {
|
|
8
|
+
/**
|
|
9
|
+
* Generate a yaml file
|
|
10
|
+
*/
|
|
11
|
+
yaml?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Specify if an output file should be generated.
|
|
14
|
+
*
|
|
15
|
+
* default: true
|
|
16
|
+
*/
|
|
17
|
+
output: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Generated swagger.{json|yaml} will output here.
|
|
20
|
+
*
|
|
21
|
+
* default: process.cwd()
|
|
22
|
+
*/
|
|
23
|
+
outputDirectory: string;
|
|
24
|
+
/**
|
|
25
|
+
* Generated documentation base file name.
|
|
26
|
+
*
|
|
27
|
+
* default: swagger
|
|
28
|
+
*/
|
|
29
|
+
outputFileName: string;
|
|
30
|
+
/**
|
|
31
|
+
* API host, expressTemplate.g. localhost:3000 or https://myapi.com
|
|
32
|
+
*/
|
|
33
|
+
servers?: ServerOption[];
|
|
34
|
+
/**
|
|
35
|
+
* Metadata options or metadata itself.
|
|
36
|
+
*/
|
|
37
|
+
metadata?: MetadataOptions | Metadata;
|
|
38
|
+
/**
|
|
39
|
+
* API version number; defaults to npm package version
|
|
40
|
+
*/
|
|
41
|
+
version?: string;
|
|
42
|
+
/**
|
|
43
|
+
* API name; defaults to npm package name
|
|
44
|
+
*/
|
|
45
|
+
name?: string;
|
|
46
|
+
/**
|
|
47
|
+
* 'API description; defaults to npm package description
|
|
48
|
+
*/
|
|
49
|
+
description?: string;
|
|
50
|
+
/**
|
|
51
|
+
* API license; defaults to npm package license
|
|
52
|
+
*/
|
|
53
|
+
license?: string;
|
|
54
|
+
/**
|
|
55
|
+
* Extend generated swagger spec with this object
|
|
56
|
+
* Note that generated properties will always take precedence over what get specified here
|
|
57
|
+
*/
|
|
58
|
+
specificationExtra?: Record<string, any>;
|
|
59
|
+
/**
|
|
60
|
+
* Security Definitions Object
|
|
61
|
+
* A declaration of the security schemes available to be used in the
|
|
62
|
+
* specification. This does not enforce the security schemes on the operations
|
|
63
|
+
* and only serves to provide the relevant details for each scheme.
|
|
64
|
+
*/
|
|
65
|
+
securityDefinitions?: SecurityDefinitions;
|
|
66
|
+
/**
|
|
67
|
+
* Default consumes property for the entire API
|
|
68
|
+
*/
|
|
69
|
+
consumes?: string[];
|
|
70
|
+
/**
|
|
71
|
+
* Default produces property for the entire API
|
|
72
|
+
*/
|
|
73
|
+
produces?: string[];
|
|
74
|
+
/**
|
|
75
|
+
* Default collectionFormat property for query parameters of array type.
|
|
76
|
+
* Possible values are `csv`, `ssv`, `tsv`, `pipes`, `multi`. If not specified, Swagger defaults to `csv`.
|
|
77
|
+
*/
|
|
78
|
+
collectionFormat?: `${CollectionFormat}`;
|
|
79
|
+
}
|
|
80
|
+
export type OptionsInput = Omit<Partial<Options>, 'servers'> & {
|
|
81
|
+
servers?: string | string[] | ServerOption | ServerOption[];
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/config/type.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,OAAO;IACpB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;;OAIG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,eAAe,GAAG,QAAQ,CAAC;IAEtC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEzC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,GAAG,gBAAgB,EAAE,CAAC;CAC5C;AAED,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,GAAG;IAC3D,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,YAAY,GAAG,YAAY,EAAE,CAAA;CAC9D,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2023.
|
|
4
|
+
* Author Peter Placzek (tada5hi)
|
|
5
|
+
* For the full copyright and license information,
|
|
6
|
+
* view the LICENSE file that was distributed with this source code.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
//# sourceMappingURL=type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/config/type.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/config/utils.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAgB,MAAM,QAAQ,CAAC;AAElE,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAI,OAAO,CAiC1D"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2023.
|
|
4
|
+
* Author Peter Placzek (tada5hi)
|
|
5
|
+
* For the full copyright and license information,
|
|
6
|
+
* view the LICENSE file that was distributed with this source code.
|
|
7
|
+
*/
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.buildOptions = void 0;
|
|
13
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
14
|
+
const node_process_1 = __importDefault(require("node:process"));
|
|
15
|
+
function buildOptions(input) {
|
|
16
|
+
const servers = [];
|
|
17
|
+
if (Array.isArray(input.servers)) {
|
|
18
|
+
for (let i = 0; i < input.servers.length; i++) {
|
|
19
|
+
const server = input.servers[i];
|
|
20
|
+
if (typeof server === 'string') {
|
|
21
|
+
servers.push({ url: server });
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
servers.push(server);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else if (typeof input.servers === 'string') {
|
|
29
|
+
servers.push({ url: input.servers });
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
servers.push(input.servers);
|
|
33
|
+
}
|
|
34
|
+
let outputDirectory;
|
|
35
|
+
if (input.outputDirectory) {
|
|
36
|
+
outputDirectory = node_path_1.default.isAbsolute(input.outputDirectory) ?
|
|
37
|
+
input.outputDirectory :
|
|
38
|
+
node_path_1.default.join(node_process_1.default.cwd(), input.outputDirectory);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
outputDirectory = node_process_1.default.cwd();
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
...input,
|
|
45
|
+
output: input.output ?? true,
|
|
46
|
+
outputDirectory,
|
|
47
|
+
outputFileName: input.outputFileName || 'swagger',
|
|
48
|
+
servers,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
exports.buildOptions = buildOptions;
|
|
52
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/config/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AAEH,0DAA6B;AAC7B,gEAAmC;AAGnC,SAAgB,YAAY,CAAC,KAAmB;IAC5C,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;gBAC5B,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;aACjC;iBAAM;gBACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACxB;SACJ;KACJ;SAAM,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;QAC1C,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;KACxC;SAAM;QACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,IAAI,eAAwB,CAAC;IAC7B,IAAI,KAAK,CAAC,eAAe,EAAE;QACvB,eAAe,GAAG,mBAAI,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YACtD,KAAK,CAAC,eAAe,CAAC,CAAC;YACvB,mBAAI,CAAC,IAAI,CAAC,sBAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;KACvD;SAAM;QACH,eAAe,GAAG,sBAAO,CAAC,GAAG,EAAE,CAAC;KACnC;IAED,OAAO;QACH,GAAG,KAAK;QACR,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;QAC5B,eAAe;QACf,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,SAAS;QACjD,OAAO;KACV,CAAC;AACN,CAAC;AAjCD,oCAiCC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare enum Version {
|
|
2
|
+
V2 = "V2",
|
|
3
|
+
V3 = "V3"
|
|
4
|
+
}
|
|
5
|
+
export declare enum DocumentFormat {
|
|
6
|
+
YAML = "yaml",
|
|
7
|
+
JSON = "json"
|
|
8
|
+
}
|
|
9
|
+
export declare enum SecurityType {
|
|
10
|
+
API_KEY = "apiKey",
|
|
11
|
+
BASIC = "basic",
|
|
12
|
+
HTTP = "http",
|
|
13
|
+
OAUTH2 = "oauth2"
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAOA,oBAAY,OAAO;IACf,EAAE,OAAO;IACT,EAAE,OAAO;CACZ;AAED,oBAAY,cAAc;IACtB,IAAI,SAAS;IACb,IAAI,SAAS;CAChB;AAED,oBAAY,YAAY;IACpB,OAAO,WAAW;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;CACpB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2023.
|
|
4
|
+
* Author Peter Placzek (tada5hi)
|
|
5
|
+
* For the full copyright and license information,
|
|
6
|
+
* view the LICENSE file that was distributed with this source code.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.SecurityType = exports.DocumentFormat = exports.Version = void 0;
|
|
10
|
+
var Version;
|
|
11
|
+
(function (Version) {
|
|
12
|
+
Version["V2"] = "V2";
|
|
13
|
+
Version["V3"] = "V3";
|
|
14
|
+
})(Version = exports.Version || (exports.Version = {}));
|
|
15
|
+
var DocumentFormat;
|
|
16
|
+
(function (DocumentFormat) {
|
|
17
|
+
DocumentFormat["YAML"] = "yaml";
|
|
18
|
+
DocumentFormat["JSON"] = "json";
|
|
19
|
+
})(DocumentFormat = exports.DocumentFormat || (exports.DocumentFormat = {}));
|
|
20
|
+
var SecurityType;
|
|
21
|
+
(function (SecurityType) {
|
|
22
|
+
SecurityType["API_KEY"] = "apiKey";
|
|
23
|
+
SecurityType["BASIC"] = "basic";
|
|
24
|
+
SecurityType["HTTP"] = "http";
|
|
25
|
+
SecurityType["OAUTH2"] = "oauth2";
|
|
26
|
+
})(SecurityType = exports.SecurityType || (exports.SecurityType = {}));
|
|
27
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,IAAY,OAGX;AAHD,WAAY,OAAO;IACf,oBAAS,CAAA;IACT,oBAAS,CAAA;AACb,CAAC,EAHW,OAAO,GAAP,eAAO,KAAP,eAAO,QAGlB;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,+BAAa,CAAA;IACb,+BAAa,CAAA;AACjB,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB;AAED,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,kCAAkB,CAAA;IAClB,+BAAe,CAAA;IACf,6BAAa,CAAA;IACb,iCAAiB,CAAA;AACrB,CAAC,EALW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAKvB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { BaseType, EnumType, IntersectionType, Metadata, NestedObjectLiteralType, Parameter, ParameterSource, ReferenceType, ResolverProperty, UnionType } from '@trapi/metadata';
|
|
2
|
+
import type { Options, OptionsInput } from '../config';
|
|
3
|
+
import type { DocumentFormat } from '../constants';
|
|
4
|
+
import type { DocumentFormatData } from '../type';
|
|
5
|
+
import type { BaseSchema, Info, SchemaV2, SchemaV3, SpecV2, SpecV3 } from '../schema';
|
|
6
|
+
export declare abstract class AbstractSpecGenerator<Spec extends SpecV2 | SpecV3, Schema extends SchemaV3 | SchemaV2> {
|
|
7
|
+
protected spec: Spec | undefined;
|
|
8
|
+
protected readonly metadata: Metadata;
|
|
9
|
+
protected readonly config: Options;
|
|
10
|
+
constructor(metadata: Metadata, config: OptionsInput);
|
|
11
|
+
save(): Promise<Record<`${DocumentFormat}`, DocumentFormatData>>;
|
|
12
|
+
abstract build(): Promise<Spec>;
|
|
13
|
+
protected buildInfo(): Info;
|
|
14
|
+
protected getSwaggerType(type: BaseType): Schema | BaseSchema<Schema>;
|
|
15
|
+
protected abstract getSwaggerTypeForIntersectionType(type: IntersectionType): Schema;
|
|
16
|
+
protected abstract getSwaggerTypeForEnumType(enumType: EnumType): Schema;
|
|
17
|
+
protected getSwaggerTypeForUnionType(type: UnionType): Schema | BaseSchema<Schema>;
|
|
18
|
+
private getSwaggerTypeForPrimitiveType;
|
|
19
|
+
private getSwaggerTypeForArrayType;
|
|
20
|
+
getSwaggerTypeForObjectLiteral(objectLiteral: NestedObjectLiteralType): BaseSchema<Schema>;
|
|
21
|
+
protected abstract getSwaggerTypeForReferenceType(referenceType: ReferenceType): Schema;
|
|
22
|
+
protected abstract buildProperties(properties: ResolverProperty[]): Record<string, Schema>;
|
|
23
|
+
protected determineTypesUsedInEnum(anEnum: Array<string | number | boolean | null>): Set<"string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function">;
|
|
24
|
+
protected getOperationId(methodName: string): string;
|
|
25
|
+
protected groupParameters(items: Parameter[]): Partial<Record<ParameterSource, Parameter[]>>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=abstract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../src/generator/abstract.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAER,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACR,uBAAuB,EACvB,SAAS,EACT,eAAe,EAEf,aAAa,EACb,gBAAgB,EAEhB,SAAS,EACZ,MAAM,iBAAiB,CAAC;AAiBzB,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EACR,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACT,MAAM,WAAW,CAAC;AAEnB,8BAAsB,qBAAqB,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,SAAS,QAAQ,GAAG,QAAQ;IACxG,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IAEjC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAEtC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;gBAEvB,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY;IAK9C,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,cAAc,EAAE,EAAE,kBAAkB,CAAC,CAAC;aAwCtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAEtC,SAAS,CAAC,SAAS;IAiBnB,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAqCrE,SAAS,CAAC,QAAQ,CAAC,iCAAiC,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM;IAEpF,SAAS,CAAC,QAAQ,CAAC,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAExE,SAAS,CAAC,0BAA0B,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IA8ClF,OAAO,CAAC,8BAA8B;IAwBtC,OAAO,CAAC,0BAA0B;IAI3B,8BAA8B,CAAC,aAAa,EAAE,uBAAuB,GAAG,UAAU,CAAC,MAAM,CAAC;IAkBjG,SAAS,CAAC,QAAQ,CAAC,8BAA8B,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM;IAEvF,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAE1F,SAAS,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IASlF,SAAS,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM;IAI3C,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,GAAI,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC;CAahG"}
|
|
@@ -1,89 +1,58 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
|
-
* Copyright (c) 2021.
|
|
3
|
+
* Copyright (c) 2021-2023.
|
|
4
4
|
* Author Peter Placzek (tada5hi)
|
|
5
5
|
* For the full copyright and license information,
|
|
6
6
|
* view the LICENSE file that was distributed with this source code.
|
|
7
7
|
*/
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
-
}
|
|
14
|
-
Object.defineProperty(o, k2, desc);
|
|
15
|
-
}) : (function(o, m, k, k2) {
|
|
16
|
-
if (k2 === undefined) k2 = k;
|
|
17
|
-
o[k2] = m[k];
|
|
18
|
-
}));
|
|
19
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
-
}) : function(o, v) {
|
|
22
|
-
o["default"] = v;
|
|
23
|
-
});
|
|
24
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
-
if (mod && mod.__esModule) return mod;
|
|
26
|
-
var result = {};
|
|
27
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
-
__setModuleDefault(result, mod);
|
|
29
|
-
return result;
|
|
30
|
-
};
|
|
31
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
32
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
33
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
34
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
35
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
36
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
37
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
38
|
-
});
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
39
10
|
};
|
|
40
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
12
|
exports.AbstractSpecGenerator = void 0;
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
const
|
|
13
|
+
const metadata_1 = require("@trapi/metadata");
|
|
14
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
15
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
16
|
+
const yamljs_1 = __importDefault(require("yamljs"));
|
|
17
|
+
const config_1 = require("../config");
|
|
46
18
|
const utils_1 = require("../utils");
|
|
47
19
|
class AbstractSpecGenerator {
|
|
48
20
|
constructor(metadata, config) {
|
|
49
21
|
this.metadata = metadata;
|
|
50
|
-
this.config = config;
|
|
22
|
+
this.config = (0, config_1.buildOptions)(config);
|
|
51
23
|
}
|
|
52
|
-
save() {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
85
|
-
getMetaData() {
|
|
86
|
-
return this.metadata;
|
|
24
|
+
async save() {
|
|
25
|
+
if (!this.config.output) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
if (typeof this.spec === 'undefined') {
|
|
29
|
+
throw new Error('The spec has not been build yet...');
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
await node_fs_1.default.promises.access(this.config.outputDirectory, node_fs_1.default.constants.R_OK | node_fs_1.default.constants.O_DIRECTORY);
|
|
33
|
+
}
|
|
34
|
+
catch (e) {
|
|
35
|
+
await node_fs_1.default.promises.mkdir(this.config.outputDirectory, { recursive: true });
|
|
36
|
+
}
|
|
37
|
+
const data = [
|
|
38
|
+
{
|
|
39
|
+
path: node_path_1.default.join(this.config.outputDirectory, `${this.config.outputFileName}.json`),
|
|
40
|
+
name: 'swagger.json',
|
|
41
|
+
content: JSON.stringify(this.spec, null, 4),
|
|
42
|
+
},
|
|
43
|
+
];
|
|
44
|
+
if (this.config.yaml) {
|
|
45
|
+
data.push({
|
|
46
|
+
path: node_path_1.default.join(this.config.outputDirectory, `${this.config.outputDirectory}.yaml`),
|
|
47
|
+
name: 'swagger.yaml',
|
|
48
|
+
content: yamljs_1.default.stringify(this.spec, 1000),
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
const promises = [];
|
|
52
|
+
for (let i = 0; i < data.length; i++) {
|
|
53
|
+
promises.push(node_fs_1.default.promises.writeFile(data[i].path, data[i].content, { encoding: 'utf-8' }));
|
|
54
|
+
}
|
|
55
|
+
await Promise.all(promises);
|
|
87
56
|
}
|
|
88
57
|
buildInfo() {
|
|
89
58
|
const info = {
|
|
@@ -99,10 +68,10 @@ class AbstractSpecGenerator {
|
|
|
99
68
|
return info;
|
|
100
69
|
}
|
|
101
70
|
getSwaggerType(type) {
|
|
102
|
-
if ((0,
|
|
71
|
+
if ((0, metadata_1.isVoidType)(type)) {
|
|
103
72
|
return {};
|
|
104
73
|
}
|
|
105
|
-
if ((0,
|
|
74
|
+
if ((0, metadata_1.isReferenceType)(type)) {
|
|
106
75
|
return this.getSwaggerTypeForReferenceType(type);
|
|
107
76
|
}
|
|
108
77
|
if (type.typeName === 'any' ||
|
|
@@ -121,19 +90,19 @@ class AbstractSpecGenerator {
|
|
|
121
90
|
type.typeName === 'string') {
|
|
122
91
|
return this.getSwaggerTypeForPrimitiveType(type.typeName);
|
|
123
92
|
}
|
|
124
|
-
if ((0,
|
|
93
|
+
if ((0, metadata_1.isArrayType)(type)) {
|
|
125
94
|
return this.getSwaggerTypeForArrayType(type);
|
|
126
95
|
}
|
|
127
|
-
if ((0,
|
|
96
|
+
if ((0, metadata_1.isEnumType)(type)) {
|
|
128
97
|
return this.getSwaggerTypeForEnumType(type);
|
|
129
98
|
}
|
|
130
|
-
if ((0,
|
|
99
|
+
if ((0, metadata_1.isUnionType)(type)) {
|
|
131
100
|
return this.getSwaggerTypeForUnionType(type);
|
|
132
101
|
}
|
|
133
|
-
if ((0,
|
|
102
|
+
if ((0, metadata_1.isIntersectionType)(type)) {
|
|
134
103
|
return this.getSwaggerTypeForIntersectionType(type);
|
|
135
104
|
}
|
|
136
|
-
if ((0,
|
|
105
|
+
if ((0, metadata_1.isNestedObjectLiteralType)(type)) {
|
|
137
106
|
return this.getSwaggerTypeForObjectLiteral(type);
|
|
138
107
|
}
|
|
139
108
|
return {};
|
|
@@ -148,7 +117,7 @@ class AbstractSpecGenerator {
|
|
|
148
117
|
}
|
|
149
118
|
if (type.members.length === 2 && type.members.find((typeInUnion) => typeInUnion.typeName === 'enum' && typeInUnion.members.includes(null))) {
|
|
150
119
|
// Backwards compatible representation of dataType or null, $ref does not allow any sibling attributes, so we have to bail out
|
|
151
|
-
const nullEnumIndex = type.members.findIndex((a) => (0,
|
|
120
|
+
const nullEnumIndex = type.members.findIndex((a) => (0, metadata_1.isEnumType)(a) && a.members.includes(null));
|
|
152
121
|
const typeIndex = nullEnumIndex === 1 ? 0 : 1;
|
|
153
122
|
const swaggerType = this.getSwaggerType(type.members[typeIndex]);
|
|
154
123
|
const isRef = (0, utils_1.hasOwnProperty)(swaggerType, '$ref') && !!swaggerType.$ref;
|
|
@@ -159,17 +128,17 @@ class AbstractSpecGenerator {
|
|
|
159
128
|
return swaggerType;
|
|
160
129
|
}
|
|
161
130
|
if (type.members.length === 2) {
|
|
162
|
-
let index = type.members.findIndex((member) => (0,
|
|
131
|
+
let index = type.members.findIndex((member) => (0, metadata_1.isArrayType)(member));
|
|
163
132
|
if (index !== -1) {
|
|
164
133
|
const otherIndex = index === 0 ? 1 : 0;
|
|
165
134
|
if (type.members[index].elementType.typeName === type.members[otherIndex].typeName) {
|
|
166
135
|
return this.getSwaggerType(type.members[otherIndex]);
|
|
167
136
|
}
|
|
168
137
|
}
|
|
169
|
-
index = type.members.findIndex((member) => (0,
|
|
138
|
+
index = type.members.findIndex((member) => (0, metadata_1.isAnyType)(member));
|
|
170
139
|
if (index !== -1) {
|
|
171
140
|
const otherIndex = index === 0 ? 1 : 0;
|
|
172
|
-
if ((0,
|
|
141
|
+
if ((0, metadata_1.isAnyType)(type.members[index])) {
|
|
173
142
|
return this.getSwaggerType(type.members[otherIndex]);
|
|
174
143
|
}
|
|
175
144
|
}
|
|
@@ -208,7 +177,12 @@ class AbstractSpecGenerator {
|
|
|
208
177
|
.filter((prop) => prop.required).map((prop) => prop.name);
|
|
209
178
|
// An empty list required: [] is not valid.
|
|
210
179
|
// If all properties are optional, do not specify the required keyword.
|
|
211
|
-
return
|
|
180
|
+
return {
|
|
181
|
+
properties,
|
|
182
|
+
...(additionalProperties && { additionalProperties }),
|
|
183
|
+
...(required && required.length && { required }),
|
|
184
|
+
type: 'object',
|
|
185
|
+
};
|
|
212
186
|
}
|
|
213
187
|
determineTypesUsedInEnum(anEnum) {
|
|
214
188
|
return anEnum.reduce((theSet, curr) => {
|
|
@@ -221,6 +195,16 @@ class AbstractSpecGenerator {
|
|
|
221
195
|
getOperationId(methodName) {
|
|
222
196
|
return methodName.charAt(0).toUpperCase() + methodName.substring(1);
|
|
223
197
|
}
|
|
198
|
+
groupParameters(items) {
|
|
199
|
+
const output = {};
|
|
200
|
+
for (let i = 0; i < items.length; i++) {
|
|
201
|
+
if (typeof output[items[i].in] === 'undefined') {
|
|
202
|
+
output[items[i].in] = [];
|
|
203
|
+
}
|
|
204
|
+
output[items[i].in].push(items[i]);
|
|
205
|
+
}
|
|
206
|
+
return output;
|
|
207
|
+
}
|
|
224
208
|
}
|
|
225
209
|
exports.AbstractSpecGenerator = AbstractSpecGenerator;
|
|
226
210
|
//# sourceMappingURL=abstract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../src/generator/abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAOA,cAAc,MAAM,CAAC;AACrB,cAAc,MAAM,CAAC;AACrB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2023.
|
|
4
4
|
* Author Peter Placzek (tada5hi)
|
|
5
5
|
* For the full copyright and license information,
|
|
6
6
|
* view the LICENSE file that was distributed with this source code.
|
|
@@ -24,6 +24,4 @@ __exportStar(require("./v2"), exports);
|
|
|
24
24
|
__exportStar(require("./v3"), exports);
|
|
25
25
|
__exportStar(require("./abstract"), exports);
|
|
26
26
|
__exportStar(require("./module"), exports);
|
|
27
|
-
__exportStar(require("./type"), exports);
|
|
28
|
-
__exportStar(require("./utils"), exports);
|
|
29
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,uCAAqB;AACrB,uCAAqB;AACrB,6CAA2B;AAC3B,2CAAyB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CompilerOptions } from '@trapi/metadata';
|
|
2
|
+
import type { OptionsInput } from '../config';
|
|
3
|
+
import { Version } from '../constants';
|
|
4
|
+
import type { SpecV2, SpecV3 } from '../schema';
|
|
5
|
+
export declare function buildMetadata(options: OptionsInput, tsConfig?: CompilerOptions): Promise<import("@trapi/metadata").Metadata>;
|
|
6
|
+
export type DocumentationGenerationContext<V extends `${Version}`> = {
|
|
7
|
+
version: V;
|
|
8
|
+
options: OptionsInput;
|
|
9
|
+
tsConfig?: CompilerOptions;
|
|
10
|
+
};
|
|
11
|
+
type OutputSpec<V extends `${Version}`> = V extends `${Version.V2}` ? SpecV2 : SpecV3;
|
|
12
|
+
export declare function generate<V extends `${Version}`>(context: DocumentationGenerationContext<V>): Promise<OutputSpec<V>>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/generator/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAIhD,wBAAsB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,eAAe,+CAMpF;AAED,MAAM,MAAM,8BAA8B,CAAC,CAAC,SAAS,GAAG,OAAO,EAAE,IAAI;IACjE,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,eAAe,CAAA;CAC7B,CAAC;AAEF,KAAK,UAAU,CAAC,CAAC,SAAS,GAAG,OAAO,EAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,EAAE,GAC/D,MAAM,GACN,MAAM,CAAC;AAEX,wBAAsB,QAAQ,CAAC,CAAC,SAAS,GAAG,OAAO,EAAE,EACjD,OAAO,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAC3C,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAexB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2021-2023.
|
|
4
|
+
* Author Peter Placzek (tada5hi)
|
|
5
|
+
* For the full copyright and license information,
|
|
6
|
+
* view the LICENSE file that was distributed with this source code.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.generate = exports.buildMetadata = void 0;
|
|
10
|
+
const metadata_1 = require("@trapi/metadata");
|
|
11
|
+
const constants_1 = require("../constants");
|
|
12
|
+
const v2_1 = require("./v2");
|
|
13
|
+
const v3_1 = require("./v3");
|
|
14
|
+
async function buildMetadata(options, tsConfig) {
|
|
15
|
+
if ((0, metadata_1.isMetadata)(options.metadata)) {
|
|
16
|
+
return options.metadata;
|
|
17
|
+
}
|
|
18
|
+
return (0, metadata_1.generateMetadata)(options.metadata, tsConfig);
|
|
19
|
+
}
|
|
20
|
+
exports.buildMetadata = buildMetadata;
|
|
21
|
+
async function generate(context) {
|
|
22
|
+
const metadata = await buildMetadata(context.options);
|
|
23
|
+
switch (context.version) {
|
|
24
|
+
case constants_1.Version.V3: {
|
|
25
|
+
const generator = new v3_1.V3Generator(metadata, context.options);
|
|
26
|
+
return await generator.build();
|
|
27
|
+
}
|
|
28
|
+
default: {
|
|
29
|
+
const generator = new v2_1.V2Generator(metadata, context.options);
|
|
30
|
+
return await generator.build();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.generate = generate;
|
|
35
|
+
//# sourceMappingURL=module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/generator/module.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,8CAA+D;AAE/D,4CAAuC;AAEvC,6BAAmC;AACnC,6BAAmC;AAE5B,KAAK,UAAU,aAAa,CAAC,OAAqB,EAAE,QAA0B;IACjF,IAAI,IAAA,qBAAU,EAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC9B,OAAO,OAAO,CAAC,QAAQ,CAAC;KAC3B;IAED,OAAO,IAAA,2BAAgB,EAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC;AAND,sCAMC;AAYM,KAAK,UAAU,QAAQ,CAC1B,OAA0C;IAE1C,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtD,QAAQ,OAAO,CAAC,OAAO,EAAE;QACrB,KAAK,mBAAO,CAAC,EAAE,CAAC,CAAC;YACb,MAAM,SAAS,GAAG,IAAI,gBAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAE7D,OAAO,MAAM,SAAS,CAAC,KAAK,EAAmB,CAAC;SACnD;QACD,OAAO,CAAC,CAAC;YACL,MAAM,SAAS,GAAG,IAAI,gBAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAE7D,OAAO,MAAM,SAAS,CAAC,KAAK,EAAmB,CAAC;SACnD;KACJ;AACL,CAAC;AAjBD,4BAiBC"}
|