run.js 1.33 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
const { existsSync } = require('fs');
const { mkdirSync } = require('fs-extra');
const { join } = require('path');
const openApiConfig = require('../../config/config');
const { generateService } = require('./index');

function createMiddleware(config) {
  const cwd = process.cwd();
  return {
    middleware(req, res, next) {
      (async () => {
        const openAPIConfig = config;
        // const pageConfig = require(join(cwd, 'package.json'));
        const mockFolder = openAPIConfig.mock ? join(cwd, 'mock') : undefined;
        const serversFolder = join(cwd, 'src', 'api/generateAPI');
        // 如果mock 文件不存在,创建一下
        if (mockFolder && !existsSync(mockFolder)) {
          mkdirSync(mockFolder);
        }
        // 如果mock 文件不存在,创建一下
        if (serversFolder && !existsSync(serversFolder)) {
          mkdirSync(serversFolder);
        }
邓晓峰's avatar
邓晓峰 committed
24
        // pageConfig.name.split('/').pop(),
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
        await generateService({
          projectName: '',
          ...openAPIConfig,
          serversPath: serversFolder,
          mockFolder,
        });
        console.log('[openAPI]: execution complete');
      })();
    },
  };
}

function openAPIMiddewares(req, res, next) {
  const { middleware } = createMiddleware(openApiConfig.openAPI);
  return middleware(req, res, next);
}
openAPIMiddewares();