query add chain

This commit is contained in:
熊潇 2025-05-20 10:14:15 +08:00
parent 1104efaa1a
commit 515c6e6cf7
2 changed files with 22 additions and 4 deletions

View File

@ -1,6 +1,6 @@
{
"name": "@kevisual/query",
"version": "0.0.18",
"version": "0.0.19-beta.0",
"main": "dist/index.js",
"module": "dist/index.js",
"types": "dist/index.d.ts",

View File

@ -225,10 +225,22 @@ export class Query {
export { adapter };
export class BaseQuery<T extends Query = Query> {
export class BaseQuery<T extends Query = Query, R extends { queryChain?: any; query?: any } = { queryChain: any; query?: T }> {
query: T;
constructor({ query }: { query: T }) {
this.query = query;
queryDefine: R;
constructor(opts?: { query: T; queryDefine?: R; clientQuery?: T }) {
if (opts?.clientQuery) {
this.query = opts.clientQuery;
} else {
this.query = opts?.query;
}
if (opts.queryDefine) {
this.queryDefine = opts.queryDefine;
this.queryDefine.query = this.query;
}
}
chain() {
return this.queryDefine.queryChain;
}
post<R = any, P = any>(data: P, options?: DataOpts): Promise<Result<R>> {
return this.query.post(data, options);
@ -237,3 +249,9 @@ export class BaseQuery<T extends Query = Query> {
return this.query.get(data, options);
}
}
export class ClientQuery extends Query {
constructor(opts?: QueryOpts) {
super({ ...opts, url: opts?.url || '/client/router' });
}
}