Skip to content

Commit 5a412d5

Browse files
authored
Merge pull request #21 from sparingsoftware/generate-multiple-scheme
feat: Enable api generation for multiple configurations
2 parents 4fb046d + 7eabc9a commit 5a412d5

4 files changed

Lines changed: 2495 additions & 6 deletions

File tree

src/generateFromConfig.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import fs from 'fs'
55
import { default as optimizeTypesUtil } from './optimizeTypes'
66
import onCreateRoute from './onCreateRoute'
77

8-
export type Config = {
8+
type SingleConfig = {
99
/**
1010
* Http address of JSON OpenAPI schema to your API
1111
* @required
@@ -54,7 +54,17 @@ export type Config = {
5454
typeWhitelist?: string[]
5555
}
5656

57-
export const generateFromConfig = ({
57+
export type Config = SingleConfig | SingleConfig[]
58+
59+
export const generateFromConfig = (config: Config) => {
60+
if (Array.isArray(config))
61+
return Promise.all(
62+
config?.map(configuration => generateSingleApi(configuration))
63+
)
64+
return generateSingleApi(config)
65+
}
66+
67+
const generateSingleApi = ({
5868
url,
5969
filePath,
6070
outDir = './service/',
@@ -63,7 +73,7 @@ export const generateFromConfig = ({
6373
include = [],
6474
optimizeTypes = true,
6575
typeWhitelist = []
66-
}: Config) => {
76+
}: SingleConfig) => {
6777
const OUTPUT_PATH = path.resolve(process.cwd(), outDir)
6878
const TEMPLATES_PATH = path.resolve(__dirname, '../templates/')
6979

src/index.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,14 @@ async function main() {
2020
const config = (await import(pathToFileURL(CONFIG_PATH).href))
2121
.default as Config
2222

23-
if (!config.url) {
23+
const isUrlMissing = Array.isArray(config)
24+
? !config.every(item => item.url)
25+
: !config.url
26+
27+
if (isUrlMissing) {
2428
console.log(
2529
chalk.yellow(
26-
'"url" property in sparing-open-api.config.js is not defined. Service creation aborted!'
30+
'"url" property is not defined. Service creation aborted!'
2731
)
2832
)
2933
return

0 commit comments

Comments
 (0)