parent
f799b155e2
commit
da6438c926
@ -0,0 +1,64 @@ |
|||||||
|
import type { QuadMatch } from "@ldo/rdf-utils"; |
||||||
|
import type { ProxyContext } from "../ProxyContext"; |
||||||
|
import type { RawObject, RawValue } from "../util/RawObject"; |
||||||
|
import type { ObjectSetProxyQuadMatch } from "./ObjectSetProxy"; |
||||||
|
import { ObjectSetProxy } from "./ObjectSetProxy"; |
||||||
|
import type { SubjectSetProxyQuadMatch } from "./SubjectSetProxy"; |
||||||
|
import { SubjectSetProxy } from "./SubjectSetProxy"; |
||||||
|
import type { WildcardObjectSetProxyQuadMatch } from "./WildcardObjectSetProxy"; |
||||||
|
import { WildcardObjectSetProxy } from "./WildcardObjectSetProxy"; |
||||||
|
import type { WildcardSubjectSetProxyQuadMatch } from "./WildcardSubjectSetProxy"; |
||||||
|
import { WildcardSubjectSetProxy } from "./WildcardSubjectSetProxy"; |
||||||
|
import type { SetProxy } from "./setProxy"; |
||||||
|
|
||||||
|
// export function createNewSetProxy<T extends NonNullable<RawValue>>(
|
||||||
|
// quadMatch: ObjectSetProxyQuadMatch,
|
||||||
|
// isSubjectOriented: false,
|
||||||
|
// proxyContext: ProxyContext,
|
||||||
|
// ): ObjectSetProxy<T>;
|
||||||
|
// export function createNewSetProxy<T extends RawObject>(
|
||||||
|
// quadMatch: SubjectSetProxyQuadMatch,
|
||||||
|
// isSubjectOriented: true,
|
||||||
|
// proxyContext: ProxyContext,
|
||||||
|
// ): SubjectSetProxy<T>;
|
||||||
|
// export function createNewSetProxy<T extends NonNullable<RawValue>>(
|
||||||
|
// quadMatch: WildcardObjectSetProxyQuadMatch,
|
||||||
|
// isSubjectOriented: false,
|
||||||
|
// proxyContext: ProxyContext,
|
||||||
|
// ): WildcardObjectSetProxy<T>;
|
||||||
|
// export function createNewSetProxy<T extends RawObject>(
|
||||||
|
// quadMatch: WildcardSubjectSetProxyQuadMatch,
|
||||||
|
// isSubjectOriented: true,
|
||||||
|
// proxyContext: ProxyContext,
|
||||||
|
// ): WildcardSubjectSetProxy<T>;
|
||||||
|
export function createNewSetProxy<T extends NonNullable<RawValue>>( |
||||||
|
quadMatch: QuadMatch, |
||||||
|
isSubjectOriented: boolean, |
||||||
|
proxyContext: ProxyContext, |
||||||
|
): SetProxy<T> { |
||||||
|
if (!isSubjectOriented) { |
||||||
|
if (quadMatch[0] && quadMatch[1]) { |
||||||
|
return new ObjectSetProxy<T>( |
||||||
|
proxyContext, |
||||||
|
quadMatch as ObjectSetProxyQuadMatch, |
||||||
|
); |
||||||
|
} else { |
||||||
|
return new WildcardObjectSetProxy<T>( |
||||||
|
proxyContext, |
||||||
|
quadMatch as WildcardObjectSetProxyQuadMatch, |
||||||
|
); |
||||||
|
} |
||||||
|
} else { |
||||||
|
if (quadMatch[1] && quadMatch[2]) { |
||||||
|
return new SubjectSetProxy<T & RawObject>( |
||||||
|
proxyContext, |
||||||
|
quadMatch as SubjectSetProxyQuadMatch, |
||||||
|
); |
||||||
|
} else { |
||||||
|
return new WildcardSubjectSetProxy<T & RawObject>( |
||||||
|
proxyContext, |
||||||
|
quadMatch as WildcardSubjectSetProxyQuadMatch, |
||||||
|
); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue