@visulima/jsdoc-open-api 2.0.95 → 3.0.0-alpha.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/CHANGELOG.md +158 -0
- package/LICENSE.md +1 -1
- package/README.md +33 -28
- package/dist/cli/command/generate-command.d.cts +7 -0
- package/dist/cli/command/generate-command.d.mts +7 -0
- package/dist/cli/command/generate-command.d.ts +7 -0
- package/dist/cli/command/init-command.d.cts +2 -0
- package/dist/cli/command/init-command.d.mts +2 -0
- package/dist/cli/command/init-command.d.ts +2 -0
- package/dist/cli/commander/command/generate-command.d.cts +3 -0
- package/dist/cli/commander/command/generate-command.d.mts +3 -0
- package/dist/cli/commander/command/generate-command.d.ts +3 -0
- package/dist/cli/commander/command/init-command.d.cts +3 -0
- package/dist/cli/commander/command/init-command.d.mts +3 -0
- package/dist/cli/commander/command/init-command.d.ts +3 -0
- package/dist/cli/commander/index.cjs +11 -0
- package/dist/cli/commander/index.d.cts +2 -0
- package/dist/cli/commander/index.d.mts +2 -7
- package/dist/cli/commander/index.d.ts +2 -7
- package/dist/cli/commander/index.mjs +2 -30
- package/dist/cli/index.cjs +11 -0
- package/dist/cli/index.d.cts +2 -0
- package/dist/cli/index.d.mts +2 -10
- package/dist/cli/index.d.ts +2 -10
- package/dist/cli/index.mjs +2 -4
- package/dist/constants.d.cts +1 -0
- package/dist/constants.d.mts +1 -0
- package/dist/constants.d.ts +1 -0
- package/dist/exported.d.cts +198 -0
- package/dist/exported.d.mts +198 -0
- package/dist/exported.d.ts +198 -0
- package/dist/index.cjs +19 -0
- package/dist/index.d.cts +7 -0
- package/dist/index.d.mts +7 -248
- package/dist/index.d.ts +7 -248
- package/dist/index.mjs +6 -85
- package/dist/jsdoc/comments-to-open-api.d.cts +6 -0
- package/dist/jsdoc/comments-to-open-api.d.mts +6 -0
- package/dist/jsdoc/comments-to-open-api.d.ts +6 -0
- package/dist/packem_shared/SpecBuilder-B7YiF7zR.mjs +61 -0
- package/dist/packem_shared/SpecBuilder-CCESkmm5.cjs +63 -0
- package/dist/packem_shared/SwaggerCompilerPlugin-BkYJzU4f.cjs +88 -0
- package/dist/packem_shared/SwaggerCompilerPlugin-DZ7tIJ8x.mjs +86 -0
- package/dist/packem_shared/customizer-CoMXMU7a.mjs +8 -0
- package/dist/packem_shared/customizer-DDFwFqJl.cjs +10 -0
- package/dist/packem_shared/generateCommand-DRMkfIle.mjs +15 -0
- package/dist/packem_shared/generateCommand-MwnCNgEE.cjs +82 -0
- package/dist/packem_shared/generateCommand-RY4QFtm7.cjs +17 -0
- package/dist/packem_shared/generateCommand-a9_RAbug.mjs +80 -0
- package/dist/packem_shared/initCommand-B6Z9EXHP.mjs +15 -0
- package/dist/packem_shared/initCommand-Ch-72dKZ.cjs +65 -0
- package/dist/packem_shared/initCommand-D3yVEMwO.cjs +17 -0
- package/dist/packem_shared/initCommand-zE4VRDGW.mjs +63 -0
- package/dist/packem_shared/jsDocumentCommentsToOpenApi-C7yMeXJ5.cjs +337 -0
- package/dist/packem_shared/jsDocumentCommentsToOpenApi-DtrIZ2lK.mjs +331 -0
- package/dist/packem_shared/parseFile-BE-sKiRK.mjs +35 -0
- package/dist/packem_shared/parseFile-Dk7Bw7lt.cjs +42 -0
- package/dist/packem_shared/swaggerJsDocumentCommentsToOpenApi-B7g9rVr5.mjs +131 -0
- package/dist/packem_shared/swaggerJsDocumentCommentsToOpenApi-BuB7eE94.cjs +138 -0
- package/dist/packem_shared/validate-DZHaKH07.mjs +30 -0
- package/dist/packem_shared/validate-FKieC3ln.cjs +37 -0
- package/dist/packem_shared/yamlLoc-C7iHWvdq.mjs +14 -0
- package/dist/packem_shared/yamlLoc-CEvBiR4K.cjs +16 -0
- package/dist/parse-file.d.cts +9 -0
- package/dist/parse-file.d.mts +9 -0
- package/dist/parse-file.d.ts +9 -0
- package/dist/spec-builder.d.cts +14 -0
- package/dist/spec-builder.d.mts +14 -0
- package/dist/spec-builder.d.ts +14 -0
- package/dist/swagger-jsdoc/comments-to-open-api.d.cts +6 -0
- package/dist/swagger-jsdoc/comments-to-open-api.d.mts +6 -0
- package/dist/swagger-jsdoc/comments-to-open-api.d.ts +6 -0
- package/dist/swagger-jsdoc/organize-swagger-object.d.cts +7 -0
- package/dist/swagger-jsdoc/organize-swagger-object.d.mts +7 -0
- package/dist/swagger-jsdoc/organize-swagger-object.d.ts +7 -0
- package/dist/swagger-jsdoc/utils.d.cts +22 -0
- package/dist/swagger-jsdoc/utils.d.mts +22 -0
- package/dist/swagger-jsdoc/utils.d.ts +22 -0
- package/dist/util/customizer.d.cts +2 -0
- package/dist/util/customizer.d.mts +2 -0
- package/dist/util/customizer.d.ts +2 -0
- package/dist/util/object-merge.d.cts +2 -0
- package/dist/util/object-merge.d.mts +2 -0
- package/dist/util/object-merge.d.ts +2 -0
- package/dist/util/yaml-loc.d.cts +2 -0
- package/dist/util/yaml-loc.d.mts +2 -0
- package/dist/util/yaml-loc.d.ts +2 -0
- package/dist/validate.d.cts +2 -0
- package/dist/validate.d.mts +2 -0
- package/dist/validate.d.ts +2 -0
- package/dist/webpack/swagger-compiler-plugin.d.cts +15 -0
- package/dist/webpack/swagger-compiler-plugin.d.mts +15 -0
- package/dist/webpack/swagger-compiler-plugin.d.ts +15 -0
- package/package.json +35 -23
- package/dist/chunk-CZO3NX7C.js +0 -149
- package/dist/chunk-CZO3NX7C.js.map +0 -1
- package/dist/chunk-LOXRB2QY.js +0 -1223
- package/dist/chunk-LOXRB2QY.js.map +0 -1
- package/dist/chunk-WUINTXB7.mjs +0 -1205
- package/dist/chunk-WUINTXB7.mjs.map +0 -1
- package/dist/chunk-Z53EXE6B.mjs +0 -142
- package/dist/chunk-Z53EXE6B.mjs.map +0 -1
- package/dist/cli/commander/index.js +0 -33
- package/dist/cli/commander/index.js.map +0 -1
- package/dist/cli/commander/index.mjs.map +0 -1
- package/dist/cli/index.js +0 -17
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/index.mjs.map +0 -1
- package/dist/index.js +0 -106
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Compiler } from "webpack";
|
|
2
|
+
import type { BaseDefinition } from "../exported.d.cts";
|
|
3
|
+
declare class SwaggerCompilerPlugin {
|
|
4
|
+
private readonly assetsPath;
|
|
5
|
+
private readonly ignore;
|
|
6
|
+
private readonly sources;
|
|
7
|
+
private readonly swaggerDefinition;
|
|
8
|
+
private readonly verbose;
|
|
9
|
+
constructor(assetsPath: string, sources: string[], swaggerDefinition: BaseDefinition, options: {
|
|
10
|
+
ignore?: (RegExp | string)[];
|
|
11
|
+
verbose?: boolean;
|
|
12
|
+
});
|
|
13
|
+
apply(compiler: Compiler): void;
|
|
14
|
+
}
|
|
15
|
+
export = SwaggerCompilerPlugin;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Compiler } from "webpack";
|
|
2
|
+
import type { BaseDefinition } from "../exported.d.mts";
|
|
3
|
+
declare class SwaggerCompilerPlugin {
|
|
4
|
+
private readonly assetsPath;
|
|
5
|
+
private readonly ignore;
|
|
6
|
+
private readonly sources;
|
|
7
|
+
private readonly swaggerDefinition;
|
|
8
|
+
private readonly verbose;
|
|
9
|
+
constructor(assetsPath: string, sources: string[], swaggerDefinition: BaseDefinition, options: {
|
|
10
|
+
ignore?: (RegExp | string)[];
|
|
11
|
+
verbose?: boolean;
|
|
12
|
+
});
|
|
13
|
+
apply(compiler: Compiler): void;
|
|
14
|
+
}
|
|
15
|
+
export default SwaggerCompilerPlugin;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Compiler } from "webpack";
|
|
2
|
+
import type { BaseDefinition } from "../exported.d.ts";
|
|
3
|
+
declare class SwaggerCompilerPlugin {
|
|
4
|
+
private readonly assetsPath;
|
|
5
|
+
private readonly ignore;
|
|
6
|
+
private readonly sources;
|
|
7
|
+
private readonly swaggerDefinition;
|
|
8
|
+
private readonly verbose;
|
|
9
|
+
constructor(assetsPath: string, sources: string[], swaggerDefinition: BaseDefinition, options: {
|
|
10
|
+
ignore?: (RegExp | string)[];
|
|
11
|
+
verbose?: boolean;
|
|
12
|
+
});
|
|
13
|
+
apply(compiler: Compiler): void;
|
|
14
|
+
}
|
|
15
|
+
export = SwaggerCompilerPlugin;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visulima/jsdoc-open-api",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-alpha.10",
|
|
4
4
|
"description": "Generates swagger doc based on JSDoc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"visulima",
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
"cli",
|
|
15
15
|
"command"
|
|
16
16
|
],
|
|
17
|
-
"homepage": "https://
|
|
17
|
+
"homepage": "https://visulima.com/packages/jsdoc-open-api/",
|
|
18
18
|
"bugs": {
|
|
19
19
|
"url": "https://github.com/visulima/visulima/issues"
|
|
20
20
|
},
|
|
21
21
|
"repository": {
|
|
22
22
|
"type": "git",
|
|
23
23
|
"url": "https://github.com/visulima/visulima.git",
|
|
24
|
-
"directory": "packages/jsdoc-open-api"
|
|
24
|
+
"directory": "packages/api/jsdoc-open-api"
|
|
25
25
|
},
|
|
26
26
|
"funding": [
|
|
27
27
|
{
|
|
@@ -41,40 +41,53 @@
|
|
|
41
41
|
"sideEffects": false,
|
|
42
42
|
"exports": {
|
|
43
43
|
".": {
|
|
44
|
-
"require": {
|
|
45
|
-
"types": "./dist/index.d.ts",
|
|
46
|
-
"default": "./dist/index.js"
|
|
47
|
-
},
|
|
48
44
|
"import": {
|
|
49
45
|
"types": "./dist/index.d.mts",
|
|
50
46
|
"default": "./dist/index.mjs"
|
|
47
|
+
},
|
|
48
|
+
"require": {
|
|
49
|
+
"types": "./dist/index.d.cts",
|
|
50
|
+
"default": "./dist/index.cjs"
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
53
|
"./cli": {
|
|
54
|
-
"require": {
|
|
55
|
-
"types": "./dist/cli/index.d.ts",
|
|
56
|
-
"default": "./dist/cli/index.js"
|
|
57
|
-
},
|
|
58
54
|
"import": {
|
|
59
55
|
"types": "./dist/cli/index.d.mts",
|
|
60
56
|
"default": "./dist/cli/index.mjs"
|
|
57
|
+
},
|
|
58
|
+
"require": {
|
|
59
|
+
"types": "./dist/cli/index.d.cts",
|
|
60
|
+
"default": "./dist/cli/index.cjs"
|
|
61
61
|
}
|
|
62
62
|
},
|
|
63
63
|
"./cli/commander": {
|
|
64
|
-
"require": {
|
|
65
|
-
"types": "./dist/cli/commander/index.d.ts",
|
|
66
|
-
"default": "./dist/cli/commander/index.js"
|
|
67
|
-
},
|
|
68
64
|
"import": {
|
|
69
65
|
"types": "./dist/cli/commander/index.d.mts",
|
|
70
66
|
"default": "./dist/cli/commander/index.mjs"
|
|
67
|
+
},
|
|
68
|
+
"require": {
|
|
69
|
+
"types": "./dist/cli/commander/index.d.cts",
|
|
70
|
+
"default": "./dist/cli/commander/index.cjs"
|
|
71
71
|
}
|
|
72
72
|
},
|
|
73
73
|
"./package.json": "./package.json"
|
|
74
74
|
},
|
|
75
|
-
"main": "dist/index.
|
|
75
|
+
"main": "dist/index.cjs",
|
|
76
76
|
"module": "dist/index.mjs",
|
|
77
77
|
"types": "dist/index.d.ts",
|
|
78
|
+
"typesVersions": {
|
|
79
|
+
">=5.0": {
|
|
80
|
+
".": [
|
|
81
|
+
"./dist/index.d.ts"
|
|
82
|
+
],
|
|
83
|
+
"cli": [
|
|
84
|
+
"./dist/cli/index.d.ts"
|
|
85
|
+
],
|
|
86
|
+
"cli/commander": [
|
|
87
|
+
"./dist/cli/commander/index.d.ts"
|
|
88
|
+
]
|
|
89
|
+
}
|
|
90
|
+
},
|
|
78
91
|
"bin": {
|
|
79
92
|
"jsdoc-open-api": "./bin/index.js"
|
|
80
93
|
},
|
|
@@ -88,19 +101,18 @@
|
|
|
88
101
|
],
|
|
89
102
|
"dependencies": {
|
|
90
103
|
"@apidevtools/swagger-parser": "^12.1.0",
|
|
91
|
-
"
|
|
104
|
+
"@visulima/fs": "5.0.0-alpha.11",
|
|
105
|
+
"comment-parser": "1.4.6",
|
|
92
106
|
"lodash.mergewith": "^4.6.2",
|
|
93
|
-
"
|
|
94
|
-
"read-pkg-up": "^7.0.1",
|
|
95
|
-
"yaml": "^2.8.1"
|
|
107
|
+
"yaml": "2.8.3"
|
|
96
108
|
},
|
|
97
109
|
"optionalDependencies": {
|
|
98
110
|
"cli-progress": "^3.12.0",
|
|
99
|
-
"commander": "^14.0.
|
|
100
|
-
"webpack": "^5.
|
|
111
|
+
"commander": "^14.0.3",
|
|
112
|
+
"webpack": "^5.106.2"
|
|
101
113
|
},
|
|
102
114
|
"engines": {
|
|
103
|
-
"node": "
|
|
115
|
+
"node": "^22.14.0 || >=24.10.0"
|
|
104
116
|
},
|
|
105
117
|
"os": [
|
|
106
118
|
"darwin",
|
package/dist/chunk-CZO3NX7C.js
DELETED
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkLOXRB2QY_js = require('./chunk-LOXRB2QY.js');
|
|
4
|
-
var promises = require('fs/promises');
|
|
5
|
-
var path = require('path');
|
|
6
|
-
var url = require('url');
|
|
7
|
-
var cliProgress = require('cli-progress');
|
|
8
|
-
var fs = require('fs');
|
|
9
|
-
var readPkgUp = require('read-pkg-up');
|
|
10
|
-
|
|
11
|
-
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
-
|
|
13
|
-
var readPkgUp__default = /*#__PURE__*/_interopDefault(readPkgUp);
|
|
14
|
-
|
|
15
|
-
var generateCommand = async (configName, paths, options) => {
|
|
16
|
-
let openapiConfig = {
|
|
17
|
-
exclude: [],
|
|
18
|
-
swaggerDefinition: {}
|
|
19
|
-
};
|
|
20
|
-
try {
|
|
21
|
-
let config = await import(url.pathToFileURL(path.normalize(options.config ?? configName)).href);
|
|
22
|
-
if (config?.default) {
|
|
23
|
-
config = config.default;
|
|
24
|
-
}
|
|
25
|
-
openapiConfig = config;
|
|
26
|
-
} catch {
|
|
27
|
-
throw new Error(`No config file found, on: ${options.config ?? ".openapirc.js"}
|
|
28
|
-
`);
|
|
29
|
-
}
|
|
30
|
-
const multibar = new cliProgress.MultiBar(
|
|
31
|
-
{
|
|
32
|
-
clearOnComplete: false,
|
|
33
|
-
format: "{value}/{total} | {bar} | {filename}",
|
|
34
|
-
hideCursor: true
|
|
35
|
-
},
|
|
36
|
-
cliProgress.Presets.shades_grey
|
|
37
|
-
);
|
|
38
|
-
const spec = new chunkLOXRB2QY_js.spec_builder_default(openapiConfig.swaggerDefinition);
|
|
39
|
-
const skip = /* @__PURE__ */ new Set([...chunkLOXRB2QY_js.DEFAULT_EXCLUDE, ...openapiConfig.exclude]);
|
|
40
|
-
for await (const dir of paths) {
|
|
41
|
-
(await promises.lstat(dir)).isDirectory();
|
|
42
|
-
const realDirectory = await promises.realpath(dir);
|
|
43
|
-
const files = await chunkLOXRB2QY_js.collect(realDirectory, {
|
|
44
|
-
extensions: openapiConfig.extensions ?? [".js", ".cjs", ".mjs", ".ts", ".tsx", ".jsx", ".yaml", ".yml"],
|
|
45
|
-
followSymlinks: openapiConfig.followSymlinks ?? false,
|
|
46
|
-
match: openapiConfig.include,
|
|
47
|
-
skip: [...skip]
|
|
48
|
-
});
|
|
49
|
-
if (options.verbose ?? options.veryVerbose) {
|
|
50
|
-
console.log(`
|
|
51
|
-
Found ${String(files.length)} files in ${realDirectory}`);
|
|
52
|
-
}
|
|
53
|
-
if (options.veryVerbose) {
|
|
54
|
-
console.log(files);
|
|
55
|
-
}
|
|
56
|
-
const bar = multibar.create(files.length, 0);
|
|
57
|
-
files.forEach((file) => {
|
|
58
|
-
if (options.verbose) {
|
|
59
|
-
console.log(`Parsing file ${file}`);
|
|
60
|
-
}
|
|
61
|
-
bar.increment(1, { filename: realDirectory });
|
|
62
|
-
const parsedJsDocumentFile = chunkLOXRB2QY_js.parse_file_default(file, chunkLOXRB2QY_js.comments_to_open_api_default, options.verbose);
|
|
63
|
-
spec.addData(parsedJsDocumentFile.map((item) => item.spec));
|
|
64
|
-
const parsedSwaggerJsDocumentFile = chunkLOXRB2QY_js.parse_file_default(file, chunkLOXRB2QY_js.comments_to_open_api_default2, options.verbose);
|
|
65
|
-
spec.addData(parsedSwaggerJsDocumentFile.map((item) => item.spec));
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
if (options.verbose) {
|
|
69
|
-
console.log("Validating swagger spec");
|
|
70
|
-
}
|
|
71
|
-
if (options.veryVerbose) {
|
|
72
|
-
console.log(JSON.stringify(spec, null, 2));
|
|
73
|
-
}
|
|
74
|
-
await chunkLOXRB2QY_js.validate_default(JSON.parse(JSON.stringify(spec)));
|
|
75
|
-
const output = options.output ?? "swagger.json";
|
|
76
|
-
multibar.stop();
|
|
77
|
-
if (options.verbose) {
|
|
78
|
-
console.log(`Written swagger spec to "${output}" file`);
|
|
79
|
-
}
|
|
80
|
-
await promises.mkdir(path.dirname(output), { recursive: true });
|
|
81
|
-
await promises.writeFile(output, JSON.stringify(spec, null, 2));
|
|
82
|
-
console.log(`
|
|
83
|
-
Swagger specification is ready, check the "${output}" file.`);
|
|
84
|
-
};
|
|
85
|
-
var generate_command_default = generateCommand;
|
|
86
|
-
var initCommand = (configName, packageJsonPath = process.cwd()) => {
|
|
87
|
-
if (fs.existsSync(configName)) {
|
|
88
|
-
throw new Error("Config file already exists");
|
|
89
|
-
}
|
|
90
|
-
const foundPackageJson = readPkgUp__default.default.sync({
|
|
91
|
-
cwd: fs.realpathSync(packageJsonPath)
|
|
92
|
-
});
|
|
93
|
-
let exportTemplate = "module.exports =";
|
|
94
|
-
if (foundPackageJson) {
|
|
95
|
-
const { packageJson: package_, path: packagePath } = foundPackageJson;
|
|
96
|
-
console.info(`Found package.json at "${packagePath}"`);
|
|
97
|
-
if (package_.type === "module") {
|
|
98
|
-
console.info("Found package.json with type: module, using ES6 as export for the config file");
|
|
99
|
-
exportTemplate = "export default";
|
|
100
|
-
}
|
|
101
|
-
} else {
|
|
102
|
-
console.info("No package.json found");
|
|
103
|
-
}
|
|
104
|
-
fs.writeFileSync(
|
|
105
|
-
configName,
|
|
106
|
-
`${exportTemplate} {
|
|
107
|
-
exclude: [
|
|
108
|
-
'coverage/**',
|
|
109
|
-
'.github/**',
|
|
110
|
-
'packages/*/test{,s}/**',
|
|
111
|
-
'**/*.d.ts',
|
|
112
|
-
'test{,s}/**',
|
|
113
|
-
'test{,-*}.{js,cjs,mjs,ts,tsx,jsx,yaml,yml}',
|
|
114
|
-
'**/*{.,-}test.{js,cjs,mjs,ts,tsx,jsx,yaml,yml}',
|
|
115
|
-
'**/__tests__/**',
|
|
116
|
-
'**/{ava,babel,nyc}.config.{js,cjs,mjs}',
|
|
117
|
-
'**/jest.config.{js,cjs,mjs,ts}',
|
|
118
|
-
'**/{karma,rollup,webpack}.config.js',
|
|
119
|
-
'**/.{eslint,mocha}rc.{js,cjs}',
|
|
120
|
-
'**/.{travis,yarnrc}.yml',
|
|
121
|
-
'**/{docker-compose,docker}.yml',
|
|
122
|
-
'**/.yamllint.{yaml,yml}',
|
|
123
|
-
'**/node_modules/**',
|
|
124
|
-
'**/pnpm-lock.yaml',
|
|
125
|
-
'**/pnpm-workspace.yaml',
|
|
126
|
-
'**/{package,package-lock}.json',
|
|
127
|
-
'**/yarn.lock',
|
|
128
|
-
'**/package.json5',
|
|
129
|
-
'**/.next/**',
|
|
130
|
-
],
|
|
131
|
-
followSymlinks: false,
|
|
132
|
-
swaggerDefinition: {
|
|
133
|
-
openapi: '3.0.0',
|
|
134
|
-
info: {
|
|
135
|
-
title: 'API',
|
|
136
|
-
version: '1.0.0',
|
|
137
|
-
},
|
|
138
|
-
},
|
|
139
|
-
};
|
|
140
|
-
`
|
|
141
|
-
);
|
|
142
|
-
console.log(`Created "${configName}"`);
|
|
143
|
-
};
|
|
144
|
-
var init_command_default = initCommand;
|
|
145
|
-
|
|
146
|
-
exports.generate_command_default = generate_command_default;
|
|
147
|
-
exports.init_command_default = init_command_default;
|
|
148
|
-
//# sourceMappingURL=chunk-CZO3NX7C.js.map
|
|
149
|
-
//# sourceMappingURL=chunk-CZO3NX7C.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/command/generate-command.ts","../src/cli/command/init-command.ts"],"names":["pathToFileURL","normalize","MultiBar","Presets","spec_builder_default","DEFAULT_EXCLUDE","lstat","realpath","collect","parse_file_default","comments_to_open_api_default","validate_default","mkdir","dirname","writeFile","existsSync","readPkgUp","realpathSync","writeFileSync"],"mappings":"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","file":"chunk-CZO3NX7C.js","sourcesContent":["import { lstat, mkdir, realpath, writeFile } from \"node:fs/promises\";\nimport { dirname, normalize } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nimport type { WalkOptions } from \"@visulima/fs\";\nimport { collect } from \"@visulima/fs\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { MultiBar, Presets } from \"cli-progress\";\n\nimport { DEFAULT_EXCLUDE } from \"../../constants\";\nimport type { BaseDefinition } from \"../../exported\";\nimport jsDocumentCommentsToOpenApi from \"../../jsdoc/comments-to-open-api\";\nimport parseFile from \"../../parse-file\";\nimport SpecBuilder from \"../../spec-builder\";\nimport swaggerJsDocumentCommentsToOpenApi from \"../../swagger-jsdoc/comments-to-open-api\";\nimport validate from \"../../validate\";\n\nconst generateCommand = async (\n configName: string,\n paths: string[],\n options: {\n config?: string;\n output?: string;\n verbose?: boolean;\n veryVerbose?: boolean;\n },\n): Promise<void> => {\n let openapiConfig: {\n exclude: string[];\n extensions?: string[];\n followSymlinks?: boolean;\n include?: (RegExp | string)[];\n swaggerDefinition: BaseDefinition;\n } = {\n exclude: [],\n swaggerDefinition: {} as BaseDefinition,\n };\n\n try {\n let config = await import(pathToFileURL(normalize(options.config ?? configName)).href);\n\n if (config?.default) {\n config = config.default;\n }\n\n openapiConfig = config;\n } catch {\n throw new Error(`No config file found, on: ${options.config ?? \".openapirc.js\"}\\n`);\n }\n\n const multibar = new MultiBar(\n {\n clearOnComplete: false,\n format: \"{value}/{total} | {bar} | {filename}\",\n hideCursor: true,\n },\n Presets.shades_grey,\n );\n\n const spec = new SpecBuilder(openapiConfig.swaggerDefinition);\n const skip = new Set<RegExp | string>([...DEFAULT_EXCLUDE, ...openapiConfig.exclude]);\n\n // eslint-disable-next-line unicorn/prevent-abbreviations,no-loops/no-loops\n for await (const dir of paths) {\n // Check if the path is a directory\n // eslint-disable-next-line security/detect-non-literal-fs-filename,unicorn/no-await-expression-member\n (await lstat(dir)).isDirectory();\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n const realDirectory = await realpath(dir);\n\n const files: string[] = await collect(realDirectory, {\n extensions: openapiConfig.extensions ?? [\".js\", \".cjs\", \".mjs\", \".ts\", \".tsx\", \".jsx\", \".yaml\", \".yml\"],\n followSymlinks: openapiConfig.followSymlinks ?? false,\n match: openapiConfig.include,\n skip: [...skip],\n } as WalkOptions);\n\n if (options.verbose ?? options.veryVerbose) {\n // eslint-disable-next-line no-console\n console.log(`\\nFound ${String(files.length)} files in ${realDirectory}`);\n }\n\n if (options.veryVerbose) {\n // eslint-disable-next-line no-console\n console.log(files);\n }\n\n const bar = multibar.create(files.length, 0);\n\n files.forEach((file) => {\n if (options.verbose) {\n // eslint-disable-next-line no-console\n console.log(`Parsing file ${file}`);\n }\n\n bar.increment(1, { filename: realDirectory });\n\n const parsedJsDocumentFile = parseFile(file, jsDocumentCommentsToOpenApi, options.verbose);\n\n spec.addData(parsedJsDocumentFile.map((item) => item.spec));\n\n const parsedSwaggerJsDocumentFile = parseFile(file, swaggerJsDocumentCommentsToOpenApi, options.verbose);\n\n spec.addData(parsedSwaggerJsDocumentFile.map((item) => item.spec));\n });\n }\n\n if (options.verbose) {\n // eslint-disable-next-line no-console\n console.log(\"Validating swagger spec\");\n }\n\n if (options.veryVerbose) {\n // eslint-disable-next-line no-console\n console.log(JSON.stringify(spec, null, 2));\n }\n\n await validate(JSON.parse(JSON.stringify(spec)) as Record<string, unknown>);\n\n const output = options.output ?? \"swagger.json\";\n\n multibar.stop();\n\n if (options.verbose) {\n // eslint-disable-next-line no-console\n console.log(`Written swagger spec to \"${output}\" file`);\n }\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n await mkdir(dirname(output), { recursive: true });\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n await writeFile(output, JSON.stringify(spec, null, 2));\n\n // eslint-disable-next-line no-console\n console.log(`\\nSwagger specification is ready, check the \"${output}\" file.`);\n};\n\nexport default generateCommand;\n","import { existsSync, realpathSync, writeFileSync } from \"node:fs\";\n\nimport readPkgUp from \"read-pkg-up\";\n\nconst initCommand = (configName: string, packageJsonPath = process.cwd()): void => {\n if (existsSync(configName)) {\n throw new Error(\"Config file already exists\");\n }\n\n const foundPackageJson = readPkgUp.sync({\n cwd: realpathSync(packageJsonPath),\n });\n\n let exportTemplate = \"module.exports =\";\n\n if (foundPackageJson) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { packageJson: package_, path: packagePath } = foundPackageJson;\n\n // eslint-disable-next-line no-console\n console.info(`Found package.json at \"${packagePath as string}\"`);\n\n if (package_.type === \"module\") {\n // eslint-disable-next-line no-console\n console.info(\"Found package.json with type: module, using ES6 as export for the config file\");\n\n exportTemplate = \"export default\";\n }\n } else {\n // eslint-disable-next-line no-console\n console.info(\"No package.json found\");\n }\n\n writeFileSync(\n configName,\n `${exportTemplate} {\n exclude: [\n 'coverage/**',\n '.github/**',\n 'packages/*/test{,s}/**',\n '**/*.d.ts',\n 'test{,s}/**',\n 'test{,-*}.{js,cjs,mjs,ts,tsx,jsx,yaml,yml}',\n '**/*{.,-}test.{js,cjs,mjs,ts,tsx,jsx,yaml,yml}',\n '**/__tests__/**',\n '**/{ava,babel,nyc}.config.{js,cjs,mjs}',\n '**/jest.config.{js,cjs,mjs,ts}',\n '**/{karma,rollup,webpack}.config.js',\n '**/.{eslint,mocha}rc.{js,cjs}',\n '**/.{travis,yarnrc}.yml',\n '**/{docker-compose,docker}.yml',\n '**/.yamllint.{yaml,yml}',\n '**/node_modules/**',\n '**/pnpm-lock.yaml',\n '**/pnpm-workspace.yaml',\n '**/{package,package-lock}.json',\n '**/yarn.lock',\n '**/package.json5',\n '**/.next/**',\n ],\n followSymlinks: false,\n swaggerDefinition: {\n openapi: '3.0.0',\n info: {\n title: 'API',\n version: '1.0.0',\n },\n },\n};\n`,\n );\n\n // eslint-disable-next-line no-console\n console.log(`Created \"${configName}\"`);\n};\n\nexport default initCommand;\n"]}
|