This commit is contained in:
icssoa 2025-05-26 21:56:04 +08:00
parent d2c8f554e9
commit 733a1faef1
4 changed files with 53 additions and 32 deletions

View File

@ -7,6 +7,7 @@
const config = { const config = {
type: "admin", type: "admin",
reqUrl: "", reqUrl: "",
demo: false,
nameTag: true, nameTag: true,
eps: { eps: {
enable: true, enable: true,
@ -432,7 +433,7 @@
_permission: { ${permission.map((e) => `${e}: boolean;`).join("\n")} }; _permission: { ${permission.map((e) => `${e}: boolean;`).join("\n")} };
`; `;
t += ` t += `
request: Service['request'] request: Request
`; `;
} }
t += "}\n\n"; t += "}\n\n";
@ -454,20 +455,25 @@
${controller} ${controller}
interface RequestOptions {
url: string;
method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS";
data?: any;
params?: any;
header?: any;
timeout?: number;
withCredentials?: boolean;
firstIpv4?: boolean;
enableChunked?: boolean;
}
type Request = (options: RequestOptions) => Promise<any>;
interface Service { interface Service {
/** /**
* 基础请求 * 基础请求
*/ */
request(options?: { request: Request;
url: string;
method?: "POST" | "GET" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS";
data?: any;
params?: any;
headers?: any,
timeout?: number;
proxy?: boolean;
[key: string]: any;
}): Promise<any>;
${chain} ${chain}
} }
@ -483,10 +489,10 @@
// 文件名 // 文件名
let name = "eps.d.ts"; let name = "eps.d.ts";
if (config.type == "uniapp-x") { if (config.type == "uniapp-x") {
name = "eps.uts"; name = "eps.ts";
text = text text = text
.replaceAll("interface ", "export interface ") .replaceAll("interface ", "export interface ")
.replaceAll("type Dict", "export type Dict") .replaceAll("type ", "export type ")
.replaceAll("[key: string]: any;", ""); .replaceAll("[key: string]: any;", "");
} }
else { else {
@ -670,9 +676,14 @@
if (match) { if (match) {
const value = match[1]; const value = match[1];
try { try {
if (config.type == "uniapp-x") {
return proxy[value].target;
}
else {
const { target, rewrite } = proxy[`/${value}/`]; const { target, rewrite } = proxy[`/${value}/`];
return target + rewrite(`/${value}`); return target + rewrite(`/${value}`);
} }
}
catch (err) { catch (err) {
error(`[cool-proxy] Error${value}` + getPath()); error(`[cool-proxy] Error${value}` + getPath());
return ""; return "";
@ -1551,7 +1562,7 @@ if (typeof window !== 'undefined') {
name: "vite-cool-uniappx-code-pre", name: "vite-cool-uniappx-code-pre",
enforce: "pre", enforce: "pre",
async transform(code, id) { async transform(code, id) {
if (id.includes("/cool/virtual.ts")) { if (id.includes("/cool/ctx.ts")) {
const ctx = await createCtx(); const ctx = await createCtx();
ctx["SAFE_CHAR_MAP"] = []; ctx["SAFE_CHAR_MAP"] = [];
for (const i in SAFE_CHAR_MAP) { for (const i in SAFE_CHAR_MAP) {

View File

@ -363,7 +363,7 @@ async function createDescribe({ list, service }: { list: Eps.Entity[]; service:
`; `;
t += ` t += `
request: Service['request'] request: Request
`; `;
} }
@ -388,20 +388,25 @@ async function createDescribe({ list, service }: { list: Eps.Entity[]; service:
${controller} ${controller}
interface RequestOptions {
url: string;
method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS";
data?: any;
params?: any;
header?: any;
timeout?: number;
withCredentials?: boolean;
firstIpv4?: boolean;
enableChunked?: boolean;
}
type Request = (options: RequestOptions) => Promise<any>;
interface Service { interface Service {
/** /**
* *
*/ */
request(options?: { request: Request;
url: string;
method?: "POST" | "GET" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS";
data?: any;
params?: any;
headers?: any,
timeout?: number;
proxy?: boolean;
[key: string]: any;
}): Promise<any>;
${chain} ${chain}
} }
@ -420,10 +425,11 @@ async function createDescribe({ list, service }: { list: Eps.Entity[]; service:
let name = "eps.d.ts"; let name = "eps.d.ts";
if (config.type == "uniapp-x") { if (config.type == "uniapp-x") {
name = "eps.uts"; name = "eps.ts";
text = text text = text
.replaceAll("interface ", "export interface ") .replaceAll("interface ", "export interface ")
.replaceAll("type Dict", "export type Dict") .replaceAll("type ", "export type ")
.replaceAll("[key: string]: any;", ""); .replaceAll("[key: string]: any;", "");
} else { } else {
text = ` text = `

View File

@ -26,8 +26,12 @@ export function getProxyTarget(proxy: any) {
const value = match[1]; const value = match[1];
try { try {
if (config.type == "uniapp-x") {
return proxy[value].target;
} else {
const { target, rewrite } = proxy[`/${value}/`]; const { target, rewrite } = proxy[`/${value}/`];
return target + rewrite(`/${value}`); return target + rewrite(`/${value}`);
}
} catch (err) { } catch (err) {
error(`[cool-proxy] Error${value}` + getPath()); error(`[cool-proxy] Error${value}` + getPath());
return ""; return "";

View File

@ -9,7 +9,7 @@ export function codePlugin(): Plugin[] {
name: "vite-cool-uniappx-code-pre", name: "vite-cool-uniappx-code-pre",
enforce: "pre", enforce: "pre",
async transform(code, id) { async transform(code, id) {
if (id.includes("/cool/virtual.ts")) { if (id.includes("/cool/ctx.ts")) {
const ctx = await createCtx(); const ctx = await createCtx();
ctx["SAFE_CHAR_MAP"] = []; ctx["SAFE_CHAR_MAP"] = [];