diff --git a/package.json b/package.json index 878e1e7..121991c 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/src/query.ts b/src/query.ts index 23cb1ef..248fe00 100644 --- a/src/query.ts +++ b/src/query.ts @@ -225,10 +225,22 @@ export class Query { export { adapter }; -export class BaseQuery { +export class BaseQuery { 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(data: P, options?: DataOpts): Promise> { return this.query.post(data, options); @@ -237,3 +249,9 @@ export class BaseQuery { return this.query.get(data, options); } } + +export class ClientQuery extends Query { + constructor(opts?: QueryOpts) { + super({ ...opts, url: opts?.url || '/client/router' }); + } +}