Skip to content

Commit 1d2f10b

Browse files
committed
refactor: rename main script to generate
1 parent cdd6e79 commit 1d2f10b

File tree

3 files changed

+29
-32
lines changed

3 files changed

+29
-32
lines changed

src/cli.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { getConfigs } from 'aspida/dist/cjs/getConfigs';
22
import watchInputDir from 'aspida/dist/cjs/watchInputDir';
33
import minimist from 'minimist';
4-
import build from '.';
4+
import { generate } from './generate';
55
import type { ConfigFile, PartialConfig } from './getConfig';
66

77
export const run = (args: string[]) => {
@@ -13,10 +13,10 @@ export const run = (args: string[]) => {
1313
const configs: ConfigFile[] = getConfigs(argv.config);
1414

1515
if (configs.length > 1) {
16-
build(configs);
16+
generate(configs);
1717

1818
if (argv.watch !== undefined) {
19-
configs.forEach((config) => watchInputDir(config.input, () => build(config)));
19+
configs.forEach((config) => watchInputDir(config.input, () => generate(config)));
2020
}
2121

2222
return;
@@ -31,7 +31,7 @@ export const run = (args: string[]) => {
3131
},
3232
};
3333

34-
build(option);
34+
generate(option);
3535

36-
if (argv.watch !== undefined) watchInputDir(config.input, () => build(option));
36+
if (argv.watch !== undefined) watchInputDir(config.input, () => generate(option));
3737
};

src/index.ts renamed to src/generate.ts

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,28 @@ import * as TJS from 'typescript-json-schema';
88
import type { PartialConfig } from './getConfig';
99
import { getConfig } from './getConfig';
1010

11-
export const toOpenAPI = (params: {
12-
input: string;
13-
template?: OpenAPIV3_1.Document | string;
14-
}): string => {
11+
export const generate = (configs?: PartialConfig) =>
12+
getConfig(configs).forEach((config) => {
13+
const existingDoc: OpenAPIV3_1.Document | undefined = existsSync(config.output)
14+
? JSON.parse(readFileSync(config.output, 'utf8'))
15+
: undefined;
16+
const template: OpenAPIV3_1.Document = {
17+
openapi: '3.1.0',
18+
info: {
19+
title: `${config.output.split('/').at(-1)?.replace('.json', '')} api`,
20+
version: 'v0.0',
21+
},
22+
servers: config.baseURL ? [{ url: config.baseURL }] : undefined,
23+
...existingDoc,
24+
paths: {},
25+
components: {},
26+
};
27+
28+
writeFileSync(config.output, toOpenAPI({ input: config.input, template }), 'utf8');
29+
console.log(`${config.output} was built successfully.`);
30+
});
31+
32+
const toOpenAPI = (params: { input: string; template?: OpenAPIV3_1.Document | string }): string => {
1533
const tree = getDirentTree(params.input);
1634

1735
const createFilePaths = (tree: DirentTree): string[] => {
@@ -133,24 +151,3 @@ type AllMethods = [${paths.map((_, i) => `Methods${i}`).join(', ')}]`;
133151

134152
return JSON.stringify(doc, null, 2).replaceAll('#/definitions', '#/components/schemas');
135153
};
136-
137-
export default (configs?: PartialConfig) =>
138-
getConfig(configs).forEach((config) => {
139-
const existingDoc: OpenAPIV3_1.Document | undefined = existsSync(config.output)
140-
? JSON.parse(readFileSync(config.output, 'utf8'))
141-
: undefined;
142-
const template: OpenAPIV3_1.Document = {
143-
openapi: '3.1.0',
144-
info: {
145-
title: `${config.output.split('/').at(-1)?.replace('.json', '')} api`,
146-
version: 'v0.0',
147-
},
148-
servers: config.baseURL ? [{ url: config.baseURL }] : undefined,
149-
...existingDoc,
150-
paths: {},
151-
components: {},
152-
};
153-
154-
writeFileSync(config.output, toOpenAPI({ input: config.input, template }), 'utf8');
155-
console.log(`${config.output} was built successfully.`);
156-
});

tests/index.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import fs, { copyFileSync } from 'fs';
22
import { afterAll, beforeAll, describe, expect, test } from 'vitest';
3-
import build from '../src';
3+
import { generate } from '../src/generate';
44
import type { ConfigFile } from '../src/getConfig';
55

66
describe('cli test', () => {
@@ -18,7 +18,7 @@ describe('cli test', () => {
1818
copyFileSync(`${config.input}.json`, outputFile);
1919
}
2020

21-
build({ ...config, openapi: { outputFile } });
21+
generate({ ...config, openapi: { outputFile } });
2222

2323
expect(fs.readFileSync(outputFile, 'utf8')).toBe(
2424
fs.readFileSync(originalFile, 'utf8').replace(/\r/g, ''),

0 commit comments

Comments
 (0)