@osdk/client 2.0.0-beta.13 → 2.0.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 +40 -0
- package/build/browser/Client.d.ts +39 -0
- package/build/browser/Client.d.ts.map +1 -0
- package/build/browser/Client.js +20 -0
- package/build/browser/Client.js.map +1 -0
- package/build/browser/Definitions.test.d.ts +2 -0
- package/build/browser/Definitions.test.d.ts.map +1 -0
- package/build/browser/Definitions.test.js +35 -0
- package/build/browser/Definitions.test.js.map +1 -0
- package/build/browser/Logger.d.ts +19 -0
- package/build/browser/Logger.d.ts.map +1 -0
- package/build/browser/Logger.js +17 -0
- package/build/browser/Logger.js.map +1 -0
- package/build/browser/MinimalClientContext.d.ts +26 -0
- package/build/browser/MinimalClientContext.d.ts.map +1 -0
- package/build/browser/MinimalClientContext.js +17 -0
- package/build/browser/MinimalClientContext.js.map +1 -0
- package/build/browser/ResultOrError.d.ts +12 -0
- package/build/browser/ResultOrError.d.ts.map +1 -0
- package/build/browser/ResultOrError.js +19 -0
- package/build/browser/ResultOrError.js.map +1 -0
- package/build/browser/SatisfiesSemver.d.ts +4 -0
- package/build/browser/SatisfiesSemver.d.ts.map +1 -0
- package/build/browser/SatisfiesSemver.js +17 -0
- package/build/browser/SatisfiesSemver.js.map +1 -0
- package/build/browser/SatisfiesSemver.test.d.ts +2 -0
- package/build/browser/SatisfiesSemver.test.d.ts.map +1 -0
- package/build/browser/SatisfiesSemver.test.js +69 -0
- package/build/browser/SatisfiesSemver.test.js.map +1 -0
- package/build/browser/__unstable/ConjureSupport.d.ts +55 -0
- package/build/browser/__unstable/ConjureSupport.d.ts.map +1 -0
- package/build/browser/__unstable/ConjureSupport.js +174 -0
- package/build/browser/__unstable/ConjureSupport.js.map +1 -0
- package/build/browser/__unstable/createBulkLinksAsyncIterFactory.d.ts +10 -0
- package/build/browser/__unstable/createBulkLinksAsyncIterFactory.d.ts.map +1 -0
- package/build/browser/__unstable/createBulkLinksAsyncIterFactory.js +114 -0
- package/build/browser/__unstable/createBulkLinksAsyncIterFactory.js.map +1 -0
- package/build/browser/actions/ActionValidationError.d.ts +6 -0
- package/build/browser/actions/ActionValidationError.d.ts.map +1 -0
- package/build/browser/actions/ActionValidationError.js +23 -0
- package/build/browser/actions/ActionValidationError.js.map +1 -0
- package/build/browser/actions/actions.test.d.ts +2 -0
- package/build/browser/actions/actions.test.d.ts.map +1 -0
- package/build/browser/actions/actions.test.js +323 -0
- package/build/browser/actions/actions.test.js.map +1 -0
- package/build/browser/actions/applyAction.d.ts +30 -0
- package/build/browser/actions/applyAction.d.ts.map +1 -0
- package/build/browser/actions/applyAction.js +114 -0
- package/build/browser/actions/applyAction.js.map +1 -0
- package/build/browser/createAttachmentFromRid.d.ts +10 -0
- package/build/browser/createAttachmentFromRid.d.ts.map +1 -0
- package/build/browser/createAttachmentFromRid.js +38 -0
- package/build/browser/createAttachmentFromRid.js.map +1 -0
- package/build/browser/createClient.d.ts +6 -0
- package/build/browser/createClient.d.ts.map +1 -0
- package/build/browser/createClient.js +88 -0
- package/build/browser/createClient.js.map +1 -0
- package/build/browser/createClient.test.d.ts +2 -0
- package/build/browser/createClient.test.d.ts.map +1 -0
- package/build/browser/createClient.test.js +45 -0
- package/build/browser/createClient.test.js.map +1 -0
- package/build/browser/createMinimalClient.d.ts +2 -0
- package/build/browser/createMinimalClient.d.ts.map +1 -0
- package/build/browser/createMinimalClient.js +42 -0
- package/build/browser/createMinimalClient.js.map +1 -0
- package/build/browser/createPlatformClient.d.ts +17 -0
- package/build/browser/createPlatformClient.d.ts.map +1 -0
- package/build/browser/createPlatformClient.js +33 -0
- package/build/browser/createPlatformClient.js.map +1 -0
- package/build/browser/createTimeseriesProperty.d.ts +14 -0
- package/build/browser/createTimeseriesProperty.d.ts.map +1 -0
- package/build/browser/createTimeseriesProperty.js +79 -0
- package/build/browser/createTimeseriesProperty.js.map +1 -0
- package/build/browser/definitions/LinkDefinitions.test.d.ts +2 -0
- package/build/browser/definitions/LinkDefinitions.test.d.ts.map +1 -0
- package/build/browser/definitions/LinkDefinitions.test.js +41 -0
- package/build/browser/definitions/LinkDefinitions.test.js.map +1 -0
- package/build/browser/fetchMetadata.d.ts +2 -0
- package/build/browser/fetchMetadata.d.ts.map +1 -0
- package/build/browser/fetchMetadata.js +35 -0
- package/build/browser/fetchMetadata.js.map +1 -0
- package/build/browser/fetchMetadata.test.d.ts +2 -0
- package/build/browser/fetchMetadata.test.d.ts.map +1 -0
- package/build/browser/fetchMetadata.test.js +218 -0
- package/build/browser/fetchMetadata.test.js.map +1 -0
- package/build/browser/index.d.ts +13 -0
- package/build/browser/index.d.ts.map +1 -0
- package/build/browser/index.js +22 -725
- package/build/browser/index.js.map +1 -1
- package/build/browser/intellisense.test.d.ts +2 -0
- package/build/browser/intellisense.test.d.ts.map +1 -0
- package/build/browser/intellisense.test.helpers/callsQueryAcceptsObject.d.ts +2 -0
- package/build/browser/intellisense.test.helpers/callsQueryAcceptsObject.d.ts.map +1 -0
- package/build/browser/intellisense.test.helpers/callsQueryAcceptsObject.js +25 -0
- package/build/browser/intellisense.test.helpers/callsQueryAcceptsObject.js.map +1 -0
- package/build/browser/intellisense.test.js +86 -0
- package/build/browser/intellisense.test.js.map +1 -0
- package/build/browser/internal/conversions/legacyToModernSingleAggregationResult.d.ts +2 -0
- package/build/browser/internal/conversions/legacyToModernSingleAggregationResult.d.ts.map +1 -0
- package/build/browser/internal/conversions/legacyToModernSingleAggregationResult.js +34 -0
- package/build/browser/internal/conversions/legacyToModernSingleAggregationResult.js.map +1 -0
- package/build/browser/internal/conversions/modernToLegacyAggregationClause.d.ts +2 -0
- package/build/browser/internal/conversions/modernToLegacyAggregationClause.d.ts.map +1 -0
- package/build/browser/internal/conversions/modernToLegacyAggregationClause.js +38 -0
- package/build/browser/internal/conversions/modernToLegacyAggregationClause.js.map +1 -0
- package/build/browser/internal/conversions/modernToLegacyGroupByClause.d.ts +2 -0
- package/build/browser/internal/conversions/modernToLegacyGroupByClause.d.ts.map +1 -0
- package/build/browser/internal/conversions/modernToLegacyGroupByClause.js +62 -0
- package/build/browser/internal/conversions/modernToLegacyGroupByClause.js.map +1 -0
- package/build/browser/internal/conversions/modernToLegacyWhereClause.d.ts +2 -0
- package/build/browser/internal/conversions/modernToLegacyWhereClause.d.ts.map +1 -0
- package/build/browser/internal/conversions/modernToLegacyWhereClause.js +144 -0
- package/build/browser/internal/conversions/modernToLegacyWhereClause.js.map +1 -0
- package/build/browser/internal/conversions/modernToLegacyWhereClause.test.d.ts +2 -0
- package/build/browser/internal/conversions/modernToLegacyWhereClause.test.d.ts.map +1 -0
- package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js +486 -0
- package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -0
- package/build/browser/object/AttachmentUpload.d.ts +4 -0
- package/build/browser/object/AttachmentUpload.d.ts.map +1 -0
- package/build/browser/object/AttachmentUpload.js +27 -0
- package/build/browser/object/AttachmentUpload.js.map +1 -0
- package/build/browser/object/Cache.d.ts +2 -0
- package/build/browser/object/Cache.d.ts.map +1 -0
- package/build/browser/object/Cache.js +76 -0
- package/build/browser/object/Cache.js.map +1 -0
- package/build/browser/object/Cache.test.d.ts +11 -0
- package/build/browser/object/Cache.test.d.ts.map +1 -0
- package/build/browser/object/Cache.test.js +283 -0
- package/build/browser/object/Cache.test.js.map +1 -0
- package/build/browser/object/SimpleCache.d.ts +38 -0
- package/build/browser/object/SimpleCache.d.ts.map +1 -0
- package/build/browser/object/SimpleCache.js +67 -0
- package/build/browser/object/SimpleCache.js.map +1 -0
- package/build/browser/object/aggregate.d.ts +2 -0
- package/build/browser/object/aggregate.d.ts.map +1 -0
- package/build/browser/object/aggregate.js +69 -0
- package/build/browser/object/aggregate.js.map +1 -0
- package/build/browser/object/aggregate.test.d.ts +2 -0
- package/build/browser/object/aggregate.test.d.ts.map +1 -0
- package/build/browser/object/aggregate.test.js +398 -0
- package/build/browser/object/aggregate.test.js.map +1 -0
- package/build/browser/object/attachment.test.d.ts +2 -0
- package/build/browser/object/attachment.test.d.ts.map +1 -0
- package/build/browser/object/attachment.test.js +55 -0
- package/build/browser/object/attachment.test.js.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.d.ts +11 -0
- package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.d.ts.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.js +17 -0
- package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.d.ts +13 -0
- package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.d.ts.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.js +22 -0
- package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.js.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/ObjectHolder.d.ts +2 -0
- package/build/browser/object/convertWireToOsdkObjects/ObjectHolder.d.ts.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/ObjectHolder.js +17 -0
- package/build/browser/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.d.ts +2 -0
- package/build/browser/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.d.ts.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js +48 -0
- package/build/browser/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/PropertyDescriptorRecord.d.ts +8 -0
- package/build/browser/object/convertWireToOsdkObjects/PropertyDescriptorRecord.d.ts.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/PropertyDescriptorRecord.js +17 -0
- package/build/browser/object/convertWireToOsdkObjects/PropertyDescriptorRecord.js.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.d.ts +2 -0
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.d.ts.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +82 -0
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.d.ts +2 -0
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.d.ts.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +114 -0
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/getDollarAs.d.ts +3 -0
- package/build/browser/object/convertWireToOsdkObjects/getDollarAs.d.ts.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/getDollarAs.js +55 -0
- package/build/browser/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/getDollarLink.d.ts +2 -0
- package/build/browser/object/convertWireToOsdkObjects/getDollarLink.d.ts.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js +60 -0
- package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects.d.ts +2 -0
- package/build/browser/object/convertWireToOsdkObjects.d.ts.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects.js +150 -0
- package/build/browser/object/convertWireToOsdkObjects.js.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects.test.d.ts +2 -0
- package/build/browser/object/convertWireToOsdkObjects.test.d.ts.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects.test.js +254 -0
- package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -0
- package/build/browser/object/fetchPage.d.ts +3 -0
- package/build/browser/object/fetchPage.d.ts.map +1 -0
- package/build/browser/object/fetchPage.js +135 -0
- package/build/browser/object/fetchPage.js.map +1 -0
- package/build/browser/object/fetchPage.test.d.ts +2 -0
- package/build/browser/object/fetchPage.test.d.ts.map +1 -0
- package/build/browser/object/fetchPage.test.js +106 -0
- package/build/browser/object/fetchPage.test.js.map +1 -0
- package/build/browser/object/fetchSingle.d.ts +2 -0
- package/build/browser/object/fetchSingle.d.ts.map +1 -0
- package/build/browser/object/fetchSingle.js +47 -0
- package/build/browser/object/fetchSingle.js.map +1 -0
- package/build/browser/object/object.test.d.ts +12 -0
- package/build/browser/object/object.test.d.ts.map +1 -0
- package/build/browser/object/object.test.js +179 -0
- package/build/browser/object/object.test.js.map +1 -0
- package/build/browser/object/timeseries.test.d.ts +2 -0
- package/build/browser/object/timeseries.test.d.ts.map +1 -0
- package/build/browser/object/timeseries.test.js +163 -0
- package/build/browser/object/timeseries.test.js.map +1 -0
- package/build/browser/objectSet/ObjectSet.test.d.ts +2 -0
- package/build/browser/objectSet/ObjectSet.test.d.ts.map +1 -0
- package/build/browser/objectSet/ObjectSet.test.js +313 -0
- package/build/browser/objectSet/ObjectSet.test.js.map +1 -0
- package/build/browser/objectSet/ObjectSetFactory.d.ts +2 -0
- package/build/browser/objectSet/ObjectSetFactory.d.ts.map +1 -0
- package/build/browser/objectSet/ObjectSetFactory.js +17 -0
- package/build/browser/objectSet/ObjectSetFactory.js.map +1 -0
- package/build/browser/objectSet/ObjectSetListenerWebsocket.d.ts +7 -0
- package/build/browser/objectSet/ObjectSetListenerWebsocket.d.ts.map +1 -0
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js +533 -0
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -0
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.d.ts +2 -0
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.d.ts.map +1 -0
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +338 -0
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -0
- package/build/browser/objectSet/conjureUnionType.d.ts +13 -0
- package/build/browser/objectSet/conjureUnionType.d.ts.map +1 -0
- package/build/browser/objectSet/conjureUnionType.js +27 -0
- package/build/browser/objectSet/conjureUnionType.js.map +1 -0
- package/build/browser/objectSet/createObjectSet.d.ts +2 -0
- package/build/browser/objectSet/createObjectSet.d.ts.map +1 -0
- package/build/browser/objectSet/createObjectSet.js +136 -0
- package/build/browser/objectSet/createObjectSet.js.map +1 -0
- package/build/browser/objectSet/toConjureObjectSet.d.ts +2 -0
- package/build/browser/objectSet/toConjureObjectSet.d.ts.map +1 -0
- package/build/browser/objectSet/toConjureObjectSet.js +158 -0
- package/build/browser/objectSet/toConjureObjectSet.js.map +1 -0
- package/build/browser/ontology/OntologyProvider.d.ts +32 -0
- package/build/browser/ontology/OntologyProvider.d.ts.map +1 -0
- package/build/browser/ontology/OntologyProvider.js +17 -0
- package/build/browser/ontology/OntologyProvider.js.map +1 -0
- package/build/browser/ontology/StandardOntologyProvider.d.ts +5 -0
- package/build/browser/ontology/StandardOntologyProvider.d.ts.map +1 -0
- package/build/browser/ontology/StandardOntologyProvider.js +59 -0
- package/build/browser/ontology/StandardOntologyProvider.js.map +1 -0
- package/build/browser/ontology/StandardOntologyProvider.test.d.ts +2 -0
- package/build/browser/ontology/StandardOntologyProvider.test.d.ts.map +1 -0
- package/build/browser/ontology/StandardOntologyProvider.test.js +48 -0
- package/build/browser/ontology/StandardOntologyProvider.test.js.map +1 -0
- package/build/browser/ontology/loadActionMetadata.d.ts +4 -0
- package/build/browser/ontology/loadActionMetadata.d.ts.map +1 -0
- package/build/browser/ontology/loadActionMetadata.js +22 -0
- package/build/browser/ontology/loadActionMetadata.js.map +1 -0
- package/build/browser/ontology/loadFullObjectMetadata.d.ts +6 -0
- package/build/browser/ontology/loadFullObjectMetadata.d.ts.map +1 -0
- package/build/browser/ontology/loadFullObjectMetadata.js +28 -0
- package/build/browser/ontology/loadFullObjectMetadata.js.map +1 -0
- package/build/browser/ontology/loadInterfaceMetadata.d.ts +4 -0
- package/build/browser/ontology/loadInterfaceMetadata.d.ts.map +1 -0
- package/build/browser/ontology/loadInterfaceMetadata.js +24 -0
- package/build/browser/ontology/loadInterfaceMetadata.js.map +1 -0
- package/build/browser/ontology/loadQueryMetadata.d.ts +4 -0
- package/build/browser/ontology/loadQueryMetadata.d.ts.map +1 -0
- package/build/browser/ontology/loadQueryMetadata.js +22 -0
- package/build/browser/ontology/loadQueryMetadata.js.map +1 -0
- package/build/browser/ontology/makeConjureContext.d.ts +4 -0
- package/build/browser/ontology/makeConjureContext.d.ts.map +1 -0
- package/build/browser/ontology/makeConjureContext.js +28 -0
- package/build/browser/ontology/makeConjureContext.js.map +1 -0
- package/build/browser/pageRequestAsAsyncIter.d.ts +10 -0
- package/build/browser/pageRequestAsAsyncIter.d.ts.map +1 -0
- package/build/browser/pageRequestAsAsyncIter.js +37 -0
- package/build/browser/pageRequestAsAsyncIter.js.map +1 -0
- package/build/browser/public/unstable-do-not-use.d.ts +2 -0
- package/build/browser/public/unstable-do-not-use.d.ts.map +1 -0
- package/build/browser/public/unstable-do-not-use.js +16 -2
- package/build/browser/public/unstable-do-not-use.js.map +1 -1
- package/build/browser/queries/applyQuery.d.ts +6 -0
- package/build/browser/queries/applyQuery.d.ts.map +1 -0
- package/build/browser/queries/applyQuery.js +234 -0
- package/build/browser/queries/applyQuery.js.map +1 -0
- package/build/browser/queries/queries.test.d.ts +2 -0
- package/build/browser/queries/queries.test.d.ts.map +1 -0
- package/build/browser/queries/queries.test.js +171 -0
- package/build/browser/queries/queries.test.js.map +1 -0
- package/build/browser/queries/types.d.ts +20 -0
- package/build/browser/queries/types.d.ts.map +1 -0
- package/build/browser/queries/types.js +17 -0
- package/build/browser/queries/types.js.map +1 -0
- package/build/browser/tsserver.d.ts +34 -0
- package/build/browser/tsserver.d.ts.map +1 -0
- package/build/browser/tsserver.js +133 -0
- package/build/browser/tsserver.js.map +1 -0
- package/build/browser/util/ArrayElement.d.ts +2 -0
- package/build/browser/util/ArrayElement.d.ts.map +1 -0
- package/build/browser/util/ArrayElement.js +17 -0
- package/build/browser/util/ArrayElement.js.map +1 -0
- package/build/browser/util/NOOP.d.ts +4 -0
- package/build/browser/util/NOOP.d.ts.map +1 -0
- package/build/browser/util/NOOP.js +17 -0
- package/build/browser/util/NOOP.js.map +1 -0
- package/build/browser/util/NullableProps.d.ts +6 -0
- package/build/browser/util/NullableProps.d.ts.map +1 -0
- package/build/browser/util/NullableProps.js +17 -0
- package/build/browser/util/NullableProps.js.map +1 -0
- package/build/browser/util/UserAgent.d.ts +2 -0
- package/build/browser/util/UserAgent.d.ts.map +1 -0
- package/build/browser/util/UserAgent.js +17 -0
- package/build/browser/util/UserAgent.js.map +1 -0
- package/build/browser/util/WireObjectSet.d.ts +2 -0
- package/build/browser/util/WireObjectSet.d.ts.map +1 -0
- package/build/browser/util/WireObjectSet.js +21 -0
- package/build/browser/util/WireObjectSet.js.map +1 -0
- package/build/browser/util/addUserAgentAndRequestContextHeaders.d.ts +4 -0
- package/build/browser/util/addUserAgentAndRequestContextHeaders.d.ts.map +1 -0
- package/build/browser/util/addUserAgentAndRequestContextHeaders.js +27 -0
- package/build/browser/util/addUserAgentAndRequestContextHeaders.js.map +1 -0
- package/build/browser/util/augmentRequestContext.d.ts +32 -0
- package/build/browser/util/augmentRequestContext.d.ts.map +1 -0
- package/build/browser/util/augmentRequestContext.js +52 -0
- package/build/browser/util/augmentRequestContext.js.map +1 -0
- package/build/browser/util/isOntologyObjectV2.d.ts +2 -0
- package/build/browser/util/isOntologyObjectV2.d.ts.map +1 -0
- package/build/browser/util/isOntologyObjectV2.js +20 -0
- package/build/browser/util/isOntologyObjectV2.js.map +1 -0
- package/build/browser/util/isOsdkBaseObject.d.ts +3 -0
- package/build/browser/util/isOsdkBaseObject.d.ts.map +1 -0
- package/build/browser/util/isOsdkBaseObject.js +19 -0
- package/build/browser/util/isOsdkBaseObject.js.map +1 -0
- package/build/browser/util/isOsdkObject.d.ts +3 -0
- package/build/browser/util/isOsdkObject.d.ts.map +1 -0
- package/build/browser/util/isOsdkObject.js +19 -0
- package/build/browser/util/isOsdkObject.js.map +1 -0
- package/build/browser/util/partialBy.d.ts +3 -0
- package/build/browser/util/partialBy.d.ts.map +1 -0
- package/build/browser/util/partialBy.js +17 -0
- package/build/browser/util/partialBy.js.map +1 -0
- package/build/browser/util/streamutils.d.ts +3 -0
- package/build/browser/util/streamutils.d.ts.map +1 -0
- package/build/browser/util/streamutils.js +95 -0
- package/build/browser/util/streamutils.js.map +1 -0
- package/build/browser/util/toDataValue.d.ts +2 -0
- package/build/browser/util/toDataValue.d.ts.map +1 -0
- package/build/browser/util/toDataValue.js +73 -0
- package/build/browser/util/toDataValue.js.map +1 -0
- package/build/browser/util/toDataValue.test.d.ts +2 -0
- package/build/browser/util/toDataValue.test.d.ts.map +1 -0
- package/build/browser/util/toDataValue.test.js +117 -0
- package/build/browser/util/toDataValue.test.js.map +1 -0
- package/build/browser/util/toDataValueQueries.d.ts +2 -0
- package/build/browser/util/toDataValueQueries.d.ts.map +1 -0
- package/build/browser/util/toDataValueQueries.js +107 -0
- package/build/browser/util/toDataValueQueries.js.map +1 -0
- package/build/esm/Client.d.ts +6 -7
- package/build/esm/Client.d.ts.map +1 -1
- package/build/esm/Client.js +20 -0
- package/build/esm/Client.js.map +1 -0
- package/build/esm/Definitions.test.js +35 -0
- package/build/esm/Definitions.test.js.map +1 -0
- package/build/esm/Logger.js +17 -0
- package/build/esm/Logger.js.map +1 -0
- package/build/esm/MinimalClientContext.js +17 -0
- package/build/esm/MinimalClientContext.js.map +1 -0
- package/build/esm/ResultOrError.js +19 -0
- package/build/esm/ResultOrError.js.map +1 -0
- package/build/esm/SatisfiesSemver.js +17 -0
- package/build/esm/SatisfiesSemver.js.map +1 -0
- package/build/esm/SatisfiesSemver.test.js +69 -0
- package/build/esm/SatisfiesSemver.test.js.map +1 -0
- package/build/esm/__unstable/ConjureSupport.js +174 -0
- package/build/esm/__unstable/ConjureSupport.js.map +1 -0
- package/build/esm/__unstable/createBulkLinksAsyncIterFactory.d.ts +1 -1
- package/build/esm/__unstable/createBulkLinksAsyncIterFactory.d.ts.map +1 -1
- package/build/esm/__unstable/createBulkLinksAsyncIterFactory.js +114 -0
- package/build/esm/__unstable/createBulkLinksAsyncIterFactory.js.map +1 -0
- package/build/esm/actions/ActionValidationError.d.ts +1 -1
- package/build/esm/actions/ActionValidationError.d.ts.map +1 -1
- package/build/esm/actions/ActionValidationError.js +23 -0
- package/build/esm/actions/ActionValidationError.js.map +1 -0
- package/build/esm/actions/actions.test.js +323 -0
- package/build/esm/actions/actions.test.js.map +1 -0
- package/build/esm/actions/applyAction.d.ts +9 -10
- package/build/esm/actions/applyAction.d.ts.map +1 -1
- package/build/esm/actions/applyAction.js +114 -0
- package/build/esm/actions/applyAction.js.map +1 -0
- package/build/esm/createAttachmentFromRid.d.ts +1 -1
- package/build/esm/createAttachmentFromRid.d.ts.map +1 -1
- package/build/esm/createAttachmentFromRid.js +38 -0
- package/build/esm/createAttachmentFromRid.js.map +1 -0
- package/build/esm/createClient.d.ts.map +1 -1
- package/build/esm/createClient.js +88 -0
- package/build/esm/createClient.js.map +1 -0
- package/build/esm/createClient.test.js +45 -0
- package/build/esm/createClient.test.js.map +1 -0
- package/build/esm/createMinimalClient.js +42 -0
- package/build/esm/createMinimalClient.js.map +1 -0
- package/build/esm/createPlatformClient.js +33 -0
- package/build/esm/createPlatformClient.js.map +1 -0
- package/build/esm/createTimeseriesProperty.d.ts +12 -2
- package/build/esm/createTimeseriesProperty.d.ts.map +1 -1
- package/build/esm/createTimeseriesProperty.js +79 -0
- package/build/esm/createTimeseriesProperty.js.map +1 -0
- package/build/esm/definitions/LinkDefinitions.test.js +41 -0
- package/build/esm/definitions/LinkDefinitions.test.js.map +1 -0
- package/build/esm/fetchMetadata.js +35 -0
- package/build/esm/fetchMetadata.js.map +1 -0
- package/build/esm/fetchMetadata.test.js +218 -0
- package/build/esm/fetchMetadata.test.js.map +1 -0
- package/build/esm/index.d.ts +2 -2
- package/build/esm/index.d.ts.map +1 -1
- package/build/esm/index.js +22 -725
- package/build/esm/index.js.map +1 -1
- package/build/esm/intellisense.test.helpers/callsQueryAcceptsObject.js +25 -0
- package/build/esm/intellisense.test.helpers/callsQueryAcceptsObject.js.map +1 -0
- package/build/esm/intellisense.test.js +86 -0
- package/build/esm/intellisense.test.js.map +1 -0
- package/build/esm/internal/conversions/legacyToModernSingleAggregationResult.js +34 -0
- package/build/esm/internal/conversions/legacyToModernSingleAggregationResult.js.map +1 -0
- package/build/esm/internal/conversions/modernToLegacyAggregationClause.js +38 -0
- package/build/esm/internal/conversions/modernToLegacyAggregationClause.js.map +1 -0
- package/build/esm/internal/conversions/modernToLegacyGroupByClause.js +62 -0
- package/build/esm/internal/conversions/modernToLegacyGroupByClause.js.map +1 -0
- package/build/esm/internal/conversions/modernToLegacyWhereClause.js +144 -0
- package/build/esm/internal/conversions/modernToLegacyWhereClause.js.map +1 -0
- package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js +486 -0
- package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -0
- package/build/esm/object/AttachmentUpload.d.ts +1 -1
- package/build/esm/object/AttachmentUpload.d.ts.map +1 -1
- package/build/esm/object/AttachmentUpload.js +27 -0
- package/build/esm/object/AttachmentUpload.js.map +1 -0
- package/build/esm/object/Cache.js +76 -0
- package/build/esm/object/Cache.js.map +1 -0
- package/build/esm/object/Cache.test.js +283 -0
- package/build/esm/object/Cache.test.js.map +1 -0
- package/build/esm/object/SimpleCache.js +67 -0
- package/build/esm/object/SimpleCache.js.map +1 -0
- package/build/esm/object/aggregate.js +69 -0
- package/build/esm/object/aggregate.js.map +1 -0
- package/build/esm/object/aggregate.test.js +398 -0
- package/build/esm/object/aggregate.test.js.map +1 -0
- package/build/esm/object/attachment.test.js +55 -0
- package/build/esm/object/attachment.test.js.map +1 -0
- package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.d.ts +4 -5
- package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.d.ts.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.js +17 -0
- package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -0
- package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.d.ts +2 -3
- package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.d.ts.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.js +22 -0
- package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.js.map +1 -0
- package/build/esm/object/convertWireToOsdkObjects/ObjectHolder.js +17 -0
- package/build/esm/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -0
- package/build/esm/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.d.ts.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js +48 -0
- package/build/esm/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js.map +1 -0
- package/build/esm/object/convertWireToOsdkObjects/PropertyDescriptorRecord.js +17 -0
- package/build/esm/object/convertWireToOsdkObjects/PropertyDescriptorRecord.js.map +1 -0
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +82 -0
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -0
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +114 -0
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -0
- package/build/esm/object/convertWireToOsdkObjects/getDollarAs.d.ts +1 -1
- package/build/esm/object/convertWireToOsdkObjects/getDollarAs.d.ts.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/getDollarAs.js +55 -0
- package/build/esm/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -0
- package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js +60 -0
- package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -0
- package/build/esm/object/convertWireToOsdkObjects.js +150 -0
- package/build/esm/object/convertWireToOsdkObjects.js.map +1 -0
- package/build/esm/object/convertWireToOsdkObjects.test.js +254 -0
- package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -0
- package/build/esm/object/fetchPage.d.ts +2 -3
- package/build/esm/object/fetchPage.d.ts.map +1 -1
- package/build/esm/object/fetchPage.js +135 -0
- package/build/esm/object/fetchPage.js.map +1 -0
- package/build/esm/object/fetchPage.test.js +106 -0
- package/build/esm/object/fetchPage.test.js.map +1 -0
- package/build/esm/object/fetchSingle.js +47 -0
- package/build/esm/object/fetchSingle.js.map +1 -0
- package/build/esm/object/object.test.d.ts +1 -1
- package/build/esm/object/object.test.d.ts.map +1 -1
- package/build/esm/object/object.test.js +179 -0
- package/build/esm/object/object.test.js.map +1 -0
- package/build/esm/object/timeseries.test.js +163 -0
- package/build/esm/object/timeseries.test.js.map +1 -0
- package/build/esm/objectSet/ObjectSet.test.js +313 -0
- package/build/esm/objectSet/ObjectSet.test.js.map +1 -0
- package/build/esm/objectSet/ObjectSetFactory.js +17 -0
- package/build/esm/objectSet/ObjectSetFactory.js.map +1 -0
- package/build/esm/objectSet/ObjectSetListenerWebsocket.d.ts.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js +536 -0
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -0
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +338 -0
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -0
- package/build/esm/objectSet/conjureUnionType.js +27 -0
- package/build/esm/objectSet/conjureUnionType.js.map +1 -0
- package/build/esm/objectSet/createObjectSet.js +136 -0
- package/build/esm/objectSet/createObjectSet.js.map +1 -0
- package/build/esm/objectSet/toConjureObjectSet.js +158 -0
- package/build/esm/objectSet/toConjureObjectSet.js.map +1 -0
- package/build/esm/ontology/OntologyProvider.d.ts +5 -5
- package/build/esm/ontology/OntologyProvider.d.ts.map +1 -1
- package/build/esm/ontology/OntologyProvider.js +17 -0
- package/build/esm/ontology/OntologyProvider.js.map +1 -0
- package/build/esm/ontology/StandardOntologyProvider.js +59 -0
- package/build/esm/ontology/StandardOntologyProvider.js.map +1 -0
- package/build/esm/ontology/StandardOntologyProvider.test.js +48 -0
- package/build/esm/ontology/StandardOntologyProvider.test.js.map +1 -0
- package/build/esm/ontology/loadActionMetadata.d.ts +1 -1
- package/build/esm/ontology/loadActionMetadata.d.ts.map +1 -1
- package/build/esm/ontology/loadActionMetadata.js +22 -0
- package/build/esm/ontology/loadActionMetadata.js.map +1 -0
- package/build/esm/ontology/loadFullObjectMetadata.d.ts +1 -1
- package/build/esm/ontology/loadFullObjectMetadata.d.ts.map +1 -1
- package/build/esm/ontology/loadFullObjectMetadata.js +28 -0
- package/build/esm/ontology/loadFullObjectMetadata.js.map +1 -0
- package/build/esm/ontology/loadInterfaceMetadata.d.ts +1 -1
- package/build/esm/ontology/loadInterfaceMetadata.d.ts.map +1 -1
- package/build/esm/ontology/loadInterfaceMetadata.js +24 -0
- package/build/esm/ontology/loadInterfaceMetadata.js.map +1 -0
- package/build/esm/ontology/loadQueryMetadata.js +22 -0
- package/build/esm/ontology/loadQueryMetadata.js.map +1 -0
- package/build/esm/ontology/makeConjureContext.js +28 -0
- package/build/esm/ontology/makeConjureContext.js.map +1 -0
- package/build/esm/pageRequestAsAsyncIter.js +37 -0
- package/build/esm/pageRequestAsAsyncIter.js.map +1 -0
- package/build/esm/public/unstable-do-not-use.js +16 -2
- package/build/esm/public/unstable-do-not-use.js.map +1 -1
- package/build/esm/queries/applyQuery.d.ts +1 -2
- package/build/esm/queries/applyQuery.d.ts.map +1 -1
- package/build/esm/queries/applyQuery.js +234 -0
- package/build/esm/queries/applyQuery.js.map +1 -0
- package/build/esm/queries/queries.test.js +171 -0
- package/build/esm/queries/queries.test.js.map +1 -0
- package/build/esm/queries/types.d.ts +1 -2
- package/build/esm/queries/types.d.ts.map +1 -1
- package/build/esm/queries/types.js +17 -0
- package/build/esm/queries/types.js.map +1 -0
- package/build/esm/tsserver.js +133 -0
- package/build/esm/tsserver.js.map +1 -0
- package/build/esm/util/ArrayElement.js +17 -0
- package/build/esm/util/ArrayElement.js.map +1 -0
- package/build/esm/util/NOOP.js +17 -0
- package/build/esm/util/NOOP.js.map +1 -0
- package/build/esm/util/NullableProps.js +17 -0
- package/build/esm/util/NullableProps.js.map +1 -0
- package/build/esm/util/UserAgent.js +17 -0
- package/build/esm/util/UserAgent.js.map +1 -0
- package/build/esm/util/WireObjectSet.js +21 -0
- package/build/esm/util/WireObjectSet.js.map +1 -0
- package/build/esm/util/addUserAgentAndRequestContextHeaders.js +27 -0
- package/build/esm/util/addUserAgentAndRequestContextHeaders.js.map +1 -0
- package/build/esm/util/augmentRequestContext.js +52 -0
- package/build/esm/util/augmentRequestContext.js.map +1 -0
- package/build/esm/util/isOntologyObjectV2.js +20 -0
- package/build/esm/util/isOntologyObjectV2.js.map +1 -0
- package/build/esm/util/isOsdkBaseObject.d.ts +1 -1
- package/build/esm/util/isOsdkBaseObject.d.ts.map +1 -1
- package/build/esm/util/isOsdkBaseObject.js +19 -0
- package/build/esm/util/isOsdkBaseObject.js.map +1 -0
- package/build/esm/util/isOsdkObject.d.ts +1 -1
- package/build/esm/util/isOsdkObject.d.ts.map +1 -1
- package/build/esm/util/isOsdkObject.js +19 -0
- package/build/esm/util/isOsdkObject.js.map +1 -0
- package/build/esm/util/partialBy.js +17 -0
- package/build/esm/util/partialBy.js.map +1 -0
- package/build/esm/util/streamutils.js +95 -0
- package/build/esm/util/streamutils.js.map +1 -0
- package/build/esm/util/toDataValue.js +73 -0
- package/build/esm/util/toDataValue.js.map +1 -0
- package/build/esm/util/toDataValue.test.js +117 -0
- package/build/esm/util/toDataValue.test.js.map +1 -0
- package/build/esm/util/toDataValueQueries.js +107 -0
- package/build/esm/util/toDataValueQueries.js.map +1 -0
- package/package.json +14 -18
- package/build/browser/chunk-CG25K4WC.js +0 -2502
- package/build/browser/chunk-CG25K4WC.js.map +0 -1
- package/build/esm/chunk-MQTCPUPF.js +0 -2505
- package/build/esm/chunk-MQTCPUPF.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modernToLegacyWhereClause.test.js","names":["expectType","describe","expect","it","modernToLegacyWhereClause","geoPoint","$within","toMatchInlineSnapshot","$bbox","$distance","$of","type","coordinates","$polygon","geoShape","$intersects","integer","$ne","decimal","$and","$or"],"sources":["modernToLegacyWhereClause.test.js"],"sourcesContent":["/*\n * Copyright 2023 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 */\nimport { expectType } from \"ts-expect\";\nimport { describe, expect, it } from \"vitest\";\nimport { modernToLegacyWhereClause } from \"./modernToLegacyWhereClause.js\";\ndescribe(modernToLegacyWhereClause, () => {\n describe(\"single checks\", () => {\n describe(\"$within\", () => {\n it(\"properly generates bbox shortcut\", async () => {\n expect(modernToLegacyWhereClause({\n geoPoint: {\n $within: [-5, 5, -10, 10],\n },\n })).toMatchInlineSnapshot(`\n {\n \"field\": \"geoPoint\",\n \"type\": \"withinBoundingBox\",\n \"value\": {\n \"bottomRight\": {\n \"coordinates\": [\n -10,\n 5,\n ],\n \"type\": \"Point\",\n },\n \"topLeft\": {\n \"coordinates\": [\n -5,\n 10,\n ],\n \"type\": \"Point\",\n },\n },\n }\n `);\n });\n it(\"properly generates bbox long form\", async () => {\n expect(modernToLegacyWhereClause({\n geoPoint: {\n $within: {\n $bbox: [-5, 5, -10, 10],\n },\n },\n })).toMatchInlineSnapshot(`\n {\n \"field\": \"geoPoint\",\n \"type\": \"withinBoundingBox\",\n \"value\": {\n \"bottomRight\": {\n \"coordinates\": [\n -10,\n 5,\n ],\n \"type\": \"Point\",\n },\n \"topLeft\": {\n \"coordinates\": [\n -5,\n 10,\n ],\n \"type\": \"Point\",\n },\n },\n }\n `);\n });\n it(\"properly generates within radius\", async () => {\n expect(modernToLegacyWhereClause({\n geoPoint: {\n $within: { $distance: [5, \"km\"], $of: [-5, 5] },\n },\n })).toMatchInlineSnapshot(`\n {\n \"field\": \"geoPoint\",\n \"type\": \"withinDistanceOf\",\n \"value\": {\n \"center\": {\n \"coordinates\": [\n -5,\n 5,\n ],\n \"type\": \"Point\",\n },\n \"distance\": {\n \"unit\": \"KILOMETERS\",\n \"value\": 5,\n },\n },\n }\n `);\n });\n it(\"properly generates within radius of geopoint\", async () => {\n // suppose you loaded an object with a geopoint field\n // and you want to find all objects within 5 km of that point\n const pointAsGeoJsonPoint = {\n type: \"Point\",\n coordinates: [-5, 5],\n };\n expect(modernToLegacyWhereClause({\n geoPoint: {\n $within: { $distance: [5, \"km\"], $of: pointAsGeoJsonPoint },\n },\n })).toMatchInlineSnapshot(`\n {\n \"field\": \"geoPoint\",\n \"type\": \"withinDistanceOf\",\n \"value\": {\n \"center\": {\n \"coordinates\": [\n -5,\n 5,\n ],\n \"type\": \"Point\",\n },\n \"distance\": {\n \"unit\": \"KILOMETERS\",\n \"value\": 5,\n },\n },\n }\n `);\n });\n it(\"properly generates within polygon\", async () => {\n expect(modernToLegacyWhereClause({\n geoPoint: {\n $within: { $polygon: [[[0, 1], [3, 2], [0, 1]]] },\n },\n })).toMatchInlineSnapshot(`\n {\n \"field\": \"geoPoint\",\n \"type\": \"withinPolygon\",\n \"value\": {\n \"coordinates\": [\n [\n [\n 0,\n 1,\n ],\n [\n 3,\n 2,\n ],\n [\n 0,\n 1,\n ],\n ],\n ],\n \"type\": \"Polygon\",\n },\n }\n `);\n });\n it(\"properly generates within polygon geojson\", async () => {\n expect(modernToLegacyWhereClause({\n geoPoint: {\n $within: {\n type: \"Polygon\",\n coordinates: [[[0, 1], [3, 2], [0, 1]]],\n },\n },\n })).toMatchInlineSnapshot(`\n {\n \"field\": \"geoPoint\",\n \"type\": \"withinPolygon\",\n \"value\": {\n \"coordinates\": [\n [\n [\n 0,\n 1,\n ],\n [\n 3,\n 2,\n ],\n [\n 0,\n 1,\n ],\n ],\n ],\n \"type\": \"Polygon\",\n },\n }\n `);\n });\n it(\"check types\", async () => {\n expectType({\n geoPoint: {\n $within: [-5, 5, -10, 10],\n },\n });\n expectType({\n geoPoint: {\n $within: { $distance: [2, \"centimeter\"], $of: [2, 2] },\n },\n });\n expectType({\n geoPoint: {\n $within: { $polygon: [[[0, 1], [3, 2], [0, 1]]] },\n },\n });\n expectType({\n geoPoint: {\n $within: {\n type: \"Polygon\",\n coordinates: [[[0, 1], [3, 2], [0, 1]]],\n },\n },\n });\n expectType({\n geoPoint: {\n $within: { $bbox: [-5, 5, -10, 10] },\n },\n });\n expectType({\n geoPoint: {\n $within: {\n $bbox: [-5, 5, -10, 10],\n // @ts-expect-error\n $distance: [2, \"centimeter\"],\n // @ts-expect-error\n $of: [2, 2],\n },\n },\n });\n expectType({\n geoPoint: {\n $within: {\n $polygon: [[[0, 1], [3, 2], [0, 1]]],\n // @ts-expect-error\n $bbox: [2, 2, 2, 2],\n },\n },\n });\n });\n describe(\"$intersects\", () => {\n it(\"properly generates bbox shortcut\", async () => {\n expect(modernToLegacyWhereClause({\n geoShape: {\n $intersects: [-5, 5, -10, 10],\n },\n })).toMatchInlineSnapshot(`\n {\n \"field\": \"geoShape\",\n \"type\": \"intersectsBoundingBox\",\n \"value\": {\n \"bottomRight\": {\n \"coordinates\": [\n -10,\n 5,\n ],\n \"type\": \"Point\",\n },\n \"topLeft\": {\n \"coordinates\": [\n -5,\n 10,\n ],\n \"type\": \"Point\",\n },\n },\n }\n `);\n });\n it(\"properly generates bbox long form\", async () => {\n expect(modernToLegacyWhereClause({\n geoShape: {\n $intersects: {\n $bbox: [-5, 5, -10, 10],\n },\n },\n })).toMatchInlineSnapshot(`\n {\n \"field\": \"geoShape\",\n \"type\": \"intersectsBoundingBox\",\n \"value\": {\n \"bottomRight\": {\n \"coordinates\": [\n -10,\n 5,\n ],\n \"type\": \"Point\",\n },\n \"topLeft\": {\n \"coordinates\": [\n -5,\n 10,\n ],\n \"type\": \"Point\",\n },\n },\n }\n `);\n });\n it(\"properly generates intersects polygon\", async () => {\n expect(modernToLegacyWhereClause({\n geoShape: {\n $intersects: { $polygon: [[[0, 1], [3, 2], [0, 1]]] },\n },\n })).toMatchInlineSnapshot(`\n {\n \"field\": \"geoShape\",\n \"type\": \"intersectsPolygon\",\n \"value\": {\n \"coordinates\": [\n [\n [\n 0,\n 1,\n ],\n [\n 3,\n 2,\n ],\n [\n 0,\n 1,\n ],\n ],\n ],\n \"type\": \"Polygon\",\n },\n }\n `);\n });\n it(\"properly generates within polygon geojson\", async () => {\n expect(modernToLegacyWhereClause({\n geoShape: {\n $intersects: {\n type: \"Polygon\",\n coordinates: [[[0, 1], [3, 2], [0, 1]]],\n },\n },\n })).toMatchInlineSnapshot(`\n {\n \"field\": \"geoShape\",\n \"type\": \"intersectsPolygon\",\n \"value\": {\n \"coordinates\": [\n [\n [\n 0,\n 1,\n ],\n [\n 3,\n 2,\n ],\n [\n 0,\n 1,\n ],\n ],\n ],\n \"type\": \"Polygon\",\n },\n }\n `);\n });\n });\n it(\"inverts ne short hand properly\", () => {\n expect(modernToLegacyWhereClause({\n integer: { $ne: 5 },\n })).toMatchInlineSnapshot(`\n {\n \"type\": \"not\",\n \"value\": {\n \"field\": \"integer\",\n \"type\": \"eq\",\n \"value\": 5,\n },\n }\n `);\n });\n });\n describe(\"multiple checks\", () => {\n it(\"properly handles multiple simple where checks\", () => {\n expect(modernToLegacyWhereClause({\n decimal: 5,\n integer: 10,\n })).toMatchInlineSnapshot(`\n {\n \"type\": \"and\",\n \"value\": [\n {\n \"field\": \"decimal\",\n \"type\": \"eq\",\n \"value\": 5,\n },\n {\n \"field\": \"integer\",\n \"type\": \"eq\",\n \"value\": 10,\n },\n ],\n }\n `);\n });\n it(\"properly handles $and\", () => {\n expect(modernToLegacyWhereClause({\n $and: [{\n decimal: 5,\n }, {\n integer: 10,\n }],\n })).toMatchInlineSnapshot(`\n {\n \"type\": \"and\",\n \"value\": [\n {\n \"field\": \"decimal\",\n \"type\": \"eq\",\n \"value\": 5,\n },\n {\n \"field\": \"integer\",\n \"type\": \"eq\",\n \"value\": 10,\n },\n ],\n }\n `);\n });\n it(\"properly handles $or\", () => {\n expect(modernToLegacyWhereClause({\n $or: [{\n decimal: 5,\n }, {\n integer: 10,\n }],\n })).toMatchInlineSnapshot(`\n {\n \"type\": \"or\",\n \"value\": [\n {\n \"field\": \"decimal\",\n \"type\": \"eq\",\n \"value\": 5,\n },\n {\n \"field\": \"integer\",\n \"type\": \"eq\",\n \"value\": 10,\n },\n ],\n }\n `);\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttachmentUpload.d.ts","sourceRoot":"","sources":["../../../src/object/AttachmentUpload.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,gBAAgB,CAEhE;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,GACX,gBAAgB,CAIlB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export function isAttachmentUpload(o) {
|
|
17
|
+
return o instanceof Blob && "name" in o;
|
|
18
|
+
}
|
|
19
|
+
export function createAttachmentUpload(data, name) {
|
|
20
|
+
const attachmentUpload = Object.create(data, {
|
|
21
|
+
name: {
|
|
22
|
+
value: name
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
return attachmentUpload;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=AttachmentUpload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttachmentUpload.js","names":["isAttachmentUpload","o","Blob","createAttachmentUpload","data","name","attachmentUpload","Object","create","value"],"sources":["AttachmentUpload.js"],"sourcesContent":["/*\n * Copyright 2023 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 */\nexport function isAttachmentUpload(o) {\n return o instanceof Blob && \"name\" in o;\n}\nexport function createAttachmentUpload(data, name) {\n const attachmentUpload = Object.create(data, { name: { value: name } });\n return attachmentUpload;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,kBAAkBA,CAACC,CAAC,EAAE;EAClC,OAAOA,CAAC,YAAYC,IAAI,IAAI,MAAM,IAAID,CAAC;AAC3C;AACA,OAAO,SAASE,sBAAsBA,CAACC,IAAI,EAAEC,IAAI,EAAE;EAC/C,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,MAAM,CAACJ,IAAI,EAAE;IAAEC,IAAI,EAAE;MAAEI,KAAK,EAAEJ;IAAK;EAAE,CAAC,CAAC;EACvE,OAAOC,gBAAgB;AAC3B","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cache.d.ts","sourceRoot":"","sources":["../../../src/object/Cache.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export function createClientCache(fn) {
|
|
17
|
+
const cache = new WeakMap();
|
|
18
|
+
function set(client, key, value) {
|
|
19
|
+
if (cache.get(client.clientCacheKey) == null) {
|
|
20
|
+
cache.set(client.clientCacheKey, new Map());
|
|
21
|
+
}
|
|
22
|
+
cache.get(client.clientCacheKey).set(key, value);
|
|
23
|
+
return value;
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
get: function (client, key) {
|
|
27
|
+
if (cache.get(client.clientCacheKey) == null) {
|
|
28
|
+
cache.set(client.clientCacheKey, new Map());
|
|
29
|
+
}
|
|
30
|
+
let r = cache.get(client.clientCacheKey).get(key);
|
|
31
|
+
if (r === undefined && fn !== undefined) {
|
|
32
|
+
return set(client, key, fn(client, key));
|
|
33
|
+
} else {
|
|
34
|
+
return r;
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
set,
|
|
38
|
+
remove: function (client, key) {
|
|
39
|
+
if (cache.get(client.clientCacheKey) == null) return false;
|
|
40
|
+
return cache.get(client.clientCacheKey).delete(key);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @internal
|
|
46
|
+
* Create a new cache with an async factory function.
|
|
47
|
+
* @param fn A factory function that will be used to create the value if it does not exist in the cache.
|
|
48
|
+
* @returns
|
|
49
|
+
*/
|
|
50
|
+
export function createAsyncClientCache(fn, createCacheLocal = createClientCache) {
|
|
51
|
+
const cache = createCacheLocal();
|
|
52
|
+
const inProgress = createCacheLocal();
|
|
53
|
+
const ret = {
|
|
54
|
+
getOrUndefined: function (client, key) {
|
|
55
|
+
return cache.get(client, key);
|
|
56
|
+
},
|
|
57
|
+
get: async function (client, key) {
|
|
58
|
+
return cache.get(client, key) ?? inProgress.get(client, key) ?? ret.set(client, key, fn(client, key));
|
|
59
|
+
},
|
|
60
|
+
set: async function (client, k, v) {
|
|
61
|
+
// the `.set` happens first to prevent races.
|
|
62
|
+
try {
|
|
63
|
+
const r = await inProgress.set(client, k, v); // returns v
|
|
64
|
+
cache.set(client, k, r);
|
|
65
|
+
inProgress.remove(client, k);
|
|
66
|
+
return r;
|
|
67
|
+
} catch (e) {
|
|
68
|
+
// we don't want to cache failures
|
|
69
|
+
inProgress.remove(client, k);
|
|
70
|
+
throw e;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
return ret;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=Cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cache.js","names":["createClientCache","fn","cache","WeakMap","set","client","key","value","get","clientCacheKey","Map","r","undefined","remove","delete","createAsyncClientCache","createCacheLocal","inProgress","ret","getOrUndefined","k","v","e"],"sources":["Cache.js"],"sourcesContent":["/*\n * Copyright 2024 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 */\nexport function createClientCache(fn) {\n const cache = new WeakMap();\n function get(client, key) {\n if (cache.get(client.clientCacheKey) == null) {\n cache.set(client.clientCacheKey, new Map());\n }\n let r = cache.get(client.clientCacheKey).get(key);\n if (r === undefined && fn !== undefined) {\n return set(client, key, fn(client, key));\n }\n else {\n return r;\n }\n }\n function set(client, key, value) {\n if (cache.get(client.clientCacheKey) == null) {\n cache.set(client.clientCacheKey, new Map());\n }\n cache.get(client.clientCacheKey).set(key, value);\n return value;\n }\n function remove(client, key) {\n if (cache.get(client.clientCacheKey) == null)\n return false;\n return cache.get(client.clientCacheKey).delete(key);\n }\n return { get, set, remove };\n}\n/**\n * @internal\n * Create a new cache with an async factory function.\n * @param fn A factory function that will be used to create the value if it does not exist in the cache.\n * @returns\n */\nexport function createAsyncClientCache(fn, createCacheLocal = createClientCache) {\n const cache = createCacheLocal();\n const inProgress = createCacheLocal();\n const ret = {\n getOrUndefined: function getOrUndefined(client, key) {\n return cache.get(client, key);\n },\n get: async function get(client, key) {\n return cache.get(client, key) ?? inProgress.get(client, key)\n ?? ret.set(client, key, fn(client, key));\n },\n set: async function set(client, k, v) {\n // the `.set` happens first to prevent races.\n try {\n const r = await inProgress.set(client, k, v); // returns v\n cache.set(client, k, r);\n inProgress.remove(client, k);\n return r;\n }\n catch (e) {\n // we don't want to cache failures\n inProgress.remove(client, k);\n throw e;\n }\n },\n };\n return ret;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare module "vitest" {
|
|
2
|
+
interface Assertion<T = any> extends CustomMatchers<T> {
|
|
3
|
+
}
|
|
4
|
+
interface AsymmetricMatchersContaining<T = any> extends CustomMatchers<T> {
|
|
5
|
+
}
|
|
6
|
+
interface ExpectStatic<T = any> extends CustomMatchers<T> {
|
|
7
|
+
isPromiseLike: () => any;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=Cache.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cache.test.d.ts","sourceRoot":"","sources":["../../../src/object/Cache.test.ts"],"names":[],"mappings":"AA4BA,OAAO,QAAQ,QAAQ,CAAC;IACtB,UAAU,SAAS,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;KAAG;IACzD,UAAU,4BAA4B,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;KAAG;IAC5E,UAAU,YAAY,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;QACvD,aAAa,EAAE,MAAM,GAAG,CAAC;KAC1B;CACF"}
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import * as matchers from "jest-extended";
|
|
17
|
+
import pDefer from "p-defer";
|
|
18
|
+
import { promiseStateAsync as pStateAsync } from "p-state";
|
|
19
|
+
import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
|
20
|
+
import { createAsyncClientCache, createClientCache } from "./Cache.js";
|
|
21
|
+
expect.extend(matchers);
|
|
22
|
+
function createSpys(cache) {
|
|
23
|
+
return {
|
|
24
|
+
get: vi.spyOn(cache, "get"),
|
|
25
|
+
remove: vi.spyOn(cache, "remove"),
|
|
26
|
+
set: vi.spyOn(cache, "set")
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
describe("AsyncCache", () => {
|
|
30
|
+
beforeAll(() => {});
|
|
31
|
+
const fauxClient = {
|
|
32
|
+
clientCacheKey: {}
|
|
33
|
+
};
|
|
34
|
+
const fauxClient2 = {
|
|
35
|
+
clientCacheKey: {}
|
|
36
|
+
};
|
|
37
|
+
it("keeps clients separate", async () => {
|
|
38
|
+
const cache = createAsyncClientCache((client, key) => Promise.resolve(key));
|
|
39
|
+
await cache.set(fauxClient, "k", "v");
|
|
40
|
+
expect(await cache.get(fauxClient2, "k")).toEqual("k");
|
|
41
|
+
});
|
|
42
|
+
it("has a client and its copy access the same cache", async () => {
|
|
43
|
+
const cache = createAsyncClientCache((client, key) => Promise.resolve(key));
|
|
44
|
+
await cache.set(fauxClient, "k", "v");
|
|
45
|
+
expect(await cache.get({
|
|
46
|
+
...fauxClient
|
|
47
|
+
}, "k")).toEqual("v");
|
|
48
|
+
});
|
|
49
|
+
it("does not double factory", async () => {
|
|
50
|
+
const mock = vi.fn((client, key) => new Promise(resolve => {
|
|
51
|
+
setTimeout(() => resolve(key), 100);
|
|
52
|
+
}));
|
|
53
|
+
const cache = createAsyncClientCache(mock);
|
|
54
|
+
await Promise.all([cache.get(fauxClient, "a"), cache.get(fauxClient, "a"), cache.get(fauxClient, "a"), cache.get(fauxClient, "b"), cache.get(fauxClient, "b"), cache.get(fauxClient, "b"), cache.get(fauxClient, "b")]);
|
|
55
|
+
expect(mock).toHaveBeenCalledTimes(2);
|
|
56
|
+
});
|
|
57
|
+
describe("race checks", () => {
|
|
58
|
+
let factoryFn;
|
|
59
|
+
let cache;
|
|
60
|
+
let inProgress;
|
|
61
|
+
let asyncCache;
|
|
62
|
+
let asyncCacheSpies;
|
|
63
|
+
let asyncSetSpy;
|
|
64
|
+
let factoryDefers;
|
|
65
|
+
let getPromises;
|
|
66
|
+
let expectedAsyncSets;
|
|
67
|
+
let expectedFactoryCalls;
|
|
68
|
+
let successfulFetches;
|
|
69
|
+
let pendingFetches;
|
|
70
|
+
let expectedPending = {};
|
|
71
|
+
beforeEach(async () => {
|
|
72
|
+
factoryFn = vi.fn();
|
|
73
|
+
factoryFn.mockImplementation(() => {
|
|
74
|
+
const defer = pDefer();
|
|
75
|
+
factoryDefers.push(defer);
|
|
76
|
+
return defer.promise;
|
|
77
|
+
});
|
|
78
|
+
getPromises = [];
|
|
79
|
+
factoryDefers = [];
|
|
80
|
+
expectedAsyncSets = 0;
|
|
81
|
+
expectedFactoryCalls = 0;
|
|
82
|
+
successfulFetches = new Set();
|
|
83
|
+
pendingFetches = new Set();
|
|
84
|
+
expectedPending = {};
|
|
85
|
+
const createSyncCacheMock = vi.fn();
|
|
86
|
+
cache = createSpys(createClientCache());
|
|
87
|
+
inProgress = createSpys(createClientCache());
|
|
88
|
+
createSyncCacheMock.mockReturnValueOnce(cache);
|
|
89
|
+
createSyncCacheMock.mockReturnValueOnce(inProgress);
|
|
90
|
+
asyncCache = createAsyncClientCache(factoryFn, createSyncCacheMock);
|
|
91
|
+
asyncSetSpy = vi.spyOn(asyncCache, "set");
|
|
92
|
+
asyncCacheSpies = {
|
|
93
|
+
get: vi.spyOn(asyncCache, "get"),
|
|
94
|
+
set: vi.spyOn(asyncCache, "set"),
|
|
95
|
+
getOrUndefined: vi.spyOn(asyncCache, "getOrUndefined")
|
|
96
|
+
};
|
|
97
|
+
await expectSaneCalls();
|
|
98
|
+
});
|
|
99
|
+
function initiateAsyncCacheGetFor(key) {
|
|
100
|
+
return async () => {
|
|
101
|
+
if (!successfulFetches.has(key)) {
|
|
102
|
+
expectedPending[key] = (expectedPending[key] ?? 0) + 1;
|
|
103
|
+
if (!pendingFetches.has(key)) {
|
|
104
|
+
pendingFetches.add(key);
|
|
105
|
+
expectedFactoryCalls++;
|
|
106
|
+
expectedAsyncSets++;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// check before and after make sense so that `expectSaneCalls` can work
|
|
110
|
+
const before = await getStats();
|
|
111
|
+
getPromises.push(asyncCache.get(fauxClient, key));
|
|
112
|
+
expect(await getStats()).toStrictEqual({
|
|
113
|
+
...before,
|
|
114
|
+
asyncCacheGetCalls: before.asyncCacheGetCalls + 1
|
|
115
|
+
// may or may not bump the unique keys
|
|
116
|
+
});
|
|
117
|
+
await expectSaneCalls();
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
function resolveFactoryCall(num, key, value = `${key}Result`) {
|
|
121
|
+
return async () => {
|
|
122
|
+
// <preconditions>
|
|
123
|
+
expect(await pStateAsync(factoryDefers[num].promise)).toBe("pending");
|
|
124
|
+
expect(factoryFn.mock.calls[num][1]).toBe(key);
|
|
125
|
+
expect(pendingFetches).toContain(key);
|
|
126
|
+
expect(successfulFetches).not.toContain(key);
|
|
127
|
+
// </preconditions>
|
|
128
|
+
// Update expectations
|
|
129
|
+
pendingFetches.delete(value);
|
|
130
|
+
successfulFetches.add(value);
|
|
131
|
+
// check before and after make sense so that `expectSaneCalls` can work
|
|
132
|
+
const before = await getStats();
|
|
133
|
+
factoryDefers[num].resolve(value);
|
|
134
|
+
expect(await getStats()).toStrictEqual({
|
|
135
|
+
...before,
|
|
136
|
+
fulfilledFactoryCalls: before.fulfilledFactoryCalls + 1
|
|
137
|
+
});
|
|
138
|
+
await expectSaneCalls();
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
function rejectFactoryCall(num, key, error = `${key}Error`) {
|
|
142
|
+
return async () => {
|
|
143
|
+
expect(factoryFn.mock.calls[num][1]).toBe(key);
|
|
144
|
+
expect(pendingFetches).toContain(key);
|
|
145
|
+
pendingFetches.delete(key);
|
|
146
|
+
factoryDefers[num].reject(new Error(error));
|
|
147
|
+
// we need to ensure the outstanding get promises are rejected
|
|
148
|
+
for (let i = 0; i < asyncCacheSpies.get.mock.calls.length; i++) {
|
|
149
|
+
if (asyncCacheSpies.get.mock.calls[i][1] === key) {
|
|
150
|
+
if (asyncCacheSpies.get.mock.results[i].type === "return") {
|
|
151
|
+
expect(getPromises[i]).toReject();
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
await expectSaneCalls();
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
async function getStats() {
|
|
159
|
+
return {
|
|
160
|
+
fulfilledFactoryCalls: (await Promise.all(factoryDefers.map(d => pStateAsync(d.promise)))).filter(a => a === "fulfilled").length,
|
|
161
|
+
rejectedFactoryCalls: (await Promise.all(factoryDefers.map(d => pStateAsync(d.promise)))).filter(a => a === "rejected").length,
|
|
162
|
+
asyncCacheGetCalls: asyncCacheSpies.get.mock.calls.length
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
async function expectSaneCalls() {
|
|
166
|
+
const stats = await getStats();
|
|
167
|
+
// both of these should be connected
|
|
168
|
+
expect(factoryFn).toHaveBeenCalledTimes(expectedFactoryCalls);
|
|
169
|
+
expect(inProgress.set).toHaveBeenCalledTimes(expectedFactoryCalls);
|
|
170
|
+
expect(asyncSetSpy).toHaveBeenCalledTimes(expectedAsyncSets);
|
|
171
|
+
// inProgress should be removed after a success or failure
|
|
172
|
+
expect(inProgress.remove).toHaveBeenCalledTimes(stats.fulfilledFactoryCalls + stats.rejectedFactoryCalls);
|
|
173
|
+
// the inner cache gets checked once per async get
|
|
174
|
+
expect(cache.get).toHaveBeenCalledTimes(stats.asyncCacheGetCalls);
|
|
175
|
+
// the inner cache only gets set after a successful factory call
|
|
176
|
+
expect(cache.set).toHaveBeenCalledTimes(successfulFetches.size);
|
|
177
|
+
}
|
|
178
|
+
function itRejectsAllRequestsOf(key) {
|
|
179
|
+
it(`rejects all ${key} requests`, () => {
|
|
180
|
+
for (let i = 0; i < asyncCacheSpies.get.mock.calls.length; i++) {
|
|
181
|
+
if (asyncCacheSpies.get.mock.calls[i][1] === key) {
|
|
182
|
+
expect(asyncCacheSpies.get.mock.settledResults[i].type).toBe("rejected");
|
|
183
|
+
expect(asyncCacheSpies.get.mock.settledResults[i].value).toMatchInlineSnapshot(`[Error: aError]`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
function itDoesNotRejectLastRequestRightAway() {
|
|
189
|
+
it("does not reject right away", () => {
|
|
190
|
+
expect(asyncCacheSpies.get.mock.results.at(-1)?.type).toBe("return");
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
function describeRejectsFactoryCall(num, key, fn) {
|
|
194
|
+
return describe(`rejects factory request ${num} for ${key}`, () => {
|
|
195
|
+
beforeEach(rejectFactoryCall(num, key));
|
|
196
|
+
itRejectsAllRequestsOf("a");
|
|
197
|
+
fn();
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
function describeResolvesFactoryCall(num, key, fn) {
|
|
201
|
+
return describe(`resolves factory request ${num} for ${key}`, () => {
|
|
202
|
+
beforeEach(resolveFactoryCall(num, key));
|
|
203
|
+
fn();
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
function describeAsyncCacheGetFor(key, fn) {
|
|
207
|
+
return describe(`gets a request for '${key}'`, () => {
|
|
208
|
+
beforeEach(initiateAsyncCacheGetFor(key));
|
|
209
|
+
itDoesNotRejectLastRequestRightAway();
|
|
210
|
+
fn();
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
function itFulfillsAsyncCacheGets(indexes, value) {
|
|
214
|
+
it(`fulfills the AsyncCache.get()'s ${indexes.join(", ")} with '${value}'`, async () => {
|
|
215
|
+
for (const i of indexes) {
|
|
216
|
+
expect(await pStateAsync(getPromises[i])).toBe("fulfilled");
|
|
217
|
+
expect(await getPromises[i]).toBe(value);
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
function itLeavesAsyncGetPromisesInStates(states) {
|
|
222
|
+
it(`leaves the AsyncCache.get()'s in states [${states.join(", ")}]`, async () => {
|
|
223
|
+
expect(await Promise.all(getPromises.map(p => pStateAsync(p)))).toStrictEqual(states);
|
|
224
|
+
for (let i = 0; i < states.length; i++) {
|
|
225
|
+
expect(await pStateAsync(getPromises[i])).toBe(states[i]);
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
function itHasOnlyInvokedFactoryNTimes(n) {
|
|
230
|
+
it(`has only invoked the factory ${n} times`, () => {
|
|
231
|
+
expect(factoryFn).toHaveBeenCalledTimes(n);
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
function itReturnsForAsyncGet(results) {
|
|
235
|
+
it("returns for async get", () => {
|
|
236
|
+
expect(asyncCacheSpies.get.mock.settledResults.map(a => a.value)).toEqual(results);
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
it("has a minimal base state", () => {
|
|
240
|
+
expect(cache.get).not.toHaveBeenCalled();
|
|
241
|
+
expect(inProgress.get).not.toHaveBeenCalled();
|
|
242
|
+
expect(factoryFn).not.toHaveBeenCalled();
|
|
243
|
+
expect(inProgress.set).not.toHaveBeenCalled();
|
|
244
|
+
});
|
|
245
|
+
describeAsyncCacheGetFor("a", () => {
|
|
246
|
+
itLeavesAsyncGetPromisesInStates(["pending"]);
|
|
247
|
+
itHasOnlyInvokedFactoryNTimes(1);
|
|
248
|
+
describeAsyncCacheGetFor("a", () => {
|
|
249
|
+
itLeavesAsyncGetPromisesInStates(["pending", "pending"]);
|
|
250
|
+
itHasOnlyInvokedFactoryNTimes(1);
|
|
251
|
+
describe("before the first resolves", () => {
|
|
252
|
+
itLeavesAsyncGetPromisesInStates(["pending", "pending"]);
|
|
253
|
+
itHasOnlyInvokedFactoryNTimes(1);
|
|
254
|
+
describeRejectsFactoryCall(0, "a", () => {
|
|
255
|
+
itLeavesAsyncGetPromisesInStates(["rejected", "rejected"]);
|
|
256
|
+
describeAsyncCacheGetFor("a", () => {
|
|
257
|
+
itDoesNotRejectLastRequestRightAway();
|
|
258
|
+
itHasOnlyInvokedFactoryNTimes(2);
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
describeAsyncCacheGetFor("b", () => {
|
|
262
|
+
itLeavesAsyncGetPromisesInStates(["pending", "pending", "pending"]);
|
|
263
|
+
itHasOnlyInvokedFactoryNTimes(2);
|
|
264
|
+
describeResolvesFactoryCall(1, "b", () => {
|
|
265
|
+
itLeavesAsyncGetPromisesInStates(["pending", "pending", "fulfilled"]);
|
|
266
|
+
itReturnsForAsyncGet([undefined, undefined, "bResult"]);
|
|
267
|
+
});
|
|
268
|
+
});
|
|
269
|
+
describeResolvesFactoryCall(0, "a", () => {
|
|
270
|
+
itFulfillsAsyncCacheGets([0, 1], "aResult");
|
|
271
|
+
itLeavesAsyncGetPromisesInStates(["fulfilled", "fulfilled"]);
|
|
272
|
+
describeAsyncCacheGetFor("a", () => {
|
|
273
|
+
itHasOnlyInvokedFactoryNTimes(1);
|
|
274
|
+
itLeavesAsyncGetPromisesInStates(["fulfilled", "fulfilled", "fulfilled"]);
|
|
275
|
+
itReturnsForAsyncGet(["aResult", "aResult", "aResult"]);
|
|
276
|
+
});
|
|
277
|
+
});
|
|
278
|
+
});
|
|
279
|
+
});
|
|
280
|
+
});
|
|
281
|
+
});
|
|
282
|
+
});
|
|
283
|
+
//# sourceMappingURL=Cache.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cache.test.js","names":["matchers","pDefer","promiseStateAsync","pStateAsync","beforeAll","beforeEach","describe","expect","it","vi","createAsyncClientCache","createClientCache","extend","createSpys","cache","get","spyOn","remove","set","fauxClient","clientCacheKey","fauxClient2","client","key","Promise","resolve","toEqual","mock","fn","setTimeout","all","toHaveBeenCalledTimes","factoryFn","inProgress","asyncCache","asyncCacheSpies","asyncSetSpy","factoryDefers","getPromises","expectedAsyncSets","expectedFactoryCalls","successfulFetches","pendingFetches","expectedPending","mockImplementation","defer","push","promise","Set","createSyncCacheMock","mockReturnValueOnce","getOrUndefined","expectSaneCalls","initiateAsyncCacheGetFor","has","add","before","getStats","toStrictEqual","asyncCacheGetCalls","resolveFactoryCall","num","value","toBe","calls","toContain","not","delete","fulfilledFactoryCalls","rejectFactoryCall","error","reject","Error","i","length","results","type","toReject","map","d","filter","a","rejectedFactoryCalls","stats","size","itRejectsAllRequestsOf","settledResults","toMatchInlineSnapshot","itDoesNotRejectLastRequestRightAway","at","describeRejectsFactoryCall","describeResolvesFactoryCall","describeAsyncCacheGetFor","itFulfillsAsyncCacheGets","indexes","join","itLeavesAsyncGetPromisesInStates","states","p","itHasOnlyInvokedFactoryNTimes","n","itReturnsForAsyncGet","toHaveBeenCalled","undefined"],"sources":["Cache.test.js"],"sourcesContent":["/*\n * Copyright 2024 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 */\nimport * as matchers from \"jest-extended\";\nimport pDefer from \"p-defer\";\nimport { promiseStateAsync as pStateAsync } from \"p-state\";\nimport { beforeAll, beforeEach, describe, expect, it, vi } from \"vitest\";\nimport { createAsyncClientCache, createClientCache } from \"./Cache.js\";\nexpect.extend(matchers);\nfunction createSpys(cache) {\n return {\n get: vi.spyOn(cache, \"get\"),\n remove: vi.spyOn(cache, \"remove\"),\n set: vi.spyOn(cache, \"set\"),\n };\n}\ndescribe(\"AsyncCache\", () => {\n beforeAll(() => {\n });\n const fauxClient = { clientCacheKey: {} };\n const fauxClient2 = { clientCacheKey: {} };\n it(\"keeps clients separate\", async () => {\n const cache = createAsyncClientCache((client, key) => Promise.resolve(key));\n await cache.set(fauxClient, \"k\", \"v\");\n expect(await cache.get(fauxClient2, \"k\")).toEqual(\"k\");\n });\n it(\"has a client and its copy access the same cache\", async () => {\n const cache = createAsyncClientCache((client, key) => Promise.resolve(key));\n await cache.set(fauxClient, \"k\", \"v\");\n expect(await cache.get({ ...fauxClient }, \"k\")).toEqual(\"v\");\n });\n it(\"does not double factory\", async () => {\n const resolveToKey = (client, key) => new Promise((resolve, reject) => {\n setTimeout(() => resolve(key), 100);\n });\n const mock = vi.fn(resolveToKey);\n const cache = createAsyncClientCache(mock);\n await Promise.all([\n cache.get(fauxClient, \"a\"),\n cache.get(fauxClient, \"a\"),\n cache.get(fauxClient, \"a\"),\n cache.get(fauxClient, \"b\"),\n cache.get(fauxClient, \"b\"),\n cache.get(fauxClient, \"b\"),\n cache.get(fauxClient, \"b\"),\n ]);\n expect(mock).toHaveBeenCalledTimes(2);\n });\n describe(\"race checks\", () => {\n let factoryFn;\n let cache;\n let inProgress;\n let asyncCache;\n let asyncCacheSpies;\n let asyncSetSpy;\n let factoryDefers;\n let getPromises;\n let expectedAsyncSets;\n let expectedFactoryCalls;\n let successfulFetches;\n let pendingFetches;\n let expectedPending = {};\n beforeEach(async () => {\n factoryFn = vi.fn();\n factoryFn.mockImplementation(() => {\n const defer = pDefer();\n factoryDefers.push(defer);\n return defer.promise;\n });\n getPromises = [];\n factoryDefers = [];\n expectedAsyncSets = 0;\n expectedFactoryCalls = 0;\n successfulFetches = new Set();\n pendingFetches = new Set();\n expectedPending = {};\n const createSyncCacheMock = vi.fn();\n cache = createSpys(createClientCache());\n inProgress = createSpys(createClientCache());\n createSyncCacheMock.mockReturnValueOnce(cache);\n createSyncCacheMock.mockReturnValueOnce(inProgress);\n asyncCache = createAsyncClientCache(factoryFn, createSyncCacheMock);\n asyncSetSpy = vi.spyOn(asyncCache, \"set\");\n asyncCacheSpies = {\n get: vi.spyOn(asyncCache, \"get\"),\n set: vi.spyOn(asyncCache, \"set\"),\n getOrUndefined: vi.spyOn(asyncCache, \"getOrUndefined\"),\n };\n await expectSaneCalls();\n });\n function initiateAsyncCacheGetFor(key) {\n return async () => {\n if (!successfulFetches.has(key)) {\n expectedPending[key] = (expectedPending[key] ?? 0) + 1;\n if (!pendingFetches.has(key)) {\n pendingFetches.add(key);\n expectedFactoryCalls++;\n expectedAsyncSets++;\n }\n }\n // check before and after make sense so that `expectSaneCalls` can work\n const before = await getStats();\n getPromises.push(asyncCache.get(fauxClient, key));\n expect(await getStats()).toStrictEqual({\n ...before,\n asyncCacheGetCalls: before.asyncCacheGetCalls + 1,\n // may or may not bump the unique keys\n });\n await expectSaneCalls();\n };\n }\n function resolveFactoryCall(num, key, value = `${key}Result`) {\n return async () => {\n // <preconditions>\n expect(await pStateAsync(factoryDefers[num].promise)).toBe(\"pending\");\n expect(factoryFn.mock.calls[num][1]).toBe(key);\n expect(pendingFetches).toContain(key);\n expect(successfulFetches).not.toContain(key);\n // </preconditions>\n // Update expectations\n pendingFetches.delete(value);\n successfulFetches.add(value);\n // check before and after make sense so that `expectSaneCalls` can work\n const before = await getStats();\n factoryDefers[num].resolve(value);\n expect(await getStats()).toStrictEqual({\n ...before,\n fulfilledFactoryCalls: before.fulfilledFactoryCalls + 1,\n });\n await expectSaneCalls();\n };\n }\n function rejectFactoryCall(num, key, error = `${key}Error`) {\n return async () => {\n expect(factoryFn.mock.calls[num][1]).toBe(key);\n expect(pendingFetches).toContain(key);\n pendingFetches.delete(key);\n factoryDefers[num].reject(new Error(error));\n // we need to ensure the outstanding get promises are rejected\n for (let i = 0; i < asyncCacheSpies.get.mock.calls.length; i++) {\n if (asyncCacheSpies.get.mock.calls[i][1] === key) {\n if (asyncCacheSpies.get.mock.results[i].type === \"return\") {\n expect(getPromises[i]).toReject();\n }\n }\n }\n await expectSaneCalls();\n };\n }\n async function getStats() {\n return {\n fulfilledFactoryCalls: (await Promise.all(factoryDefers.map(d => pStateAsync(d.promise)))).filter(a => a === \"fulfilled\").length,\n rejectedFactoryCalls: (await Promise.all(factoryDefers.map(d => pStateAsync(d.promise)))).filter(a => a === \"rejected\").length,\n asyncCacheGetCalls: asyncCacheSpies.get.mock.calls.length,\n };\n }\n async function expectSaneCalls() {\n const stats = await getStats();\n // both of these should be connected\n expect(factoryFn).toHaveBeenCalledTimes(expectedFactoryCalls);\n expect(inProgress.set).toHaveBeenCalledTimes(expectedFactoryCalls);\n expect(asyncSetSpy).toHaveBeenCalledTimes(expectedAsyncSets);\n // inProgress should be removed after a success or failure\n expect(inProgress.remove).toHaveBeenCalledTimes(stats.fulfilledFactoryCalls + stats.rejectedFactoryCalls);\n // the inner cache gets checked once per async get\n expect(cache.get).toHaveBeenCalledTimes(stats.asyncCacheGetCalls);\n // the inner cache only gets set after a successful factory call\n expect(cache.set).toHaveBeenCalledTimes(successfulFetches.size);\n }\n function itRejectsAllRequestsOf(key) {\n it(`rejects all ${key} requests`, () => {\n for (let i = 0; i < asyncCacheSpies.get.mock.calls.length; i++) {\n if (asyncCacheSpies.get.mock.calls[i][1] === key) {\n expect(asyncCacheSpies.get.mock.settledResults[i].type).toBe(\"rejected\");\n expect(asyncCacheSpies.get.mock.settledResults[i].value)\n .toMatchInlineSnapshot(`[Error: aError]`);\n }\n }\n });\n }\n function itDoesNotRejectLastRequestRightAway() {\n it(\"does not reject right away\", () => {\n expect(asyncCacheSpies.get.mock.results.at(-1)?.type).toBe(\"return\");\n });\n }\n function describeRejectsFactoryCall(num, key, fn) {\n return describe(`rejects factory request ${num} for ${key}`, () => {\n beforeEach(rejectFactoryCall(num, key));\n itRejectsAllRequestsOf(\"a\");\n fn();\n });\n }\n function describeResolvesFactoryCall(num, key, fn) {\n return describe(`resolves factory request ${num} for ${key}`, () => {\n beforeEach(resolveFactoryCall(num, key));\n fn();\n });\n }\n function describeAsyncCacheGetFor(key, fn) {\n return describe(`gets a request for '${key}'`, () => {\n beforeEach(initiateAsyncCacheGetFor(key));\n itDoesNotRejectLastRequestRightAway();\n fn();\n });\n }\n function itFulfillsAsyncCacheGets(indexes, value) {\n it(`fulfills the AsyncCache.get()'s ${indexes.join(\", \")} with '${value}'`, async () => {\n for (const i of indexes) {\n expect(await pStateAsync(getPromises[i])).toBe(\"fulfilled\");\n expect(await getPromises[i]).toBe(value);\n }\n });\n }\n function itLeavesAsyncGetPromisesInStates(states) {\n it(`leaves the AsyncCache.get()'s in states [${states.join(\", \")}]`, async () => {\n expect(await Promise.all(getPromises.map(p => pStateAsync(p))))\n .toStrictEqual(states);\n for (let i = 0; i < states.length; i++) {\n expect(await pStateAsync(getPromises[i])).toBe(states[i]);\n }\n });\n }\n function itHasOnlyInvokedFactoryNTimes(n) {\n it(`has only invoked the factory ${n} times`, () => {\n expect(factoryFn).toHaveBeenCalledTimes(n);\n });\n }\n function itReturnsForAsyncGet(results) {\n it(\"returns for async get\", () => {\n expect(asyncCacheSpies.get.mock.settledResults.map(a => a.value))\n .toEqual(results);\n });\n }\n it(\"has a minimal base state\", () => {\n expect(cache.get).not.toHaveBeenCalled();\n expect(inProgress.get).not.toHaveBeenCalled();\n expect(factoryFn).not.toHaveBeenCalled();\n expect(inProgress.set).not.toHaveBeenCalled();\n });\n describeAsyncCacheGetFor(\"a\", () => {\n itLeavesAsyncGetPromisesInStates([\"pending\"]);\n itHasOnlyInvokedFactoryNTimes(1);\n describeAsyncCacheGetFor(\"a\", () => {\n itLeavesAsyncGetPromisesInStates([\"pending\", \"pending\"]);\n itHasOnlyInvokedFactoryNTimes(1);\n describe(\"before the first resolves\", () => {\n itLeavesAsyncGetPromisesInStates([\"pending\", \"pending\"]);\n itHasOnlyInvokedFactoryNTimes(1);\n describeRejectsFactoryCall(0, \"a\", () => {\n itLeavesAsyncGetPromisesInStates([\"rejected\", \"rejected\"]);\n describeAsyncCacheGetFor(\"a\", () => {\n itDoesNotRejectLastRequestRightAway();\n itHasOnlyInvokedFactoryNTimes(2);\n });\n });\n describeAsyncCacheGetFor(\"b\", () => {\n itLeavesAsyncGetPromisesInStates([\"pending\", \"pending\", \"pending\"]);\n itHasOnlyInvokedFactoryNTimes(2);\n describeResolvesFactoryCall(1, \"b\", () => {\n itLeavesAsyncGetPromisesInStates([\n \"pending\",\n \"pending\",\n \"fulfilled\",\n ]);\n itReturnsForAsyncGet([\n undefined,\n undefined,\n \"bResult\",\n ]);\n });\n });\n describeResolvesFactoryCall(0, \"a\", () => {\n itFulfillsAsyncCacheGets([0, 1], \"aResult\");\n itLeavesAsyncGetPromisesInStates([\n \"fulfilled\",\n \"fulfilled\",\n ]);\n describeAsyncCacheGetFor(\"a\", () => {\n itHasOnlyInvokedFactoryNTimes(1);\n itLeavesAsyncGetPromisesInStates([\n \"fulfilled\",\n \"fulfilled\",\n \"fulfilled\",\n ]);\n itReturnsForAsyncGet([\n \"aResult\",\n \"aResult\",\n \"aResult\",\n ]);\n });\n });\n });\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A simple cache that can be used to store values for a given client.
|
|
3
|
+
*/
|
|
4
|
+
export interface SimpleCache<K, V> {
|
|
5
|
+
get: (key: K) => V;
|
|
6
|
+
set: <X extends V>(key: K, value: X) => X;
|
|
7
|
+
remove: (key: K) => boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Create a new cache with a factory function.
|
|
11
|
+
* @param fn A factory function that will be used to create the value if it does not exist in the cache.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createSimpleCache<K, V>(map: Map<K, V> | (K extends object ? WeakMap<K, V> : never), fn: (k: K) => V): SimpleCache<K, V>;
|
|
14
|
+
/**
|
|
15
|
+
* Create a new cache without a factory function.
|
|
16
|
+
*/
|
|
17
|
+
export declare function createSimpleCache<K, V>(map?: Map<K, V> | (K extends object ? WeakMap<K, V> : never)): SimpleCache<K, V | undefined>;
|
|
18
|
+
/**
|
|
19
|
+
* A simple async cache that can be used to store values for a given client.
|
|
20
|
+
*/
|
|
21
|
+
export interface WeakAsyncCache<K, V> {
|
|
22
|
+
getOrUndefined: (key: K) => V | undefined;
|
|
23
|
+
get: (key: K) => Promise<V>;
|
|
24
|
+
/**
|
|
25
|
+
* @param client the client to key from
|
|
26
|
+
* @param key the sub-key to use
|
|
27
|
+
* @param value the value or a promise to the value
|
|
28
|
+
* @returns a new promise to the resolved value
|
|
29
|
+
*/
|
|
30
|
+
set: (key: K, value: V | Promise<V>) => Promise<V>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create a new cache with an async factory function.
|
|
34
|
+
* @param fn A factory function that will be used to create the value if it does not exist in the cache.
|
|
35
|
+
* @returns
|
|
36
|
+
*/
|
|
37
|
+
export declare function createSimpleAsyncCache<K, V>(type: "weak" | "strong", fn: (key: K) => Promise<V>, createCacheLocal?: typeof createSimpleCache): WeakAsyncCache<K, V>;
|
|
38
|
+
//# sourceMappingURL=SimpleCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleCache.d.ts","sourceRoot":"","sources":["../../../src/object/SimpleCache.ts"],"names":[],"mappings":"AAgBA;;GAEG;AAEH,MAAM,WAAW,WAAW,CAAC,CAAC,EAAE,CAAC;IAC/B,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACnB,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;CAC7B;AACD;;;GAGG;AAEH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EACpC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,EAC3D,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACd,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EACpC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAC3D,WAAW,CACZ,CAAC,EACD,CAAC,GAAG,SAAS,CACd,CAAC;AA4BF;;GAEG;AAEH,MAAM,WAAW,cAAc,CAAC,CAAC,EAAE,CAAC;IAClC,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAE1C,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAE5B;;;;;OAKG;IACH,GAAG,EAAE,CACH,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAClB,OAAO,CAAC,CAAC,CAAC,CAAC;CACjB;AACD;;;;GAIG;AAEH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,CAAC,EACzC,IAAI,EAAE,MAAM,GAAG,QAAQ,EACvB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAC1B,gBAAgB,GAAE,OAAO,iBAAqC,GAC7D,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAmCtB"}
|