1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import { merge } from "lodash-es";
- import { service } from "../service";
- import { Module } from "../types";
- import { path2Obj } from "../utils";
- import { config, isDev } from "/@/config";
- export function createEps(modules: Module[]) {
- // 本地模块的数据
- const s = path2Obj(
- modules.reduce((a, b) => {
- return a.concat(...((b.services as any[]) || []));
- }, [])
- );
- // 合并数据
- merge(service, s);
- // 开发环境下,生成本地 service 的类型文件
- if (isDev && config.test.eps) {
- const list: any[] = [];
- // 模拟 eps 数据
- function deep(s: any) {
- if (s.namespace) {
- const api = Array.from(
- new Set([
- ...Object.getOwnPropertyNames(s.constructor.prototype),
- "page",
- "list",
- "info",
- "delete",
- "update",
- "add"
- ])
- )
- .filter((e) => !["constructor", "namespace"].includes(e))
- .map((e) => {
- return {
- path: `/${e}`
- };
- });
- list.push({
- api,
- module: s.namespace.split("/")[0],
- name: s.constructor.name + "Entity",
- prefix: `/admin/${s.namespace}`
- });
- } else {
- for (const i in s) {
- deep(s[i]);
- }
- }
- }
- deep(s);
- // 生成文件
- service.request({
- url: "/__cool_eps",
- method: "POST",
- proxy: false,
- data: {
- list
- }
- });
- }
- }
|