UNPKG

aspida-mock

Version:

TypeScript friendly RESTful API mock for aspida

29 lines (27 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const createImportPath = (filePath, inputDir) => filePath .replace(new RegExp(`^(.\\/)?${inputDir.replace(/^.\//, '').replace(/\/$/, '')}`), '') .replace(/'/g, "\\'") .replace(/\.ts$/, ''); const createCondition = (filePath, inputDir, methods, trailingSlash) => ` { path: '${createImportPath(filePath, inputDir).replace(/(\/index)$/, '') || ''}${trailingSlash ? '/' : ''}', methods: ${methods} },\n`; exports.default = (inputDir, trailingSlash, hasMiddleware, pathList) => `import type { AspidaClient } from 'aspida'; import type { MockClient, MockConfig } from 'aspida-mock'; import { mockClient } from 'aspida-mock'; ${hasMiddleware ? "import baseMiddleware from './@middleware';\n" : ''}import api from './$api'; ${pathList .map((filePath, i) => `import mock${i} from '.${createImportPath(filePath, inputDir)}';\n`) .join('')} export const mockRoutes = () => [ ${pathList .map((filePath, i) => createCondition(filePath, inputDir, `mock${i}`, trailingSlash)) .join('')}]; export default <U>(client: AspidaClient<U> | MockClient<U>, config?: MockConfig | undefined) => {${hasMiddleware ? '\n const middleware = [...baseMiddleware, ...(config?.middleware || [])];' : ''} const mock = 'attachRoutes' in client ? client : mockClient(client); mock.attachRoutes(mockRoutes(), ${hasMiddleware ? '{ ...config, middleware }' : 'config'}); return api(mock); }; `; //# sourceMappingURL=createRouteString.js.map