@osdk/client 2.8.0-beta.13 → 2.8.0-beta.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/build/browser/createMediaFromReference.js +61 -0
- package/build/browser/createMediaFromReference.js.map +1 -0
- package/build/browser/index.js +1 -0
- package/build/browser/index.js.map +1 -1
- package/build/browser/object/mediaUpload.js +3 -0
- package/build/browser/object/mediaUpload.js.map +1 -1
- package/build/browser/observable/LinkPayload.js.map +1 -1
- package/build/browser/observable/ListPayload.js.map +1 -1
- package/build/browser/observable/ObservableClient/ObserveLink.js.map +1 -1
- package/build/browser/observable/ObservableClient.js.map +1 -1
- package/build/browser/observable/computeObjectSetCacheKey.js.map +1 -1
- package/build/browser/observable/internal/ListQueryView.js +4 -3
- package/build/browser/observable/internal/ListQueryView.js.map +1 -1
- package/build/browser/observable/internal/ObservableClientImpl.js +1 -1
- package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
- package/build/browser/observable/internal/Store.test.js +11 -11
- package/build/browser/observable/internal/Store.test.js.map +1 -1
- package/build/browser/observable/internal/base-list/BaseCollectionQuery.js.map +1 -1
- package/build/browser/observable/internal/base-list/BaseListQuery.js +12 -13
- package/build/browser/observable/internal/base-list/BaseListQuery.js.map +1 -1
- package/build/browser/observable/internal/base-list/createCollectionConnectable.js +2 -2
- package/build/browser/observable/internal/base-list/createCollectionConnectable.js.map +1 -1
- package/build/browser/observable/internal/base-list/createCollectionConnectable.test.js +2 -2
- package/build/browser/observable/internal/base-list/createCollectionConnectable.test.js.map +1 -1
- package/build/browser/observable/internal/list/InterfaceListQuery.js +1 -1
- package/build/browser/observable/internal/list/InterfaceListQuery.js.map +1 -1
- package/build/browser/observable/internal/list/ListQuery.test.js +45 -46
- package/build/browser/observable/internal/list/ListQuery.test.js.map +1 -1
- package/build/browser/observable/internal/object/ObjectsHelper.js +22 -1
- package/build/browser/observable/internal/object/ObjectsHelper.js.map +1 -1
- package/build/browser/observable/internal/object/ObjectsHelper.test.js +132 -0
- package/build/browser/observable/internal/object/ObjectsHelper.test.js.map +1 -1
- package/build/browser/observable/internal/objectset/ObjectSetQuery.js.map +1 -1
- package/build/browser/observable/internal/objectset/ObjectSetQueryOptions.js.map +1 -1
- package/build/browser/observable/internal/testUtils/observeLink/expectStandardObserveLink.js +1 -1
- package/build/browser/observable/internal/testUtils/observeLink/expectStandardObserveLink.js.map +1 -1
- package/build/browser/observable/internal/testUtils.js +2 -2
- package/build/browser/observable/internal/testUtils.js.map +1 -1
- package/build/browser/queries/applyQuery.js +8 -1
- package/build/browser/queries/applyQuery.js.map +1 -1
- package/build/browser/queries/queries.test.js +80 -2
- package/build/browser/queries/queries.test.js.map +1 -1
- package/build/browser/util/UserAgent.js +2 -2
- package/build/browser/util/toDataValue.js +7 -7
- package/build/browser/util/toDataValue.js.map +1 -1
- package/build/browser/util/toDataValue.test.js +23 -0
- package/build/browser/util/toDataValue.test.js.map +1 -1
- package/build/browser/util/toDataValueQueries.js +19 -0
- package/build/browser/util/toDataValueQueries.js.map +1 -1
- package/build/cjs/{chunk-JVLSSAAP.cjs → chunk-Q2XRNNC7.cjs} +68 -68
- package/build/cjs/{chunk-JVLSSAAP.cjs.map → chunk-Q2XRNNC7.cjs.map} +1 -1
- package/build/cjs/{chunk-LDTMSHUZ.cjs → chunk-QPPKY7HT.cjs} +4 -4
- package/build/cjs/{chunk-LDTMSHUZ.cjs.map → chunk-QPPKY7HT.cjs.map} +1 -1
- package/build/cjs/{chunk-FE6Q5R5O.cjs → chunk-RTSJQAWK.cjs} +189 -123
- package/build/cjs/chunk-RTSJQAWK.cjs.map +1 -0
- package/build/cjs/createObjectSet-BagR_R7M.d.cts +15 -0
- package/build/cjs/index.cjs +20 -12
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +2 -1
- package/build/cjs/public/internal-node.cjs +219 -219
- package/build/cjs/public/internal.cjs +14 -14
- package/build/cjs/public/unstable-do-not-use.cjs +164 -145
- package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
- package/build/cjs/public/unstable-do-not-use.d.cts +11 -14
- package/build/esm/createMediaFromReference.js +61 -0
- package/build/esm/createMediaFromReference.js.map +1 -0
- package/build/esm/index.js +1 -0
- package/build/esm/index.js.map +1 -1
- package/build/esm/object/mediaUpload.js +3 -0
- package/build/esm/object/mediaUpload.js.map +1 -1
- package/build/esm/observable/LinkPayload.js.map +1 -1
- package/build/esm/observable/ListPayload.js.map +1 -1
- package/build/esm/observable/ObservableClient/ObserveLink.js.map +1 -1
- package/build/esm/observable/ObservableClient.js.map +1 -1
- package/build/esm/observable/computeObjectSetCacheKey.js.map +1 -1
- package/build/esm/observable/internal/ListQueryView.js +4 -3
- package/build/esm/observable/internal/ListQueryView.js.map +1 -1
- package/build/esm/observable/internal/ObservableClientImpl.js +1 -1
- package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
- package/build/esm/observable/internal/Store.test.js +11 -11
- package/build/esm/observable/internal/Store.test.js.map +1 -1
- package/build/esm/observable/internal/base-list/BaseCollectionQuery.js.map +1 -1
- package/build/esm/observable/internal/base-list/BaseListQuery.js +12 -13
- package/build/esm/observable/internal/base-list/BaseListQuery.js.map +1 -1
- package/build/esm/observable/internal/base-list/createCollectionConnectable.js +2 -2
- package/build/esm/observable/internal/base-list/createCollectionConnectable.js.map +1 -1
- package/build/esm/observable/internal/base-list/createCollectionConnectable.test.js +2 -2
- package/build/esm/observable/internal/base-list/createCollectionConnectable.test.js.map +1 -1
- package/build/esm/observable/internal/list/InterfaceListQuery.js +1 -1
- package/build/esm/observable/internal/list/InterfaceListQuery.js.map +1 -1
- package/build/esm/observable/internal/list/ListQuery.test.js +45 -46
- package/build/esm/observable/internal/list/ListQuery.test.js.map +1 -1
- package/build/esm/observable/internal/object/ObjectsHelper.js +22 -1
- package/build/esm/observable/internal/object/ObjectsHelper.js.map +1 -1
- package/build/esm/observable/internal/object/ObjectsHelper.test.js +132 -0
- package/build/esm/observable/internal/object/ObjectsHelper.test.js.map +1 -1
- package/build/esm/observable/internal/objectset/ObjectSetQuery.js.map +1 -1
- package/build/esm/observable/internal/objectset/ObjectSetQueryOptions.js.map +1 -1
- package/build/esm/observable/internal/testUtils/observeLink/expectStandardObserveLink.js +1 -1
- package/build/esm/observable/internal/testUtils/observeLink/expectStandardObserveLink.js.map +1 -1
- package/build/esm/observable/internal/testUtils.js +2 -2
- package/build/esm/observable/internal/testUtils.js.map +1 -1
- package/build/esm/queries/applyQuery.js +8 -1
- package/build/esm/queries/applyQuery.js.map +1 -1
- package/build/esm/queries/queries.test.js +80 -2
- package/build/esm/queries/queries.test.js.map +1 -1
- package/build/esm/util/UserAgent.js +2 -2
- package/build/esm/util/toDataValue.js +7 -7
- package/build/esm/util/toDataValue.js.map +1 -1
- package/build/esm/util/toDataValue.test.js +23 -0
- package/build/esm/util/toDataValue.test.js.map +1 -1
- package/build/esm/util/toDataValueQueries.js +19 -0
- package/build/esm/util/toDataValueQueries.js.map +1 -1
- package/build/types/createMediaFromReference.d.ts +1 -0
- package/build/types/createMediaFromReference.d.ts.map +1 -0
- package/build/types/index.d.ts +2 -0
- package/build/types/index.d.ts.map +1 -1
- package/build/types/object/mediaUpload.d.ts +2 -1
- package/build/types/object/mediaUpload.d.ts.map +1 -1
- package/build/types/observable/LinkPayload.d.ts +1 -1
- package/build/types/observable/ListPayload.d.ts +1 -1
- package/build/types/observable/ObservableClient/ObserveLink.d.ts +1 -1
- package/build/types/observable/ObservableClient.d.ts +4 -4
- package/build/types/observable/ObservableClient.d.ts.map +1 -1
- package/build/types/observable/computeObjectSetCacheKey.d.ts +2 -2
- package/build/types/observable/computeObjectSetCacheKey.d.ts.map +1 -1
- package/build/types/observable/internal/ListQueryView.d.ts.map +1 -1
- package/build/types/observable/internal/Store.test.d.ts.map +1 -1
- package/build/types/observable/internal/base-list/BaseCollectionQuery.d.ts +4 -4
- package/build/types/observable/internal/base-list/BaseListQuery.d.ts +1 -1
- package/build/types/observable/internal/base-list/BaseListQuery.d.ts.map +1 -1
- package/build/types/observable/internal/object/ObjectsHelper.d.ts.map +1 -1
- package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts +1 -1
- package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts.map +1 -1
- package/build/types/observable/internal/objectset/ObjectSetQueryOptions.d.ts +2 -2
- package/build/types/observable/internal/objectset/ObjectSetQueryOptions.d.ts.map +1 -1
- package/build/types/observable/internal/testUtils.d.ts +1 -1
- package/build/types/observable/internal/testUtils.d.ts.map +1 -1
- package/build/types/queries/applyQuery.d.ts.map +1 -1
- package/package.json +10 -10
- package/build/cjs/chunk-FE6Q5R5O.cjs.map +0 -1
- package/build/cjs/createClient-BPK4om7e.d.cts +0 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservableClientImpl.js","names":["Subscription","additionalContext","getWireObjectSet","isObjectSet","extractObjectOrInterfaceType","UnsubscribableWrapper","ObservableClientImpl","constructor","store","__experimentalStore","applyAction","bind","validateAction","observeObject","apiName","pk","options","subFn","objects","observe","observeList","lists","observeAggregation","objectSet","aggregations","observeAsync","observeFunction","queryDef","params","dependsOn","map","dep","instances","objectSetWires","item","dependsOnObjects","push","$apiName","$objectType","$primaryKey","objectSetTypesPromise","length","Promise","all","wire","client","then","types","filter","t","undefined","functions","observeLinks","linkName","objectsArray","Array","isArray","observer","observeSingleLink","observeMultiLinks","observeObjectSet","baseObjectSet","objectSets","invalidateAll","invalidateObjects","invalidateObjectType","type","invalidateFunction","invalidateFunctionsByObject","primaryKey","canonicalizeWhereClause","where","whereCanonicalizer","canonicalize","next","resolvedList","isOptimistic","lastUpdated","fetchMore","resolve","hasMore","status","totalCount","parentSub","obj","sourceType","add","links","srcType","sourceUnderlyingObjectType","totalExpected","perObjectResults","Map","errored","mergeAndEmit","seen","fetchMores","latestUpdated","payload","values","set","payloads","loading","size","some","p","from","fn","String","objKey","error","err","unsubscribe","complete"],"sources":["ObservableClientImpl.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionDefinition,\n ActionEditResponse,\n ActionValidationResponse,\n AggregateOpts,\n CompileTimeMetadata,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n PrimaryKeyType,\n QueryDefinition,\n SimplePropertyDef,\n WhereClause,\n WirePropertyTypes,\n} from \"@osdk/api\";\nimport { Subscription } from \"rxjs\";\nimport type { ActionSignatureFromDef } from \"../../actions/applyAction.js\";\nimport { additionalContext } from \"../../Client.js\";\nimport {\n getWireObjectSet,\n isObjectSet,\n} from \"../../objectSet/createObjectSet.js\";\nimport { extractObjectOrInterfaceType } from \"../../util/extractObjectOrInterfaceType.js\";\nimport type { FunctionPayload } from \"../FunctionPayload.js\";\nimport type { SpecificLinkPayload } from \"../LinkPayload.js\";\nimport type { ListPayload } from \"../ListPayload.js\";\nimport type { ObjectPayload } from \"../ObjectPayload.js\";\nimport type { ObjectSetPayload } from \"../ObjectSetPayload.js\";\nimport type {\n ObservableClient,\n ObserveAggregationArgs,\n ObserveAggregationOptions,\n ObserveAggregationOptionsWithObjectSet,\n ObserveFunctionCallbackArgs,\n ObserveFunctionOptions,\n ObserveListOptions,\n ObserveObjectCallbackArgs,\n ObserveObjectOptions,\n ObserveObjectsCallbackArgs,\n ObserveObjectSetArgs,\n Unsubscribable,\n} from \"../ObservableClient.js\";\nimport type { Observer } from \"../ObservableClient/common.js\";\nimport type { ObserveLinks } from \"../ObservableClient/ObserveLink.js\";\nimport type { AggregationPayloadBase } from \"./aggregation/AggregationQuery.js\";\nimport type { Canonical } from \"./Canonical.js\";\nimport type { ObserveObjectSetOptions } from \"./objectset/ObjectSetQueryOptions.js\";\nimport type { Store } from \"./Store.js\";\nimport { UnsubscribableWrapper } from \"./UnsubscribableWrapper.js\";\n\n/**\n * Implementation of the public ObservableClient interface.\n * - Delegates all operations to the Store for consistency\n * - Serves as the entry point for reactive data management\n * - Ensures proper method binding and API exposure\n *\n * @internal\n */\nexport class ObservableClientImpl implements ObservableClient {\n __experimentalStore: Store;\n\n constructor(store: Store) {\n this.__experimentalStore = store;\n\n this.applyAction = store.applyAction.bind(store);\n this.validateAction = store.validateAction.bind(store);\n }\n\n public observeObject: <T extends ObjectOrInterfaceDefinition>(\n apiName: T[\"apiName\"] | T,\n pk: PrimaryKeyType<T>,\n options: Omit<ObserveObjectOptions<T>, \"apiName\" | \"pk\">,\n subFn: Observer<ObserveObjectCallbackArgs<T>>,\n ) => Unsubscribable = (apiName, pk, options, subFn) => {\n return this.__experimentalStore.objects.observe(\n {\n ...options,\n apiName,\n pk,\n },\n // cast to cross typed to untyped barrier\n subFn as unknown as Observer<ObjectPayload>,\n );\n };\n\n public observeList: <\n T extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = {},\n >(\n options: ObserveListOptions<T, RDPs>,\n subFn: Observer<ObserveObjectsCallbackArgs<T, RDPs>>,\n ) => Unsubscribable = (options, subFn) => {\n return this.__experimentalStore.lists.observe(\n options,\n // cast to cross typed to untyped barrier\n subFn as unknown as Observer<ListPayload>,\n );\n };\n\n public observeAggregation<\n T extends ObjectOrInterfaceDefinition,\n A extends AggregateOpts<T>,\n RDPs extends Record<string, SimplePropertyDef> = {},\n >(\n options: ObserveAggregationOptions<T, A, RDPs>,\n subFn: Observer<ObserveAggregationArgs<T, A>>,\n ): Unsubscribable;\n public observeAggregation<\n T extends ObjectOrInterfaceDefinition,\n A extends AggregateOpts<T>,\n RDPs extends Record<string, SimplePropertyDef> = {},\n >(\n options: ObserveAggregationOptionsWithObjectSet<T, A, RDPs>,\n subFn: Observer<ObserveAggregationArgs<T, A>>,\n ): Promise<Unsubscribable>;\n public observeAggregation<\n T extends ObjectOrInterfaceDefinition,\n A extends AggregateOpts<T>,\n RDPs extends Record<string, SimplePropertyDef> = {},\n >(\n options:\n | ObserveAggregationOptions<T, A, RDPs>\n | ObserveAggregationOptionsWithObjectSet<T, A, RDPs>,\n subFn: Observer<ObserveAggregationArgs<T, A>>,\n ): Unsubscribable | Promise<Unsubscribable> {\n if (options.objectSet) {\n return this.__experimentalStore.aggregations.observeAsync(\n options as ObserveAggregationOptionsWithObjectSet<T, A, RDPs>,\n subFn as Observer<AggregationPayloadBase>,\n );\n }\n return this.__experimentalStore.aggregations.observe(\n options as ObserveAggregationOptions<T, A, RDPs>,\n subFn as Observer<AggregationPayloadBase>,\n );\n }\n\n public observeFunction: <Q extends QueryDefinition<unknown>>(\n queryDef: Q,\n params: Record<string, unknown> | undefined,\n options: ObserveFunctionOptions,\n subFn: Observer<ObserveFunctionCallbackArgs<Q>>,\n ) => Unsubscribable = (queryDef, params, options, subFn) => {\n const dependsOn = options.dependsOn?.map(dep =>\n typeof dep === \"string\" ? dep : dep.apiName\n );\n\n // Partition dependsOnObjects into instances vs ObjectSets\n type ObjectDependency = { $apiName: string; $primaryKey: string | number };\n const instances: ObjectDependency[] = [];\n const objectSetWires: Array<\n ReturnType<typeof getWireObjectSet>\n > = [];\n\n for (const item of options.dependsOnObjects ?? []) {\n if (isObjectSet(item)) {\n objectSetWires.push(getWireObjectSet(item));\n } else {\n instances.push({\n $apiName: item.$objectType ?? item.$apiName,\n $primaryKey: item.$primaryKey,\n });\n }\n }\n\n // Start async extraction of ObjectSet types\n const objectSetTypesPromise = objectSetWires.length > 0\n ? Promise.all(\n objectSetWires.map(wire =>\n extractObjectOrInterfaceType(\n this.__experimentalStore.client[additionalContext],\n wire,\n )\n ),\n ).then(types =>\n types\n .filter((t): t is NonNullable<typeof t> => t != null)\n .map(t => t.apiName)\n )\n : undefined;\n\n return this.__experimentalStore.functions.observe(\n {\n ...options,\n queryDef,\n params,\n dependsOn,\n dependsOnObjects: instances,\n objectSetTypesPromise,\n },\n subFn as unknown as Observer<FunctionPayload>,\n );\n };\n\n public observeLinks: <\n T extends ObjectOrInterfaceDefinition,\n L extends keyof CompileTimeMetadata<T>[\"links\"] & string,\n >(\n objects: Osdk.Instance<T> | Array<Osdk.Instance<T>>,\n linkName: L,\n options: ObserveLinks.Options<T, L>,\n subFn: Observer<\n ObserveLinks.CallbackArgs<\n CompileTimeMetadata<T>[\"links\"][L][\"targetType\"]\n >\n >,\n ) => Unsubscribable = (objects, linkName, options, subFn) => {\n const objectsArray = Array.isArray(objects) ? objects : [objects];\n const observer = subFn as unknown as Observer<SpecificLinkPayload>;\n\n return objectsArray.length <= 1\n ? observeSingleLink(\n this.__experimentalStore,\n objectsArray,\n linkName,\n options,\n observer,\n )\n : observeMultiLinks(\n this.__experimentalStore,\n objectsArray,\n linkName,\n options,\n observer,\n );\n };\n\n public applyAction: <Q extends ActionDefinition<any>>(\n action: Q,\n args: Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0],\n opts?: ObservableClient.ApplyActionOptions,\n ) => Promise<ActionEditResponse>;\n\n public validateAction: <Q extends ActionDefinition<any>>(\n action: Q,\n args: Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0],\n ) => Promise<ActionValidationResponse>;\n\n public observeObjectSet<\n T extends ObjectTypeDefinition,\n RDPs extends Record<\n string,\n WirePropertyTypes | undefined | Array<WirePropertyTypes>\n > = {},\n >(\n baseObjectSet: ObjectSet<T>,\n options: ObserveObjectSetOptions<T, RDPs>,\n subFn: Observer<ObserveObjectSetArgs<T, RDPs>>,\n ): Unsubscribable {\n return this.__experimentalStore.objectSets.observe(\n { baseObjectSet, ...options },\n // cast to cross typed to untyped barrier\n subFn as unknown as Observer<ObjectSetPayload>,\n );\n }\n\n public invalidateAll(): Promise<void> {\n return this.__experimentalStore.invalidateAll();\n }\n\n public invalidateObjects(\n objects:\n | Osdk.Instance<ObjectTypeDefinition>\n | ReadonlyArray<Osdk.Instance<ObjectTypeDefinition>>,\n ): Promise<void> {\n return this.__experimentalStore.invalidateObjects(objects);\n }\n\n public invalidateObjectType<T extends ObjectTypeDefinition>(\n type: T | T[\"apiName\"],\n ): Promise<void> {\n return this.__experimentalStore.invalidateObjectType(type, undefined);\n }\n\n public invalidateFunction(\n apiName: string | QueryDefinition<unknown>,\n params?: Record<string, unknown>,\n ): Promise<void> {\n return this.__experimentalStore.invalidateFunction(apiName, params);\n }\n\n public invalidateFunctionsByObject(\n apiName: string,\n primaryKey: string | number,\n ): Promise<void> {\n return this.__experimentalStore.invalidateFunctionsByObject(\n apiName,\n primaryKey,\n );\n }\n\n public canonicalizeWhereClause<\n T extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = {},\n >(where: WhereClause<T, RDPs>): Canonical<WhereClause<T, RDPs>> {\n return this.__experimentalStore.whereCanonicalizer\n .canonicalize(where) as Canonical<WhereClause<T, RDPs>>;\n }\n}\n\nfunction observeSingleLink(\n store: Store,\n objectsArray: ReadonlyArray<Osdk.Instance<ObjectOrInterfaceDefinition>>,\n linkName: string,\n options: ObserveLinks.Options<ObjectOrInterfaceDefinition, string>,\n observer: Observer<SpecificLinkPayload>,\n): Unsubscribable {\n if (objectsArray.length === 0) {\n observer.next({\n resolvedList: [],\n isOptimistic: false,\n lastUpdated: 0,\n fetchMore: () => Promise.resolve(),\n hasMore: false,\n status: \"loaded\",\n totalCount: \"0\",\n });\n return new UnsubscribableWrapper(new Subscription());\n }\n\n const parentSub = new Subscription();\n\n for (const obj of objectsArray) {\n const sourceType: \"object\" | \"interface\" = obj.$apiName === obj.$objectType\n ? \"object\"\n : \"interface\";\n\n parentSub.add(\n store.links.observe(\n {\n ...options,\n srcType: {\n type: sourceType,\n apiName: obj.$apiName,\n },\n sourceUnderlyingObjectType: obj.$objectType,\n linkName,\n pk: obj.$primaryKey,\n },\n observer,\n ),\n );\n }\n\n return new UnsubscribableWrapper(parentSub);\n}\n\nfunction observeMultiLinks(\n store: Store,\n objectsArray: ReadonlyArray<Osdk.Instance<ObjectOrInterfaceDefinition>>,\n linkName: string,\n options: ObserveLinks.Options<ObjectOrInterfaceDefinition, string>,\n observer: Observer<SpecificLinkPayload>,\n): Unsubscribable {\n const parentSub = new Subscription();\n const totalExpected = objectsArray.length;\n const perObjectResults = new Map<string, SpecificLinkPayload>();\n let errored = false;\n\n function mergeAndEmit() {\n if (errored) {\n return;\n }\n\n const seen = new Map<string, SpecificLinkPayload[\"resolvedList\"][number]>();\n const fetchMores: Array<() => Promise<void>> = [];\n let latestUpdated = 0;\n let hasMore = false;\n let isOptimistic = false;\n\n for (const payload of perObjectResults.values()) {\n for (const obj of payload.resolvedList) {\n seen.set(`${obj.$objectType}:${obj.$primaryKey}`, obj);\n }\n if (payload.lastUpdated > latestUpdated) {\n latestUpdated = payload.lastUpdated;\n }\n if (payload.isOptimistic) {\n isOptimistic = true;\n }\n if (payload.hasMore) {\n hasMore = true;\n fetchMores.push(payload.fetchMore);\n }\n }\n\n const payloads = [...perObjectResults.values()];\n const loading = perObjectResults.size < totalExpected\n || payloads.some(p => p.status === \"init\" || p.status === \"loading\");\n\n observer.next({\n resolvedList: Array.from(seen.values()),\n isOptimistic,\n lastUpdated: latestUpdated,\n fetchMore: hasMore\n ? () => Promise.all(fetchMores.map(fn => fn())).then(() => {})\n : () => Promise.resolve(),\n hasMore,\n status: loading\n ? \"loading\"\n : payloads.some(p => p.status === \"error\")\n ? \"error\"\n : \"loaded\",\n ...(!hasMore ? { totalCount: String(seen.size) } : {}),\n });\n }\n\n for (const obj of objectsArray) {\n const objKey = `${obj.$objectType ?? obj.$apiName}:${obj.$primaryKey}`;\n\n const sourceType: \"object\" | \"interface\" = obj.$apiName === obj.$objectType\n ? \"object\"\n : \"interface\";\n\n parentSub.add(\n store.links.observe(\n {\n ...options,\n srcType: {\n type: sourceType,\n apiName: obj.$apiName,\n },\n sourceUnderlyingObjectType: obj.$objectType,\n linkName,\n pk: obj.$primaryKey,\n },\n {\n next: (payload: SpecificLinkPayload) => {\n if (errored) {\n return;\n }\n perObjectResults.set(objKey, payload);\n mergeAndEmit();\n },\n error: (err: unknown) => {\n if (errored) {\n return;\n }\n errored = true;\n parentSub.unsubscribe();\n observer.error(err);\n },\n // store link queries are long-lived and do not complete\n complete: () => {},\n },\n ),\n );\n }\n\n return new UnsubscribableWrapper(parentSub);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ObservableClientImpl.js","names":["Subscription","additionalContext","getWireObjectSet","isObjectSet","extractObjectOrInterfaceType","UnsubscribableWrapper","ObservableClientImpl","constructor","store","__experimentalStore","applyAction","bind","validateAction","observeObject","apiName","pk","options","subFn","objects","observe","observeList","lists","observeAggregation","objectSet","aggregations","observeAsync","observeFunction","queryDef","params","dependsOn","map","dep","instances","objectSetWires","item","dependsOnObjects","push","$apiName","$objectType","$primaryKey","objectSetTypesPromise","length","Promise","all","wire","client","then","types","filter","t","undefined","functions","observeLinks","linkName","objectsArray","Array","isArray","observer","observeSingleLink","observeMultiLinks","observeObjectSet","baseObjectSet","objectSets","invalidateAll","invalidateObjects","invalidateObjectType","type","invalidateFunction","invalidateFunctionsByObject","primaryKey","canonicalizeWhereClause","where","whereCanonicalizer","canonicalize","next","resolvedList","isOptimistic","lastUpdated","fetchMore","resolve","hasMore","status","totalCount","parentSub","obj","sourceType","add","links","srcType","sourceUnderlyingObjectType","totalExpected","perObjectResults","Map","errored","mergeAndEmit","seen","fetchMores","latestUpdated","payload","values","set","payloads","loading","size","some","p","from","fn","String","objKey","error","err","unsubscribe","complete"],"sources":["ObservableClientImpl.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionDefinition,\n ActionEditResponse,\n ActionValidationResponse,\n AggregateOpts,\n CompileTimeMetadata,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n PrimaryKeyType,\n QueryDefinition,\n SimplePropertyDef,\n WhereClause,\n WirePropertyTypes,\n} from \"@osdk/api\";\nimport { Subscription } from \"rxjs\";\nimport type { ActionSignatureFromDef } from \"../../actions/applyAction.js\";\nimport { additionalContext } from \"../../Client.js\";\nimport {\n getWireObjectSet,\n isObjectSet,\n} from \"../../objectSet/createObjectSet.js\";\nimport { extractObjectOrInterfaceType } from \"../../util/extractObjectOrInterfaceType.js\";\nimport type { FunctionPayload } from \"../FunctionPayload.js\";\nimport type { SpecificLinkPayload } from \"../LinkPayload.js\";\nimport type { ListPayload } from \"../ListPayload.js\";\nimport type { ObjectPayload } from \"../ObjectPayload.js\";\nimport type { ObjectSetPayload } from \"../ObjectSetPayload.js\";\nimport type {\n ObservableClient,\n ObserveAggregationArgs,\n ObserveAggregationOptions,\n ObserveAggregationOptionsWithObjectSet,\n ObserveFunctionCallbackArgs,\n ObserveFunctionOptions,\n ObserveListOptions,\n ObserveObjectCallbackArgs,\n ObserveObjectOptions,\n ObserveObjectsCallbackArgs,\n ObserveObjectSetArgs,\n Unsubscribable,\n} from \"../ObservableClient.js\";\nimport type { Observer } from \"../ObservableClient/common.js\";\nimport type { ObserveLinks } from \"../ObservableClient/ObserveLink.js\";\nimport type { AggregationPayloadBase } from \"./aggregation/AggregationQuery.js\";\nimport type { Canonical } from \"./Canonical.js\";\nimport type { ObserveObjectSetOptions } from \"./objectset/ObjectSetQueryOptions.js\";\nimport type { Store } from \"./Store.js\";\nimport { UnsubscribableWrapper } from \"./UnsubscribableWrapper.js\";\n\n/**\n * Implementation of the public ObservableClient interface.\n * - Delegates all operations to the Store for consistency\n * - Serves as the entry point for reactive data management\n * - Ensures proper method binding and API exposure\n *\n * @internal\n */\nexport class ObservableClientImpl implements ObservableClient {\n __experimentalStore: Store;\n\n constructor(store: Store) {\n this.__experimentalStore = store;\n\n this.applyAction = store.applyAction.bind(store);\n this.validateAction = store.validateAction.bind(store);\n }\n\n public observeObject: <T extends ObjectOrInterfaceDefinition>(\n apiName: T[\"apiName\"] | T,\n pk: PrimaryKeyType<T>,\n options: Omit<ObserveObjectOptions<T>, \"apiName\" | \"pk\">,\n subFn: Observer<ObserveObjectCallbackArgs<T>>,\n ) => Unsubscribable = (apiName, pk, options, subFn) => {\n return this.__experimentalStore.objects.observe(\n {\n ...options,\n apiName,\n pk,\n },\n // cast to cross typed to untyped barrier\n subFn as unknown as Observer<ObjectPayload>,\n );\n };\n\n public observeList: <\n T extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = {},\n >(\n options: ObserveListOptions<T, RDPs>,\n subFn: Observer<ObserveObjectsCallbackArgs<T, RDPs>>,\n ) => Unsubscribable = (options, subFn) => {\n return this.__experimentalStore.lists.observe(\n options,\n // cast to cross typed to untyped barrier\n subFn as unknown as Observer<ListPayload>,\n );\n };\n\n public observeAggregation<\n T extends ObjectOrInterfaceDefinition,\n A extends AggregateOpts<T>,\n RDPs extends Record<string, SimplePropertyDef> = {},\n >(\n options: ObserveAggregationOptions<T, A, RDPs>,\n subFn: Observer<ObserveAggregationArgs<T, A>>,\n ): Unsubscribable;\n public observeAggregation<\n T extends ObjectOrInterfaceDefinition,\n A extends AggregateOpts<T>,\n RDPs extends Record<string, SimplePropertyDef> = {},\n >(\n options: ObserveAggregationOptionsWithObjectSet<T, A, RDPs>,\n subFn: Observer<ObserveAggregationArgs<T, A>>,\n ): Promise<Unsubscribable>;\n public observeAggregation<\n T extends ObjectOrInterfaceDefinition,\n A extends AggregateOpts<T>,\n RDPs extends Record<string, SimplePropertyDef> = {},\n >(\n options:\n | ObserveAggregationOptions<T, A, RDPs>\n | ObserveAggregationOptionsWithObjectSet<T, A, RDPs>,\n subFn: Observer<ObserveAggregationArgs<T, A>>,\n ): Unsubscribable | Promise<Unsubscribable> {\n if (options.objectSet) {\n return this.__experimentalStore.aggregations.observeAsync(\n options as ObserveAggregationOptionsWithObjectSet<T, A, RDPs>,\n subFn as Observer<AggregationPayloadBase>,\n );\n }\n return this.__experimentalStore.aggregations.observe(\n options as ObserveAggregationOptions<T, A, RDPs>,\n subFn as Observer<AggregationPayloadBase>,\n );\n }\n\n public observeFunction: <Q extends QueryDefinition<unknown>>(\n queryDef: Q,\n params: Record<string, unknown> | undefined,\n options: ObserveFunctionOptions,\n subFn: Observer<ObserveFunctionCallbackArgs<Q>>,\n ) => Unsubscribable = (queryDef, params, options, subFn) => {\n const dependsOn = options.dependsOn?.map(dep =>\n typeof dep === \"string\" ? dep : dep.apiName\n );\n\n // Partition dependsOnObjects into instances vs ObjectSets\n type ObjectDependency = { $apiName: string; $primaryKey: string | number };\n const instances: ObjectDependency[] = [];\n const objectSetWires: Array<\n ReturnType<typeof getWireObjectSet>\n > = [];\n\n for (const item of options.dependsOnObjects ?? []) {\n if (isObjectSet(item)) {\n objectSetWires.push(getWireObjectSet(item));\n } else {\n instances.push({\n $apiName: item.$objectType ?? item.$apiName,\n $primaryKey: item.$primaryKey,\n });\n }\n }\n\n // Start async extraction of ObjectSet types\n const objectSetTypesPromise = objectSetWires.length > 0\n ? Promise.all(\n objectSetWires.map(wire =>\n extractObjectOrInterfaceType(\n this.__experimentalStore.client[additionalContext],\n wire,\n )\n ),\n ).then(types =>\n types\n .filter((t): t is NonNullable<typeof t> => t != null)\n .map(t => t.apiName)\n )\n : undefined;\n\n return this.__experimentalStore.functions.observe(\n {\n ...options,\n queryDef,\n params,\n dependsOn,\n dependsOnObjects: instances,\n objectSetTypesPromise,\n },\n subFn as unknown as Observer<FunctionPayload>,\n );\n };\n\n public observeLinks: <\n T extends ObjectOrInterfaceDefinition,\n L extends keyof CompileTimeMetadata<T>[\"links\"] & string,\n >(\n objects: Osdk.Instance<T> | Array<Osdk.Instance<T>>,\n linkName: L,\n options: ObserveLinks.Options<T, L>,\n subFn: Observer<\n ObserveLinks.CallbackArgs<\n CompileTimeMetadata<T>[\"links\"][L][\"targetType\"]\n >\n >,\n ) => Unsubscribable = (objects, linkName, options, subFn) => {\n const objectsArray = Array.isArray(objects) ? objects : [objects];\n const observer = subFn as unknown as Observer<SpecificLinkPayload>;\n\n return objectsArray.length <= 1\n ? observeSingleLink(\n this.__experimentalStore,\n objectsArray,\n linkName,\n options,\n observer,\n )\n : observeMultiLinks(\n this.__experimentalStore,\n objectsArray,\n linkName,\n options,\n observer,\n );\n };\n\n public applyAction: <Q extends ActionDefinition<any>>(\n action: Q,\n args: Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0],\n opts?: ObservableClient.ApplyActionOptions,\n ) => Promise<ActionEditResponse>;\n\n public validateAction: <Q extends ActionDefinition<any>>(\n action: Q,\n args: Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0],\n ) => Promise<ActionValidationResponse>;\n\n public observeObjectSet<\n T extends ObjectOrInterfaceDefinition,\n RDPs extends Record<\n string,\n WirePropertyTypes | undefined | Array<WirePropertyTypes>\n > = {},\n >(\n baseObjectSet: ObjectSet<T>,\n options: ObserveObjectSetOptions<T, RDPs>,\n subFn: Observer<ObserveObjectSetArgs<T, RDPs>>,\n ): Unsubscribable {\n return this.__experimentalStore.objectSets.observe(\n { baseObjectSet, ...options },\n // cast to cross typed to untyped barrier\n subFn as unknown as Observer<ObjectSetPayload>,\n );\n }\n\n public invalidateAll(): Promise<void> {\n return this.__experimentalStore.invalidateAll();\n }\n\n public invalidateObjects(\n objects:\n | Osdk.Instance<ObjectTypeDefinition>\n | ReadonlyArray<Osdk.Instance<ObjectTypeDefinition>>,\n ): Promise<void> {\n return this.__experimentalStore.invalidateObjects(objects);\n }\n\n public invalidateObjectType<T extends ObjectTypeDefinition>(\n type: T | T[\"apiName\"],\n ): Promise<void> {\n return this.__experimentalStore.invalidateObjectType(type, undefined);\n }\n\n public invalidateFunction(\n apiName: string | QueryDefinition<unknown>,\n params?: Record<string, unknown>,\n ): Promise<void> {\n return this.__experimentalStore.invalidateFunction(apiName, params);\n }\n\n public invalidateFunctionsByObject(\n apiName: string,\n primaryKey: string | number,\n ): Promise<void> {\n return this.__experimentalStore.invalidateFunctionsByObject(\n apiName,\n primaryKey,\n );\n }\n\n public canonicalizeWhereClause<\n T extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = {},\n >(where: WhereClause<T, RDPs>): Canonical<WhereClause<T, RDPs>> {\n return this.__experimentalStore.whereCanonicalizer\n .canonicalize(where) as Canonical<WhereClause<T, RDPs>>;\n }\n}\n\nfunction observeSingleLink(\n store: Store,\n objectsArray: ReadonlyArray<Osdk.Instance<ObjectOrInterfaceDefinition>>,\n linkName: string,\n options: ObserveLinks.Options<ObjectOrInterfaceDefinition, string>,\n observer: Observer<SpecificLinkPayload>,\n): Unsubscribable {\n if (objectsArray.length === 0) {\n observer.next({\n resolvedList: [],\n isOptimistic: false,\n lastUpdated: 0,\n fetchMore: () => Promise.resolve(),\n hasMore: false,\n status: \"loaded\",\n totalCount: \"0\",\n });\n return new UnsubscribableWrapper(new Subscription());\n }\n\n const parentSub = new Subscription();\n\n for (const obj of objectsArray) {\n const sourceType: \"object\" | \"interface\" = obj.$apiName === obj.$objectType\n ? \"object\"\n : \"interface\";\n\n parentSub.add(\n store.links.observe(\n {\n ...options,\n srcType: {\n type: sourceType,\n apiName: obj.$apiName,\n },\n sourceUnderlyingObjectType: obj.$objectType,\n linkName,\n pk: obj.$primaryKey,\n },\n observer,\n ),\n );\n }\n\n return new UnsubscribableWrapper(parentSub);\n}\n\nfunction observeMultiLinks(\n store: Store,\n objectsArray: ReadonlyArray<Osdk.Instance<ObjectOrInterfaceDefinition>>,\n linkName: string,\n options: ObserveLinks.Options<ObjectOrInterfaceDefinition, string>,\n observer: Observer<SpecificLinkPayload>,\n): Unsubscribable {\n const parentSub = new Subscription();\n const totalExpected = objectsArray.length;\n const perObjectResults = new Map<string, SpecificLinkPayload>();\n let errored = false;\n\n function mergeAndEmit() {\n if (errored) {\n return;\n }\n\n const seen = new Map<\n string,\n NonNullable<SpecificLinkPayload[\"resolvedList\"]>[number]\n >();\n const fetchMores: Array<() => Promise<void>> = [];\n let latestUpdated = 0;\n let hasMore = false;\n let isOptimistic = false;\n\n for (const payload of perObjectResults.values()) {\n for (const obj of payload.resolvedList ?? []) {\n seen.set(`${obj.$objectType}:${obj.$primaryKey}`, obj);\n }\n if (payload.lastUpdated > latestUpdated) {\n latestUpdated = payload.lastUpdated;\n }\n if (payload.isOptimistic) {\n isOptimistic = true;\n }\n if (payload.hasMore) {\n hasMore = true;\n fetchMores.push(payload.fetchMore);\n }\n }\n\n const payloads = [...perObjectResults.values()];\n const loading = perObjectResults.size < totalExpected\n || payloads.some(p => p.status === \"init\" || p.status === \"loading\");\n\n observer.next({\n resolvedList: Array.from(seen.values()),\n isOptimistic,\n lastUpdated: latestUpdated,\n fetchMore: hasMore\n ? () => Promise.all(fetchMores.map(fn => fn())).then(() => {})\n : () => Promise.resolve(),\n hasMore,\n status: loading\n ? \"loading\"\n : payloads.some(p => p.status === \"error\")\n ? \"error\"\n : \"loaded\",\n ...(!hasMore ? { totalCount: String(seen.size) } : {}),\n });\n }\n\n for (const obj of objectsArray) {\n const objKey = `${obj.$objectType ?? obj.$apiName}:${obj.$primaryKey}`;\n\n const sourceType: \"object\" | \"interface\" = obj.$apiName === obj.$objectType\n ? \"object\"\n : \"interface\";\n\n parentSub.add(\n store.links.observe(\n {\n ...options,\n srcType: {\n type: sourceType,\n apiName: obj.$apiName,\n },\n sourceUnderlyingObjectType: obj.$objectType,\n linkName,\n pk: obj.$primaryKey,\n },\n {\n next: (payload: SpecificLinkPayload) => {\n if (errored) {\n return;\n }\n perObjectResults.set(objKey, payload);\n mergeAndEmit();\n },\n error: (err: unknown) => {\n if (errored) {\n return;\n }\n errored = true;\n parentSub.unsubscribe();\n observer.error(err);\n },\n // store link queries are long-lived and do not complete\n complete: () => {},\n },\n ),\n );\n }\n\n return new UnsubscribableWrapper(parentSub);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -324,7 +324,7 @@ describe(Store, () => {
|
|
|
324
324
|
dedupeInterval: 60_000
|
|
325
325
|
}, linkSubFn1);
|
|
326
326
|
await waitForCall(linkSubFn1);
|
|
327
|
-
expectSingleLinkCallAndClear(linkSubFn1,
|
|
327
|
+
expectSingleLinkCallAndClear(linkSubFn1, undefined, {
|
|
328
328
|
status: "loading"
|
|
329
329
|
});
|
|
330
330
|
await waitForCall(linkSubFn1);
|
|
@@ -370,7 +370,7 @@ describe(Store, () => {
|
|
|
370
370
|
dedupeInterval: 60_000
|
|
371
371
|
}, linkSubFn));
|
|
372
372
|
await waitForCall(linkSubFn);
|
|
373
|
-
expectSingleLinkCallAndClear(linkSubFn,
|
|
373
|
+
expectSingleLinkCallAndClear(linkSubFn, undefined, {
|
|
374
374
|
status: "loading"
|
|
375
375
|
});
|
|
376
376
|
await waitForCall(linkSubFn);
|
|
@@ -475,7 +475,7 @@ describe(Store, () => {
|
|
|
475
475
|
await waitForLoaded(linkSubFn);
|
|
476
476
|
const lastPayload = getLastPayload(linkSubFn);
|
|
477
477
|
expect(lastPayload.resolvedList).toHaveLength(1);
|
|
478
|
-
expect(lastPayload.resolvedList[0].$primaryKey).toBe("101");
|
|
478
|
+
expect(lastPayload.resolvedList?.[0].$primaryKey).toBe("101");
|
|
479
479
|
expect(lastPayload.totalCount).toBe("1");
|
|
480
480
|
} finally {
|
|
481
481
|
dataStore.unregisterLink({
|
|
@@ -559,7 +559,7 @@ describe(Store, () => {
|
|
|
559
559
|
// @ts-expect-error crossing typed/untyped barrier for test
|
|
560
560
|
linkSubFn));
|
|
561
561
|
await waitForCall(linkSubFn);
|
|
562
|
-
expectSingleLinkCallAndClear(linkSubFn,
|
|
562
|
+
expectSingleLinkCallAndClear(linkSubFn, undefined, {
|
|
563
563
|
status: "loading"
|
|
564
564
|
});
|
|
565
565
|
await waitForCall(linkSubFn);
|
|
@@ -1121,10 +1121,10 @@ describe(Store, () => {
|
|
|
1121
1121
|
}, ifaceSub));
|
|
1122
1122
|
await waitForCall(listSub1);
|
|
1123
1123
|
await waitForCall(ifaceSub);
|
|
1124
|
-
expectSingleListCallAndClear(listSub1,
|
|
1124
|
+
expectSingleListCallAndClear(listSub1, undefined, {
|
|
1125
1125
|
status: "loading"
|
|
1126
1126
|
});
|
|
1127
|
-
expectSingleListCallAndClear(ifaceSub,
|
|
1127
|
+
expectSingleListCallAndClear(ifaceSub, undefined, {
|
|
1128
1128
|
status: "loading"
|
|
1129
1129
|
});
|
|
1130
1130
|
await waitForCall(listSub1);
|
|
@@ -1286,7 +1286,7 @@ describe(Store, () => {
|
|
|
1286
1286
|
pageSize: 1
|
|
1287
1287
|
}, listSub));
|
|
1288
1288
|
await waitForCall(listSub, 1);
|
|
1289
|
-
expectSingleListCallAndClear(listSub,
|
|
1289
|
+
expectSingleListCallAndClear(listSub, undefined, {
|
|
1290
1290
|
status: "loading"
|
|
1291
1291
|
});
|
|
1292
1292
|
await waitForCall(listSub, 1);
|
|
@@ -1316,7 +1316,7 @@ describe(Store, () => {
|
|
|
1316
1316
|
pageSize: 1
|
|
1317
1317
|
}, listSub));
|
|
1318
1318
|
await waitForCall(listSub, 1);
|
|
1319
|
-
expectSingleListCallAndClear(listSub,
|
|
1319
|
+
expectSingleListCallAndClear(listSub, undefined, {
|
|
1320
1320
|
status: "loading"
|
|
1321
1321
|
});
|
|
1322
1322
|
await waitForCall(listSub, 1);
|
|
@@ -1405,7 +1405,7 @@ describe(Store, () => {
|
|
|
1405
1405
|
|
|
1406
1406
|
// initial loading state
|
|
1407
1407
|
expect(sub.next).toHaveBeenCalledOnce();
|
|
1408
|
-
expectSingleListCallAndClear(sub,
|
|
1408
|
+
expectSingleListCallAndClear(sub, undefined, {
|
|
1409
1409
|
status: "loading"
|
|
1410
1410
|
});
|
|
1411
1411
|
await waitForCall(sub.error);
|
|
@@ -1600,7 +1600,7 @@ describe(Store, () => {
|
|
|
1600
1600
|
mode: "offline"
|
|
1601
1601
|
}, subListUnordered));
|
|
1602
1602
|
await waitForCall(subListUnordered);
|
|
1603
|
-
expectSingleListCallAndClear(subListUnordered,
|
|
1603
|
+
expectSingleListCallAndClear(subListUnordered, undefined, {
|
|
1604
1604
|
status: "init"
|
|
1605
1605
|
});
|
|
1606
1606
|
defer(store.lists.observe({
|
|
@@ -1608,7 +1608,7 @@ describe(Store, () => {
|
|
|
1608
1608
|
mode: "offline"
|
|
1609
1609
|
}, subListOrdered));
|
|
1610
1610
|
await waitForCall(subListOrdered);
|
|
1611
|
-
expectSingleListCallAndClear(subListOrdered,
|
|
1611
|
+
expectSingleListCallAndClear(subListOrdered, undefined, {
|
|
1612
1612
|
status: "init"
|
|
1613
1613
|
});
|
|
1614
1614
|
});
|