Skip to content

Commit 7944bcb

Browse files
Extract options + ts-expect-error
1 parent 5c5e674 commit 7944bcb

File tree

9 files changed

+89
-57
lines changed

9 files changed

+89
-57
lines changed

etc/api.report.api.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ export interface AsyncIterArgs<
231231
A extends Augments = never,
232232
S extends NullabilityAdherence = NullabilityAdherence.Default,
233233
T extends boolean = false,
234-
Z extends OrderByType<Q, K> = {}
234+
Z extends OrderByOptions<Q, K> = {}
235235
> extends SelectArg<Q, K, R, S>, OrderByArg<Q, Z, PropertyKeys<Q>> {
236236
// (undocumented)
237237
$__UNSTABLE_useOldInterfaceApis?: boolean;
@@ -506,7 +506,7 @@ export interface FetchPageArgs<
506506
A extends Augments = never,
507507
S extends NullabilityAdherence = NullabilityAdherence.Default,
508508
T extends boolean = false,
509-
Z extends OrderByType<Q, K> = {}
509+
Z extends OrderByOptions<Q, K> = {}
510510
> extends AsyncIterArgs<Q, K, R, A, S, T, Z> {
511511
// (undocumented)
512512
$nextPageToken?: string;
@@ -515,6 +515,7 @@ export interface FetchPageArgs<
515515
}
516516

517517
// Warning: (ae-forgotten-export) The symbol "ExtractOptions" needs to be exported by the entry point index.d.ts
518+
// Warning: (ae-forgotten-export) The symbol "ExtractOrderByOptions" needs to be exported by the entry point index.d.ts
518519
//
519520
// @public
520521
export type FetchPageResult<
@@ -523,8 +524,8 @@ export type FetchPageResult<
523524
R extends boolean,
524525
S extends NullabilityAdherence,
525526
T extends boolean,
526-
Z extends OrderByType<Q, L> = {}
527-
> = PageResult<PropertyKeys<Q> extends L ? Osdk.Instance<Q, ExtractOptions<R, S, T>, PropertyKeys<Q>, {}, Z> : Osdk.Instance<Q, ExtractOptions<R, S, T>, L, {}, Z>>;
527+
Z extends OrderByOptions<Q, L> = {}
528+
> = PageResult<PropertyKeys<Q> extends L ? Osdk.Instance<Q, ExtractOptions<R, S, T>, PropertyKeys<Q>, {}, ExtractOrderByOptions<Z extends "relevance" ? true : false>> : Osdk.Instance<Q, ExtractOptions<R, S, T>, L, {}, ExtractOrderByOptions<Z extends "relevance" ? true : false>>>;
528529

529530
// @public (undocumented)
530531
export type FilteredPropertyKeys<
@@ -841,7 +842,7 @@ export interface OntologyMetadata<_NEVER_USED_KEPT_FOR_BACKCOMPAT = any> {
841842
}
842843

843844
// @public (undocumented)
844-
export type OrderByType<
845+
export type OrderByOptions<
845846
Q extends ObjectOrInterfaceDefinition,
846847
L extends PropertyKeys<Q> = PropertyKeys<Q>
847848
> = { [K in L]? : "asc" | "desc" } | "relevance";
@@ -867,14 +868,14 @@ export namespace Osdk {
867868
OPTIONS extends never | "$rid" | "$allBaseProperties" = never,
868869
P extends PropertyKeys<Q> = PropertyKeys<Q>,
869870
R extends Record<string, SimplePropertyDef> = {},
870-
Z extends OrderByType<Q, P> = {}
871+
ORDER_BY_OPTIONS extends never | "$score" = never
871872
> = OsdkBase<Q> & Pick<CompileTimeMetadata<Q>["props"], GetPropsKeys<Q, P, [R] extends [{}] ? false : true>> & ([R] extends [never] ? {} : { [A in keyof R] : SimplePropertyDef.ToRuntimeProperty<R[A]> }) & {
872873
readonly $link: Q extends {
873874
linksType?: any
874875
} ? Q["linksType"] : Q extends ObjectTypeDefinition ? OsdkObjectLinksObject<Q> : never
875876
readonly $as: <NEW_Q extends ValidToFrom<Q>>(type: NEW_Q | string) => Osdk.Instance<NEW_Q, OPTIONS, ConvertProps<Q, NEW_Q, P, OPTIONS>>
876877
readonly $clone: <NEW_PROPS extends PropertyKeys<Q>>(updatedObject?: Osdk.Instance<Q, any, NEW_PROPS> | { [K in NEW_PROPS]? : CompileTimeMetadata<Q>["props"][K] }) => Osdk.Instance<Q, OPTIONS, P | NEW_PROPS>
877-
} & (Z extends "relevance" ? {
878+
} & (IsNever<ORDER_BY_OPTIONS> extends true ? {} : IsAny<ORDER_BY_OPTIONS> extends true ? {} : "$score" extends ORDER_BY_OPTIONS ? {
878879
readonly $score: number
879880
} : {}) & (IsNever<OPTIONS> extends true ? {} : IsAny<OPTIONS> extends true ? {} : "$rid" extends OPTIONS ? {
880881
readonly $rid: string
@@ -1162,8 +1163,8 @@ export type SingleOsdkResult<
11621163
S extends NullabilityAdherence,
11631164
RDPs extends Record<string, SimplePropertyDef> = {},
11641165
T extends boolean = false,
1165-
Z extends OrderByType<Q, L> = {}
1166-
> = Osdk.Instance<Q, ExtractOptions<R, S, T>, PropertyKeys<Q> extends L ? PropertyKeys<Q> : PropertyKeys<Q> & L, { [K in Extract<keyof RDPs, L>] : RDPs[K] }, Z>;
1166+
Z extends OrderByOptions<Q, L> = {}
1167+
> = Osdk.Instance<Q, ExtractOptions<R, S, T>, PropertyKeys<Q> extends L ? PropertyKeys<Q> : PropertyKeys<Q> & L, { [K in Extract<keyof RDPs, L>] : RDPs[K] }, ExtractOrderByOptions<Z extends "relevance" ? true : false>>;
11671168

11681169
// Warning: (ae-forgotten-export) The symbol "AllowedBucketKeyTypes_2" needs to be exported by the entry point index.d.ts
11691170
//

packages/api/src/OsdkObjectFrom.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,7 @@ import type {
1818
DefaultToFalse,
1919
OsdkObjectLinksObject,
2020
} from "./definitions/LinkDefinitions.js";
21-
import type {
22-
NullabilityAdherence,
23-
OrderByType,
24-
} from "./object/FetchPageArgs.js";
21+
import type { NullabilityAdherence } from "./object/FetchPageArgs.js";
2522
import type { UnionIfTrue } from "./object/FetchPageResult.js";
2623
import type { InterfaceDefinition } from "./ontology/InterfaceDefinition.js";
2724
import type {
@@ -199,7 +196,7 @@ export namespace Osdk {
199196
OPTIONS extends never | "$rid" | "$allBaseProperties" = never,
200197
P extends PropertyKeys<Q> = PropertyKeys<Q>,
201198
R extends Record<string, SimplePropertyDef> = {},
202-
Z extends OrderByType<Q, P> = {},
199+
ORDER_BY_OPTIONS extends never | "$score" = never,
203200
> =
204201
& OsdkBase<Q>
205202
& Pick<
@@ -232,7 +229,10 @@ export namespace Osdk {
232229
},
233230
) => Osdk.Instance<Q, OPTIONS, P | NEW_PROPS>;
234231
}
235-
& (Z extends "relevance" ? { readonly $score: number } : {})
232+
& (IsNever<ORDER_BY_OPTIONS> extends true ? {}
233+
: IsAny<ORDER_BY_OPTIONS> extends true ? {}
234+
: "$score" extends ORDER_BY_OPTIONS ? { readonly $score: number }
235+
: {})
236236
// We are hiding the $rid field if it wasn't requested as we want to discourage its use
237237
& (IsNever<OPTIONS> extends true ? {}
238238
: IsAny<OPTIONS> extends true ? {}
@@ -274,3 +274,8 @@ export type ExtractOptions<
274274
S extends NullabilityAdherence = NullabilityAdherence.Default,
275275
T extends boolean = false,
276276
> = ExtractRidOption<R> | ExtractAllPropertiesOption<T>;
277+
278+
export type ExtractOrderByOptions<R extends boolean> = IsNever<R> extends true
279+
? never
280+
: DefaultToFalse<R> extends false ? never
281+
: "$score";

packages/api/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export type {
6565
Augments,
6666
FetchPageArgs,
6767
NullabilityAdherence,
68-
OrderByType,
68+
OrderByOptions,
6969
SelectArg,
7070
SelectArgToKeys,
7171
} from "./object/FetchPageArgs.js";

packages/api/src/object/FetchPageArgs.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export interface SelectArg<
3535
$includeRid?: R;
3636
}
3737

38-
export type OrderByType<
38+
export type OrderByOptions<
3939
Q extends ObjectOrInterfaceDefinition,
4040
L extends PropertyKeys<Q> = PropertyKeys<Q>,
4141
> =
@@ -46,7 +46,7 @@ export type OrderByType<
4646

4747
export interface OrderByArg<
4848
Q extends ObjectOrInterfaceDefinition,
49-
Z extends OrderByType<Q, L>,
49+
Z extends OrderByOptions<Q, L>,
5050
L extends PropertyKeys<Q> = PropertyKeys<Q>,
5151
> {
5252
$orderBy?: Z;
@@ -66,7 +66,7 @@ export interface FetchPageArgs<
6666
A extends Augments = never,
6767
S extends NullabilityAdherence = NullabilityAdherence.Default,
6868
T extends boolean = false,
69-
Z extends OrderByType<Q, K> = {},
69+
Z extends OrderByOptions<Q, K> = {},
7070
> extends AsyncIterArgs<Q, K, R, A, S, T, Z> {
7171
$nextPageToken?: string;
7272
$pageSize?: number;
@@ -79,7 +79,7 @@ export interface AsyncIterArgs<
7979
A extends Augments = never,
8080
S extends NullabilityAdherence = NullabilityAdherence.Default,
8181
T extends boolean = false,
82-
Z extends OrderByType<Q, K> = {},
82+
Z extends OrderByOptions<Q, K> = {},
8383
> extends SelectArg<Q, K, R, S>, OrderByArg<Q, Z, PropertyKeys<Q>> {
8484
$__UNSTABLE_useOldInterfaceApis?: boolean;
8585
$includeAllBaseObjectProperties?: T;

packages/api/src/object/FetchPageResult.ts

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,14 @@ import type {
1919
PropertyKeys,
2020
} from "../ontology/ObjectOrInterface.js";
2121
import type { SimplePropertyDef } from "../ontology/SimplePropertyDef.js";
22-
import type { ExtractOptions, IsNever, Osdk } from "../OsdkObjectFrom.js";
22+
import type {
23+
ExtractOptions,
24+
ExtractOrderByOptions,
25+
IsNever,
26+
Osdk,
27+
} from "../OsdkObjectFrom.js";
2328
import type { PageResult } from "../PageResult.js";
24-
import type { NullabilityAdherence, OrderByType } from "./FetchPageArgs.js";
29+
import type { NullabilityAdherence, OrderByOptions } from "./FetchPageArgs.js";
2530

2631
/** exposed for a test */
2732
export type RespectNullability<S extends NullabilityAdherence> = S extends false
@@ -52,11 +57,22 @@ export type FetchPageResult<
5257
R extends boolean,
5358
S extends NullabilityAdherence,
5459
T extends boolean,
55-
Z extends OrderByType<Q, L> = {},
60+
Z extends OrderByOptions<Q, L> = {},
5661
> = PageResult<
57-
PropertyKeys<Q> extends L
58-
? Osdk.Instance<Q, ExtractOptions<R, S, T>, PropertyKeys<Q>, {}, Z>
59-
: Osdk.Instance<Q, ExtractOptions<R, S, T>, L, {}, Z>
62+
PropertyKeys<Q> extends L ? Osdk.Instance<
63+
Q,
64+
ExtractOptions<R, S, T>,
65+
PropertyKeys<Q>,
66+
{},
67+
ExtractOrderByOptions<Z extends "relevance" ? true : false>
68+
>
69+
: Osdk.Instance<
70+
Q,
71+
ExtractOptions<R, S, T>,
72+
L,
73+
{},
74+
ExtractOrderByOptions<Z extends "relevance" ? true : false>
75+
>
6076
>;
6177

6278
/**
@@ -69,13 +85,13 @@ export type SingleOsdkResult<
6985
S extends NullabilityAdherence,
7086
RDPs extends Record<string, SimplePropertyDef> = {},
7187
T extends boolean = false,
72-
Z extends OrderByType<Q, L> = {},
88+
Z extends OrderByOptions<Q, L> = {},
7389
> = Osdk.Instance<
7490
Q,
7591
ExtractOptions<R, S, T>,
7692
PropertyKeys<Q> extends L ? PropertyKeys<Q> : PropertyKeys<Q> & L,
7793
{ [K in Extract<keyof RDPs, L>]: RDPs[K] },
78-
Z
94+
ExtractOrderByOptions<Z extends "relevance" ? true : false>
7995
>;
8096

8197
export type IsAny<T> = unknown extends T

packages/api/src/objectSet/ObjectSet.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import type {
2424
Augments,
2525
FetchPageArgs,
2626
NullabilityAdherence,
27-
OrderByType,
27+
OrderByOptions,
2828
SelectArg,
2929
} from "../object/FetchPageArgs.js";
3030
import type { Result } from "../object/Result.js";
@@ -41,7 +41,11 @@ import type {
4141
} from "../ontology/ObjectTypeDefinition.js";
4242
import type { SimplePropertyDef } from "../ontology/SimplePropertyDef.js";
4343
import type { PrimaryKeyType } from "../OsdkBase.js";
44-
import type { ExtractOptions, Osdk } from "../OsdkObjectFrom.js";
44+
import type {
45+
ExtractOptions,
46+
ExtractOrderByOptions,
47+
Osdk,
48+
} from "../OsdkObjectFrom.js";
4549
import type { PageResult } from "../PageResult.js";
4650
import type { LinkedType, LinkNames } from "../util/LinkUtils.js";
4751
import type { BaseObjectSet } from "./BaseObjectSet.js";
@@ -92,7 +96,7 @@ interface FetchPage<
9296
const A extends Augments,
9397
S extends NullabilityAdherence = NullabilityAdherence.Default,
9498
T extends boolean = false,
95-
Z extends OrderByType<Q, L> = {},
99+
Z extends OrderByOptions<Q, L> = {},
96100
>(
97101
args?: FetchPageArgs<Q, L, R, A, S, T, Z>,
98102
) => Promise<
@@ -102,7 +106,7 @@ interface FetchPage<
102106
ExtractOptions<R, S, T>,
103107
PropertyKeys<Q> extends L ? PropertyKeys<Q> : PropertyKeys<Q> & L,
104108
{ [K in Extract<keyof RDPs, L>]: RDPs[K] },
105-
Z
109+
ExtractOrderByOptions<Z extends "relevance" ? true : false>
106110
>
107111
>
108112
>;
@@ -127,7 +131,7 @@ interface FetchPage<
127131
const A extends Augments,
128132
S extends NullabilityAdherence = NullabilityAdherence.Default,
129133
T extends boolean = false,
130-
Z extends OrderByType<Q, L> = {},
134+
Z extends OrderByOptions<Q, L> = {},
131135
>(
132136
args?: FetchPageArgs<Q, L, R, A, S, T, Z>,
133137
) => Promise<
@@ -138,7 +142,7 @@ interface FetchPage<
138142
ExtractOptions<R, S, T>,
139143
PropertyKeys<Q> extends L ? PropertyKeys<Q> : PropertyKeys<Q> & L,
140144
{ [K in Extract<keyof RDPs, L>]: RDPs[K] },
141-
Z
145+
ExtractOrderByOptions<Z extends "relevance" ? true : false>
142146
>
143147
>
144148
>
@@ -183,7 +187,7 @@ interface AsyncIter<
183187
const A extends Augments,
184188
S extends NullabilityAdherence = NullabilityAdherence.Default,
185189
T extends boolean = false,
186-
Z extends OrderByType<Q, L> = {},
190+
Z extends OrderByOptions<Q, L> = {},
187191
>(
188192
args?: AsyncIterArgs<Q, L, R, A, S, T, Z>,
189193
) => AsyncIterableIterator<
@@ -192,7 +196,7 @@ interface AsyncIter<
192196
ExtractOptions<R, S, T>,
193197
PropertyKeys<Q> extends L ? PropertyKeys<Q> : PropertyKeys<Q> & L,
194198
{ [K in Extract<keyof RDPs, L>]: RDPs[K] },
195-
Z
199+
ExtractOrderByOptions<Z extends "relevance" ? true : false>
196200
>
197201
>;
198202
}

packages/client/src/object/fetchPage.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import type {
2323
NullabilityAdherence,
2424
ObjectOrInterfaceDefinition,
2525
ObjectTypeDefinition,
26-
OrderByType,
26+
OrderByOptions,
2727
PropertyKeys,
2828
Result,
2929
} from "@osdk/api";
@@ -114,7 +114,7 @@ async function fetchInterfacePage<
114114
R extends boolean,
115115
S extends NullabilityAdherence,
116116
T extends boolean,
117-
Z extends OrderByType<Q, L>,
117+
Z extends OrderByOptions<Q, L>,
118118
>(
119119
client: MinimalClient,
120120
interfaceType: Q,
@@ -184,7 +184,7 @@ export async function fetchPageInternal<
184184
A extends Augments,
185185
S extends NullabilityAdherence,
186186
T extends boolean,
187-
Z extends OrderByType<Q, L>,
187+
Z extends OrderByOptions<Q, L>,
188188
>(
189189
client: MinimalClient,
190190
objectType: Q,
@@ -216,7 +216,7 @@ export async function fetchPageWithErrorsInternal<
216216
A extends Augments,
217217
S extends NullabilityAdherence,
218218
T extends boolean,
219-
Z extends OrderByType<Q, L>,
219+
Z extends OrderByOptions<Q, L>,
220220
>(
221221
client: MinimalClient,
222222
objectType: Q,
@@ -248,7 +248,7 @@ export async function fetchPage<
248248
R extends boolean,
249249
S extends NullabilityAdherence,
250250
T extends boolean,
251-
Z extends OrderByType<Q, L>,
251+
Z extends OrderByOptions<Q, L>,
252252
>(
253253
client: MinimalClient,
254254
objectType: Q,
@@ -265,7 +265,7 @@ export async function fetchPageWithErrors<
265265
R extends boolean,
266266
S extends NullabilityAdherence,
267267
T extends boolean,
268-
Z extends OrderByType<Q, L>,
268+
Z extends OrderByOptions<Q, L>,
269269
>(
270270
client: MinimalClient,
271271
objectType: Q,
@@ -282,7 +282,7 @@ function applyFetchArgs<
282282
pageSize?: PageSize;
283283
},
284284
>(
285-
args: FetchPageArgs<any, any, any, any, any, any, OrderByType<any, any>>,
285+
args: FetchPageArgs<any, any, any, any, any, any, OrderByOptions<any, any>>,
286286
body: X,
287287
): X {
288288
if (args?.$nextPageToken) {
@@ -315,7 +315,7 @@ export async function fetchObjectPage<
315315
R extends boolean,
316316
S extends NullabilityAdherence,
317317
T extends boolean,
318-
Z extends OrderByType<Q, L>,
318+
Z extends OrderByOptions<Q, L>,
319319
>(
320320
client: MinimalClient,
321321
objectType: Q,

0 commit comments

Comments
 (0)