Comparing version 49.0.2 to 49.0.3
@@ -43,3 +43,3 @@ import { KmoreQueryBuilder, PageRawType, PageWrapType } from './builder.types.js'; | ||
kmore: KmoreBase; | ||
target: KmoreQueryBuilder; | ||
builder: KmoreQueryBuilder; | ||
propKey: string | symbol; | ||
@@ -46,0 +46,0 @@ receiver: unknown; |
import { defaultPropDescriptor } from './config.js'; | ||
export function createQueryBuilderGetProxy(options) { | ||
const { kmore, builder, thenHandler, resultPagerHandler } = options; | ||
const ret = new Proxy(builder, { | ||
const { kmore, thenHandler, resultPagerHandler, } = options; | ||
const ret = new Proxy(options.builder, { | ||
get: (target, propKey, receiver) => { | ||
@@ -9,3 +9,9 @@ switch (propKey) { | ||
// return proxyGetThen({ kmore, target, propKey, receiver }) | ||
return thenHandler({ kmore, target, propKey, receiver, resultPagerHandler }); | ||
return thenHandler({ | ||
kmore, | ||
builder: target, | ||
propKey, | ||
receiver, | ||
resultPagerHandler, | ||
}); | ||
default: | ||
@@ -12,0 +18,0 @@ return Reflect.get(target, propKey, receiver); |
@@ -11,17 +11,18 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ | ||
export function proxyGetThen(options) { | ||
const { kmore, target, propKey, resultPagerHandler } = options; | ||
const { kmore, builder: origBuilder, propKey, resultPagerHandler, } = options; | ||
assert(propKey === 'then', `propKey should be "then", but got: ${propKey.toString()}`); | ||
const getThenProxy = async (done, reject) => { | ||
const { kmoreQueryId } = target; | ||
const builder = origBuilder; | ||
const { kmoreQueryId } = builder; | ||
let getThenProxyRet; | ||
if (resultPagerHandler && Object.hasOwn(target, KmorePageKey.PagingOptions) | ||
if (resultPagerHandler && Object.hasOwn(builder, KmorePageKey.PagingOptions) | ||
// @ts-ignore | ||
&& target[KmorePageKey.PagingOptions]?.enable === true | ||
&& !Object.hasOwn(target, KmorePageKey.PagingProcessed)) { | ||
&& builder[KmorePageKey.PagingOptions]?.enable === true | ||
&& !Object.hasOwn(builder, KmorePageKey.PagingProcessed)) { | ||
// pager() | ||
getThenProxyRet = resultPagerHandler({ builder: target, kmore }, createQueryBuilderGetProxy); | ||
getThenProxyRet = resultPagerHandler({ builder, kmore }, createQueryBuilderGetProxy); | ||
} | ||
else { | ||
// query response or response data | ||
getThenProxyRet = Reflect.apply(target.then, target, []); | ||
getThenProxyRet = Reflect.apply(builder.then, builder, []); | ||
} | ||
@@ -40,4 +41,4 @@ return processThenRet({ | ||
}); | ||
return getThenProxy.bind(target); | ||
return getThenProxy.bind(origBuilder); | ||
} | ||
//# sourceMappingURL=proxy.get.then.js.map |
{ | ||
"name": "kmore", | ||
"author": "waiting", | ||
"version": "49.0.2", | ||
"version": "49.0.3", | ||
"description": "A SQL query builder based on knex with powerful TypeScript type support", | ||
@@ -81,3 +81,3 @@ "keywords": [ | ||
}, | ||
"gitHead": "e17f0cd9ac6aab886cd0d2227d0eb7cf85d71ec0" | ||
"gitHead": "bc502f37437e0476a56531534f7afd795b52021e" | ||
} |
@@ -81,3 +81,3 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ | ||
kmore: KmoreBase | ||
target: KmoreQueryBuilder | ||
builder: KmoreQueryBuilder | ||
propKey: string | symbol | ||
@@ -97,1 +97,2 @@ receiver: unknown | ||
@@ -19,3 +19,8 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ | ||
export function proxyGetThen(options: ProxyGetHandlerOptions): KmoreQueryBuilder['then'] { | ||
const { kmore, target, propKey, resultPagerHandler } = options | ||
const { | ||
kmore, | ||
builder: origBuilder, | ||
propKey, | ||
resultPagerHandler, | ||
} = options | ||
assert(propKey === 'then', `propKey should be "then", but got: ${propKey.toString()}`) | ||
@@ -28,17 +33,19 @@ | ||
const { kmoreQueryId } = target | ||
const builder = origBuilder | ||
const { kmoreQueryId } = builder | ||
let getThenProxyRet: Promise<unknown> | ||
if (resultPagerHandler && Object.hasOwn(target, KmorePageKey.PagingOptions) | ||
if (resultPagerHandler && Object.hasOwn(builder, KmorePageKey.PagingOptions) | ||
// @ts-ignore | ||
&& target[KmorePageKey.PagingOptions]?.enable === true | ||
&& ! Object.hasOwn(target, KmorePageKey.PagingProcessed) | ||
&& builder[KmorePageKey.PagingOptions]?.enable === true | ||
&& ! Object.hasOwn(builder, KmorePageKey.PagingProcessed) | ||
) { | ||
// pager() | ||
getThenProxyRet = resultPagerHandler({ builder: target, kmore }, createQueryBuilderGetProxy) | ||
getThenProxyRet = resultPagerHandler({ builder, kmore }, createQueryBuilderGetProxy) | ||
} | ||
else { | ||
// query response or response data | ||
getThenProxyRet = Reflect.apply(target.then, target, []) as Promise<unknown> | ||
getThenProxyRet = Reflect.apply(builder.then, builder, []) as Promise<unknown> | ||
} | ||
@@ -59,4 +66,4 @@ | ||
return getThenProxy.bind(target) as KmoreQueryBuilder['then'] | ||
return getThenProxy.bind(origBuilder) as KmoreQueryBuilder['then'] | ||
} | ||
@@ -10,5 +10,9 @@ import type { CreateQueryBuilderGetProxyOptions } from './base.js' | ||
const { kmore, builder, thenHandler, resultPagerHandler } = options | ||
const { | ||
kmore, | ||
thenHandler, | ||
resultPagerHandler, | ||
} = options | ||
const ret = new Proxy(builder, { | ||
const ret = new Proxy(options.builder, { | ||
get: (target: KmoreQueryBuilder, propKey: string | symbol, receiver: unknown) => { | ||
@@ -18,3 +22,9 @@ switch (propKey) { | ||
// return proxyGetThen({ kmore, target, propKey, receiver }) | ||
return thenHandler({ kmore, target, propKey, receiver, resultPagerHandler }) | ||
return thenHandler({ | ||
kmore, | ||
builder: target, | ||
propKey, | ||
receiver, | ||
resultPagerHandler, | ||
}) | ||
default: | ||
@@ -21,0 +31,0 @@ return Reflect.get(target, propKey, receiver) |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
363394
6027