shelving 1.236.0 → 1.236.2
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/api/cache/APICache.d.ts +69 -6
- package/api/cache/APICache.js +61 -5
- package/api/cache/EndpointCache.d.ts +75 -7
- package/api/cache/EndpointCache.js +75 -7
- package/api/endpoint/Endpoint.d.ts +141 -25
- package/api/endpoint/Endpoint.js +55 -9
- package/api/endpoint/util.d.ts +28 -6
- package/api/provider/APIProvider.d.ts +58 -14
- package/api/provider/APIProvider.js +24 -2
- package/api/provider/CachedAPIProvider.d.ts +58 -5
- package/api/provider/CachedAPIProvider.js +58 -6
- package/api/provider/ClientAPIProvider.d.ts +80 -4
- package/api/provider/ClientAPIProvider.js +75 -4
- package/api/provider/DebugAPIProvider.d.ts +40 -1
- package/api/provider/DebugAPIProvider.js +40 -1
- package/api/provider/JSONAPIProvider.d.ts +18 -2
- package/api/provider/JSONAPIProvider.js +18 -2
- package/api/provider/LoggingAPIProvider.d.ts +25 -2
- package/api/provider/LoggingAPIProvider.js +25 -2
- package/api/provider/MockAPIProvider.d.ts +72 -1
- package/api/provider/MockAPIProvider.js +60 -4
- package/api/provider/MockEndpointAPIProvider.d.ts +9 -0
- package/api/provider/MockEndpointAPIProvider.js +9 -0
- package/api/provider/ThroughAPIProvider.d.ts +67 -1
- package/api/provider/ThroughAPIProvider.js +67 -1
- package/api/provider/ValidationAPIProvider.d.ts +32 -1
- package/api/provider/ValidationAPIProvider.js +32 -1
- package/api/provider/XMLAPIProvider.d.ts +18 -2
- package/api/provider/XMLAPIProvider.js +18 -2
- package/api/store/EndpointStore.d.ts +24 -1
- package/api/store/EndpointStore.js +24 -1
- package/bun/BunPostgreSQLProvider.d.ts +38 -0
- package/bun/BunPostgreSQLProvider.js +38 -2
- package/cloudflare/CloudflareD1Provider.d.ts +29 -2
- package/cloudflare/CloudflareD1Provider.js +29 -2
- package/cloudflare/CloudflareKVProvider.d.ts +115 -0
- package/cloudflare/CloudflareKVProvider.js +115 -0
- package/cloudflare/types.d.ts +41 -7
- package/db/cache/CollectionCache.d.ts +83 -7
- package/db/cache/CollectionCache.js +83 -7
- package/db/cache/DBCache.d.ts +93 -8
- package/db/cache/DBCache.js +85 -7
- package/db/collection/Collection.d.ts +103 -15
- package/db/collection/Collection.js +58 -6
- package/db/migrate/DBMigrator.d.ts +29 -1
- package/db/migrate/DBMigrator.js +20 -1
- package/db/migrate/PostgreSQLMigrator.d.ts +8 -1
- package/db/migrate/PostgreSQLMigrator.js +8 -1
- package/db/migrate/SQLMigrator.d.ts +63 -4
- package/db/migrate/SQLMigrator.js +51 -1
- package/db/migrate/SQLiteMigrator.d.ts +8 -1
- package/db/migrate/SQLiteMigrator.js +8 -1
- package/db/provider/CacheDBProvider.d.ts +135 -1
- package/db/provider/CacheDBProvider.js +135 -1
- package/db/provider/ChangesDBProvider.d.ts +84 -3
- package/db/provider/ChangesDBProvider.js +77 -2
- package/db/provider/DBProvider.d.ts +148 -1
- package/db/provider/DBProvider.js +51 -1
- package/db/provider/DebugDBProvider.d.ts +118 -1
- package/db/provider/DebugDBProvider.js +118 -1
- package/db/provider/MemoryDBProvider.d.ts +262 -7
- package/db/provider/MemoryDBProvider.js +262 -7
- package/db/provider/MockDBProvider.d.ts +113 -2
- package/db/provider/MockDBProvider.js +106 -1
- package/db/provider/PostgreSQLProvider.d.ts +34 -2
- package/db/provider/PostgreSQLProvider.js +34 -4
- package/db/provider/SQLProvider.d.ts +250 -14
- package/db/provider/SQLProvider.js +237 -13
- package/db/provider/SQLiteProvider.d.ts +41 -1
- package/db/provider/SQLiteProvider.js +41 -4
- package/db/provider/ThroughDBProvider.d.ts +156 -1
- package/db/provider/ThroughDBProvider.js +156 -1
- package/db/provider/ValidationDBProvider.d.ts +120 -1
- package/db/provider/ValidationDBProvider.js +120 -1
- package/db/store/ItemStore.d.ts +38 -2
- package/db/store/ItemStore.js +38 -2
- package/db/store/QueryStore.d.ts +64 -6
- package/db/store/QueryStore.js +64 -6
- package/error/BaseError.d.ts +27 -2
- package/error/BaseError.js +14 -0
- package/error/Errors.d.ts +12 -1
- package/error/Errors.js +12 -1
- package/error/NetworkError.d.ts +13 -1
- package/error/NetworkError.js +13 -1
- package/error/RequestError.d.ts +90 -7
- package/error/RequestError.js +90 -7
- package/error/RequiredError.d.ts +11 -1
- package/error/RequiredError.js +11 -1
- package/error/ResponseError.d.ts +19 -2
- package/error/ResponseError.js +19 -2
- package/error/UnexpectedError.d.ts +14 -1
- package/error/UnexpectedError.js +14 -1
- package/error/UnimplementedError.d.ts +13 -1
- package/error/UnimplementedError.js +13 -1
- package/error/ValueError.d.ts +14 -1
- package/error/ValueError.js +14 -1
- package/extract/DirectoryExtractor.d.ts +35 -1
- package/extract/DirectoryExtractor.js +30 -0
- package/extract/Extractor.d.ts +21 -2
- package/extract/Extractor.js +7 -1
- package/extract/FileExtractor.d.ts +18 -0
- package/extract/FileExtractor.js +18 -0
- package/extract/IndexExtractor.d.ts +36 -1
- package/extract/IndexExtractor.js +31 -0
- package/extract/MarkupExtractor.d.ts +15 -0
- package/extract/MarkupExtractor.js +15 -0
- package/extract/MergingExtractor.d.ts +36 -1
- package/extract/MergingExtractor.js +31 -0
- package/extract/ModuleExtractor.d.ts +25 -1
- package/extract/ModuleExtractor.js +20 -0
- package/extract/PackageExtractor.d.ts +36 -1
- package/extract/PackageExtractor.js +31 -0
- package/extract/ThroughExtractor.d.ts +22 -1
- package/extract/ThroughExtractor.js +22 -1
- package/extract/TypescriptExtractor.d.ts +21 -0
- package/extract/TypescriptExtractor.js +28 -3
- package/firestore/client/FirestoreClientProvider.d.ts +129 -4
- package/firestore/client/FirestoreClientProvider.js +129 -4
- package/firestore/lite/FirestoreLiteProvider.d.ts +128 -3
- package/firestore/lite/FirestoreLiteProvider.js +128 -3
- package/firestore/server/FirestoreServerProvider.d.ts +129 -2
- package/firestore/server/FirestoreServerProvider.js +129 -2
- package/markup/MarkupParser.d.ts +57 -10
- package/markup/MarkupParser.js +50 -9
- package/markup/MarkupRule.d.ts +34 -1
- package/markup/Parser.d.ts +18 -0
- package/markup/Parser.js +11 -0
- package/markup/rule/blockquote.d.ts +3 -0
- package/markup/rule/blockquote.js +3 -0
- package/markup/rule/code.d.ts +3 -0
- package/markup/rule/code.js +3 -0
- package/markup/rule/fenced.d.ts +3 -0
- package/markup/rule/fenced.js +3 -0
- package/markup/rule/heading.d.ts +3 -0
- package/markup/rule/heading.js +3 -0
- package/markup/rule/index.d.ts +16 -3
- package/markup/rule/index.js +16 -3
- package/markup/rule/inline.d.ts +4 -1
- package/markup/rule/inline.js +5 -2
- package/markup/rule/linebreak.d.ts +3 -0
- package/markup/rule/linebreak.js +3 -0
- package/markup/rule/link.d.ts +6 -0
- package/markup/rule/link.js +6 -0
- package/markup/rule/ordered.d.ts +3 -0
- package/markup/rule/ordered.js +3 -0
- package/markup/rule/paragraph.d.ts +3 -0
- package/markup/rule/paragraph.js +3 -0
- package/markup/rule/separator.d.ts +3 -0
- package/markup/rule/separator.js +3 -0
- package/markup/rule/table.d.ts +3 -0
- package/markup/rule/table.js +3 -0
- package/markup/rule/unordered.d.ts +3 -0
- package/markup/rule/unordered.js +3 -0
- package/markup/util/regexp.d.ts +80 -3
- package/markup/util/regexp.js +44 -0
- package/package.json +1 -1
- package/react/createAPIContext.d.ts +15 -0
- package/react/createAPIContext.js +10 -0
- package/react/createDBContext.d.ts +15 -0
- package/react/createDBContext.js +10 -0
- package/react/useInstance.d.ts +11 -0
- package/react/useInstance.js +11 -0
- package/react/useLazy.d.ts +11 -0
- package/react/useMap.d.ts +14 -1
- package/react/useMap.js +14 -1
- package/react/useReduce.d.ts +12 -0
- package/react/useSequence.d.ts +10 -0
- package/react/useSequence.js +10 -0
- package/react/useStore.d.ts +16 -1
- package/schema/AddressSchema.d.ts +41 -4
- package/schema/AddressSchema.js +36 -3
- package/schema/ArraySchema.d.ts +48 -6
- package/schema/ArraySchema.js +40 -5
- package/schema/BooleanSchema.d.ts +59 -3
- package/schema/BooleanSchema.js +51 -2
- package/schema/ChoiceSchema.d.ts +61 -7
- package/schema/ChoiceSchema.js +44 -2
- package/schema/ColorSchema.d.ts +41 -8
- package/schema/ColorSchema.js +36 -7
- package/schema/CountrySchema.d.ts +44 -4
- package/schema/CountrySchema.js +39 -3
- package/schema/CurrencyAmountSchema.d.ts +104 -8
- package/schema/CurrencyAmountSchema.js +91 -4
- package/schema/CurrencyCodeSchema.d.ts +56 -4
- package/schema/CurrencyCodeSchema.js +49 -3
- package/schema/DataSchema.d.ts +101 -10
- package/schema/DataSchema.js +87 -8
- package/schema/DateSchema.d.ts +73 -4
- package/schema/DateSchema.js +57 -2
- package/schema/DateTimeSchema.d.ts +40 -3
- package/schema/DateTimeSchema.js +40 -3
- package/schema/DictionarySchema.d.ts +54 -4
- package/schema/DictionarySchema.js +47 -3
- package/schema/EmailSchema.d.ts +34 -3
- package/schema/EmailSchema.js +34 -3
- package/schema/EntitySchema.d.ts +45 -4
- package/schema/EntitySchema.js +38 -3
- package/schema/FileSchema.d.ts +45 -4
- package/schema/FileSchema.js +39 -3
- package/schema/KeySchema.d.ts +32 -3
- package/schema/KeySchema.js +32 -3
- package/schema/NullableSchema.d.ts +64 -4
- package/schema/NullableSchema.js +59 -3
- package/schema/NumberSchema.d.ts +137 -12
- package/schema/NumberSchema.js +127 -11
- package/schema/OptionalSchema.d.ts +61 -4
- package/schema/OptionalSchema.js +56 -4
- package/schema/PasswordSchema.d.ts +37 -1
- package/schema/PasswordSchema.js +32 -1
- package/schema/PhoneSchema.d.ts +40 -4
- package/schema/PhoneSchema.js +35 -3
- package/schema/RequiredSchema.d.ts +39 -3
- package/schema/RequiredSchema.js +41 -3
- package/schema/Schema.d.ts +67 -7
- package/schema/Schema.js +42 -6
- package/schema/SlugSchema.d.ts +37 -5
- package/schema/SlugSchema.js +37 -5
- package/schema/StringSchema.d.ts +124 -19
- package/schema/StringSchema.js +107 -17
- package/schema/ThroughSchema.d.ts +35 -2
- package/schema/ThroughSchema.js +30 -1
- package/schema/TimeSchema.d.ts +43 -3
- package/schema/TimeSchema.js +43 -3
- package/schema/URISchema.d.ts +67 -6
- package/schema/URISchema.js +60 -6
- package/schema/URLSchema.d.ts +69 -6
- package/schema/URLSchema.js +61 -6
- package/schema/UUIDSchema.d.ts +37 -4
- package/schema/UUIDSchema.js +37 -4
- package/sequence/DeferredSequence.d.ts +49 -3
- package/sequence/DeferredSequence.js +39 -3
- package/sequence/InspectSequence.d.ts +59 -5
- package/sequence/InspectSequence.js +59 -5
- package/sequence/LazySequence.d.ts +30 -2
- package/sequence/LazySequence.js +30 -2
- package/sequence/Sequence.d.ts +11 -0
- package/sequence/Sequence.js +10 -0
- package/sequence/ThroughSequence.d.ts +15 -0
- package/sequence/ThroughSequence.js +15 -0
- package/store/ArrayStore.d.ts +74 -11
- package/store/ArrayStore.js +74 -11
- package/store/BooleanStore.d.ts +19 -2
- package/store/BooleanStore.js +19 -2
- package/store/BusyStore.d.ts +13 -1
- package/store/BusyStore.js +13 -1
- package/store/DataStore.d.ts +118 -15
- package/store/DataStore.js +118 -15
- package/store/DictionaryStore.d.ts +66 -8
- package/store/DictionaryStore.js +66 -8
- package/store/FetchStore.d.ts +43 -6
- package/store/FetchStore.js +36 -5
- package/store/PathStore.d.ts +44 -5
- package/store/PathStore.js +44 -5
- package/store/PayloadFetchStore.d.ts +16 -1
- package/store/PayloadFetchStore.js +9 -1
- package/store/Store.d.ts +85 -16
- package/store/Store.js +52 -10
- package/store/URLStore.d.ts +173 -15
- package/store/URLStore.js +173 -15
- package/test/basics.d.ts +70 -0
- package/test/basics.js +60 -0
- package/test/people.d.ts +45 -0
- package/test/people.js +35 -0
- package/test/util.d.ts +30 -3
- package/test/util.js +30 -3
- package/ui/app/App.d.ts +14 -2
- package/ui/app/App.js +9 -2
- package/ui/app/App.tsx +14 -2
- package/ui/block/Address.d.ts +45 -3
- package/ui/block/Address.js +30 -3
- package/ui/block/Address.tsx +46 -3
- package/ui/block/Block.d.ts +23 -1
- package/ui/block/Block.js +13 -1
- package/ui/block/Block.tsx +23 -1
- package/ui/block/Blockquote.d.ts +21 -0
- package/ui/block/Blockquote.js +16 -0
- package/ui/block/Blockquote.tsx +22 -0
- package/ui/block/Caption.d.ts +21 -1
- package/ui/block/Caption.js +16 -1
- package/ui/block/Caption.tsx +22 -1
- package/ui/block/Card.d.ts +6 -0
- package/ui/block/Card.js +1 -0
- package/ui/block/Card.tsx +6 -0
- package/ui/block/Definitions.d.ts +18 -0
- package/ui/block/Definitions.js +13 -0
- package/ui/block/Definitions.tsx +19 -0
- package/ui/block/Divider.d.ts +21 -0
- package/ui/block/Divider.js +16 -0
- package/ui/block/Divider.tsx +22 -0
- package/ui/block/Heading.d.ts +20 -1
- package/ui/block/Heading.js +15 -0
- package/ui/block/Heading.tsx +21 -1
- package/ui/block/Image.d.ts +23 -0
- package/ui/block/Image.js +18 -0
- package/ui/block/Image.tsx +24 -0
- package/ui/block/Label.d.ts +18 -3
- package/ui/block/Label.js +13 -3
- package/ui/block/Label.tsx +18 -3
- package/ui/block/List.d.ts +30 -0
- package/ui/block/List.js +25 -0
- package/ui/block/List.tsx +32 -0
- package/ui/block/Panel.d.ts +13 -1
- package/ui/block/Panel.js +3 -0
- package/ui/block/Panel.tsx +13 -1
- package/ui/block/Paragraph.d.ts +23 -0
- package/ui/block/Paragraph.js +18 -0
- package/ui/block/Paragraph.tsx +24 -0
- package/ui/block/Preformatted.d.ts +20 -0
- package/ui/block/Preformatted.js +15 -0
- package/ui/block/Preformatted.tsx +21 -0
- package/ui/block/Prose.d.ts +14 -1
- package/ui/block/Prose.js +9 -1
- package/ui/block/Prose.tsx +14 -1
- package/ui/block/Section.d.ts +69 -6
- package/ui/block/Section.js +59 -6
- package/ui/block/Section.tsx +70 -6
- package/ui/block/Subheading.d.ts +20 -1
- package/ui/block/Subheading.js +15 -0
- package/ui/block/Subheading.tsx +21 -1
- package/ui/block/Table.d.ts +20 -0
- package/ui/block/Table.js +15 -0
- package/ui/block/Table.tsx +21 -0
- package/ui/block/Title.d.ts +20 -1
- package/ui/block/Title.js +15 -0
- package/ui/block/Title.tsx +21 -1
- package/ui/block/Video.d.ts +50 -3
- package/ui/block/Video.js +30 -3
- package/ui/block/Video.tsx +50 -3
- package/ui/dialog/Dialog.d.ts +28 -1
- package/ui/dialog/Dialog.js +18 -1
- package/ui/dialog/Dialog.tsx +28 -1
- package/ui/dialog/Dialogs.d.ts +53 -6
- package/ui/dialog/Dialogs.js +43 -6
- package/ui/dialog/Dialogs.tsx +53 -6
- package/ui/dialog/Modal.d.ts +13 -0
- package/ui/dialog/Modal.js +8 -0
- package/ui/dialog/Modal.tsx +13 -0
- package/ui/docs/DocumentationButtons.d.ts +5 -1
- package/ui/docs/DocumentationButtons.tsx +5 -1
- package/ui/docs/DocumentationCard.d.ts +6 -1
- package/ui/docs/DocumentationCard.js +6 -1
- package/ui/docs/DocumentationCard.tsx +6 -1
- package/ui/docs/DocumentationKind.d.ts +13 -1
- package/ui/docs/DocumentationKind.js +8 -0
- package/ui/docs/DocumentationKind.tsx +13 -1
- package/ui/docs/DocumentationPage.d.ts +6 -1
- package/ui/docs/DocumentationPage.js +6 -1
- package/ui/docs/DocumentationPage.tsx +6 -1
- package/ui/docs/DocumentationSignatures.d.ts +10 -1
- package/ui/docs/DocumentationSignatures.js +5 -0
- package/ui/docs/DocumentationSignatures.tsx +10 -1
- package/ui/form/ArrayInput.d.ts +15 -0
- package/ui/form/ArrayInput.tsx +15 -0
- package/ui/form/ArrayRadioInputs.d.ts +10 -0
- package/ui/form/ArrayRadioInputs.js +5 -0
- package/ui/form/ArrayRadioInputs.tsx +10 -0
- package/ui/form/Button.d.ts +19 -3
- package/ui/form/Button.js +14 -2
- package/ui/form/Button.tsx +19 -3
- package/ui/form/ButtonInput.d.ts +14 -1
- package/ui/form/ButtonInput.js +9 -1
- package/ui/form/ButtonInput.tsx +14 -1
- package/ui/form/ButtonInputPopover.d.ts +10 -0
- package/ui/form/ButtonInputPopover.js +5 -0
- package/ui/form/ButtonInputPopover.tsx +10 -0
- package/ui/form/ButtonPopover.d.ts +11 -1
- package/ui/form/ButtonPopover.js +6 -1
- package/ui/form/ButtonPopover.tsx +11 -1
- package/ui/form/CheckboxInput.d.ts +14 -1
- package/ui/form/CheckboxInput.js +9 -1
- package/ui/form/CheckboxInput.tsx +14 -1
- package/ui/form/ChoiceRadioInputs.d.ts +10 -0
- package/ui/form/ChoiceRadioInputs.tsx +10 -0
- package/ui/form/Clickable.d.ts +45 -5
- package/ui/form/Clickable.js +30 -3
- package/ui/form/Clickable.tsx +45 -5
- package/ui/form/DataInput.d.ts +14 -0
- package/ui/form/DataInput.tsx +14 -0
- package/ui/form/DateInput.d.ts +14 -0
- package/ui/form/DateInput.js +9 -0
- package/ui/form/DateInput.tsx +14 -0
- package/ui/form/DictionaryInput.d.ts +15 -0
- package/ui/form/DictionaryInput.tsx +15 -0
- package/ui/form/Field.d.ts +5 -0
- package/ui/form/Field.tsx +5 -0
- package/ui/form/FileInput.d.ts +14 -0
- package/ui/form/FileInput.js +9 -0
- package/ui/form/FileInput.tsx +14 -0
- package/ui/form/Form.d.ts +55 -6
- package/ui/form/Form.js +35 -3
- package/ui/form/Form.tsx +55 -6
- package/ui/form/FormContext.d.ts +24 -3
- package/ui/form/FormContext.js +5 -1
- package/ui/form/FormContext.tsx +24 -3
- package/ui/form/FormFields.d.ts +15 -2
- package/ui/form/FormFields.js +15 -2
- package/ui/form/FormFields.tsx +15 -2
- package/ui/form/FormFooter.d.ts +13 -3
- package/ui/form/FormFooter.js +8 -3
- package/ui/form/FormFooter.tsx +13 -3
- package/ui/form/FormInput.d.ts +21 -2
- package/ui/form/FormInput.js +16 -2
- package/ui/form/FormInput.tsx +21 -2
- package/ui/form/FormMessage.d.ts +8 -1
- package/ui/form/FormMessage.js +8 -1
- package/ui/form/FormMessage.tsx +8 -2
- package/ui/form/FormNotice.d.ts +8 -1
- package/ui/form/FormNotice.js +8 -1
- package/ui/form/FormNotice.tsx +8 -2
- package/ui/form/FormNotify.d.ts +8 -1
- package/ui/form/FormNotify.js +8 -1
- package/ui/form/FormNotify.tsx +8 -2
- package/ui/form/FormStore.d.ts +50 -6
- package/ui/form/FormStore.js +50 -6
- package/ui/form/FormStore.tsx +50 -6
- package/ui/form/Input.d.ts +65 -1
- package/ui/form/Input.js +60 -0
- package/ui/form/Input.tsx +77 -1
- package/ui/form/NumberInput.d.ts +14 -0
- package/ui/form/NumberInput.js +9 -0
- package/ui/form/NumberInput.tsx +14 -0
- package/ui/form/OutputInput.d.ts +13 -1
- package/ui/form/OutputInput.js +8 -1
- package/ui/form/OutputInput.tsx +13 -1
- package/ui/form/Popover.d.ts +18 -2
- package/ui/form/Popover.js +8 -2
- package/ui/form/Popover.tsx +18 -2
- package/ui/form/Progress.d.ts +26 -2
- package/ui/form/Progress.js +16 -2
- package/ui/form/Progress.tsx +26 -2
- package/ui/form/QueryInput.d.ts +14 -5
- package/ui/form/QueryInput.js +9 -5
- package/ui/form/QueryInput.tsx +14 -5
- package/ui/form/RadioInput.d.ts +14 -1
- package/ui/form/RadioInput.js +9 -1
- package/ui/form/RadioInput.tsx +14 -1
- package/ui/form/SchemaInput.d.ts +138 -7
- package/ui/form/SchemaInput.js +79 -4
- package/ui/form/SchemaInput.tsx +138 -7
- package/ui/form/SelectInput.d.ts +14 -0
- package/ui/form/SelectInput.tsx +14 -0
- package/ui/form/SubmitButton.d.ts +14 -1
- package/ui/form/SubmitButton.js +9 -1
- package/ui/form/SubmitButton.tsx +14 -1
- package/ui/form/TextInput.d.ts +15 -0
- package/ui/form/TextInput.js +10 -0
- package/ui/form/TextInput.tsx +15 -0
- package/ui/inline/Code.d.ts +29 -0
- package/ui/inline/Code.js +24 -0
- package/ui/inline/Code.tsx +31 -0
- package/ui/inline/Deleted.d.ts +23 -0
- package/ui/inline/Deleted.js +18 -0
- package/ui/inline/Deleted.tsx +24 -0
- package/ui/inline/Emphasis.d.ts +23 -0
- package/ui/inline/Emphasis.js +18 -0
- package/ui/inline/Emphasis.tsx +24 -0
- package/ui/inline/Inserted.d.ts +23 -0
- package/ui/inline/Inserted.js +18 -0
- package/ui/inline/Inserted.tsx +24 -0
- package/ui/inline/Link.d.ts +23 -0
- package/ui/inline/Link.js +18 -0
- package/ui/inline/Link.tsx +24 -0
- package/ui/inline/Mark.d.ts +23 -0
- package/ui/inline/Mark.js +18 -0
- package/ui/inline/Mark.tsx +24 -0
- package/ui/inline/Small.d.ts +23 -0
- package/ui/inline/Small.js +18 -0
- package/ui/inline/Small.tsx +24 -0
- package/ui/inline/Strong.d.ts +23 -0
- package/ui/inline/Strong.js +18 -0
- package/ui/inline/Strong.tsx +24 -0
- package/ui/inline/Subscript.d.ts +23 -0
- package/ui/inline/Subscript.js +18 -0
- package/ui/inline/Subscript.tsx +24 -0
- package/ui/inline/Superscript.d.ts +23 -0
- package/ui/inline/Superscript.js +18 -0
- package/ui/inline/Superscript.tsx +24 -0
- package/ui/inline/When.d.ts +42 -3
- package/ui/inline/When.js +27 -3
- package/ui/inline/When.tsx +42 -3
- package/ui/layout/CenteredLayout.d.ts +12 -1
- package/ui/layout/CenteredLayout.js +7 -1
- package/ui/layout/CenteredLayout.tsx +12 -1
- package/ui/layout/Layout.d.ts +12 -3
- package/ui/layout/Layout.js +12 -3
- package/ui/layout/Layout.ts +12 -3
- package/ui/layout/SidebarLayout.d.ts +12 -0
- package/ui/layout/SidebarLayout.js +7 -0
- package/ui/layout/SidebarLayout.tsx +12 -0
- package/ui/menu/Menu.d.ts +22 -0
- package/ui/menu/Menu.js +12 -0
- package/ui/menu/Menu.tsx +22 -0
- package/ui/misc/Catcher.d.ts +77 -5
- package/ui/misc/Catcher.js +47 -5
- package/ui/misc/Catcher.tsx +77 -5
- package/ui/misc/Loading.d.ts +20 -0
- package/ui/misc/Loading.js +15 -0
- package/ui/misc/Loading.tsx +20 -0
- package/ui/misc/Mapper.d.ts +13 -1
- package/ui/misc/Mapper.js +4 -0
- package/ui/misc/Mapper.tsx +13 -1
- package/ui/misc/Markup.d.ts +9 -1
- package/ui/misc/Markup.js +4 -0
- package/ui/misc/Markup.tsx +9 -1
- package/ui/misc/MetaContext.d.ts +24 -7
- package/ui/misc/MetaContext.js +19 -6
- package/ui/misc/MetaContext.tsx +24 -7
- package/ui/misc/StatusIcon.d.ts +16 -1
- package/ui/misc/StatusIcon.js +11 -1
- package/ui/misc/StatusIcon.tsx +16 -1
- package/ui/misc/Tag.d.ts +21 -0
- package/ui/misc/Tag.js +11 -0
- package/ui/misc/Tag.tsx +21 -0
- package/ui/notice/Message.d.ts +27 -1
- package/ui/notice/Message.js +22 -1
- package/ui/notice/Message.tsx +27 -1
- package/ui/notice/Notice.d.ts +24 -0
- package/ui/notice/Notice.js +19 -0
- package/ui/notice/Notice.tsx +24 -0
- package/ui/notice/NoticeStore.d.ts +30 -2
- package/ui/notice/NoticeStore.js +30 -2
- package/ui/notice/NoticeStore.ts +30 -2
- package/ui/notice/Notices.d.ts +11 -1
- package/ui/notice/Notices.js +6 -1
- package/ui/notice/Notices.tsx +11 -1
- package/ui/notice/NoticesStore.d.ts +23 -3
- package/ui/notice/NoticesStore.js +23 -3
- package/ui/notice/NoticesStore.ts +23 -3
- package/ui/page/HTML.d.ts +13 -2
- package/ui/page/HTML.js +8 -2
- package/ui/page/HTML.tsx +13 -2
- package/ui/page/Head.d.ts +5 -1
- package/ui/page/Head.js +5 -1
- package/ui/page/Head.tsx +5 -1
- package/ui/page/Page.d.ts +12 -1
- package/ui/page/Page.js +7 -1
- package/ui/page/Page.tsx +12 -1
- package/ui/router/Navigation.d.ts +11 -0
- package/ui/router/Navigation.js +6 -0
- package/ui/router/Navigation.tsx +11 -0
- package/ui/router/NavigationContext.d.ts +14 -2
- package/ui/router/NavigationContext.js +14 -2
- package/ui/router/NavigationContext.tsx +14 -2
- package/ui/router/NavigationStore.d.ts +29 -1
- package/ui/router/NavigationStore.js +29 -1
- package/ui/router/NavigationStore.tsx +29 -1
- package/ui/router/Router.d.ts +12 -1
- package/ui/router/Router.js +7 -1
- package/ui/router/Router.tsx +12 -1
- package/ui/router/Routes.d.ts +14 -4
- package/ui/router/Routes.tsx +14 -4
- package/ui/style/Color.d.ts +15 -2
- package/ui/style/Color.js +5 -0
- package/ui/style/Color.tsx +15 -2
- package/ui/style/Flex.d.ts +41 -4
- package/ui/style/Flex.js +26 -3
- package/ui/style/Flex.tsx +41 -4
- package/ui/style/Gap.d.ts +18 -3
- package/ui/style/Gap.js +8 -1
- package/ui/style/Gap.tsx +18 -3
- package/ui/style/Padding.d.ts +18 -3
- package/ui/style/Padding.js +8 -1
- package/ui/style/Padding.tsx +18 -3
- package/ui/style/Scroll.d.ts +36 -1
- package/ui/style/Scroll.js +26 -1
- package/ui/style/Scroll.tsx +37 -1
- package/ui/style/Space.d.ts +18 -3
- package/ui/style/Space.js +8 -1
- package/ui/style/Space.tsx +18 -3
- package/ui/style/Status.d.ts +23 -7
- package/ui/style/Status.js +13 -5
- package/ui/style/Status.tsx +23 -7
- package/ui/style/Tint.d.ts +7 -1
- package/ui/style/Tint.js +7 -1
- package/ui/style/Tint.tsx +7 -1
- package/ui/style/Typography.d.ts +38 -6
- package/ui/style/Typography.js +8 -0
- package/ui/style/Typography.tsx +38 -6
- package/ui/style/Width.d.ts +18 -1
- package/ui/style/Width.js +8 -0
- package/ui/style/Width.tsx +18 -1
- package/ui/transition/CollapseTransition.d.ts +13 -0
- package/ui/transition/CollapseTransition.js +8 -0
- package/ui/transition/CollapseTransition.tsx +13 -0
- package/ui/transition/FadeTransition.d.ts +13 -0
- package/ui/transition/FadeTransition.js +8 -0
- package/ui/transition/FadeTransition.tsx +13 -0
- package/ui/transition/HorizontalTransition.d.ts +13 -0
- package/ui/transition/HorizontalTransition.js +8 -0
- package/ui/transition/HorizontalTransition.tsx +13 -0
- package/ui/transition/Transition.d.ts +12 -4
- package/ui/transition/Transition.js +7 -3
- package/ui/transition/Transition.tsx +12 -4
- package/ui/transition/VerticalTransition.d.ts +13 -0
- package/ui/transition/VerticalTransition.js +8 -0
- package/ui/transition/VerticalTransition.tsx +13 -0
- package/ui/transition/util.d.ts +16 -6
- package/ui/transition/util.js +7 -1
- package/ui/transition/util.tsx +16 -6
- package/ui/tree/TreeApp.d.ts +11 -0
- package/ui/tree/TreeApp.js +6 -0
- package/ui/tree/TreeApp.tsx +11 -0
- package/ui/tree/TreeBreadcrumbs.d.ts +11 -0
- package/ui/tree/TreeBreadcrumbs.js +6 -0
- package/ui/tree/TreeBreadcrumbs.tsx +11 -0
- package/ui/tree/TreeButton.d.ts +9 -1
- package/ui/tree/TreeButton.js +4 -0
- package/ui/tree/TreeButton.tsx +9 -1
- package/ui/tree/TreeCard.d.ts +8 -1
- package/ui/tree/TreeCard.js +8 -1
- package/ui/tree/TreeCard.tsx +8 -1
- package/ui/tree/TreeCards.d.ts +16 -1
- package/ui/tree/TreeCards.js +11 -1
- package/ui/tree/TreeCards.tsx +16 -1
- package/ui/tree/TreeContext.d.ts +18 -1
- package/ui/tree/TreeContext.js +18 -1
- package/ui/tree/TreeContext.tsx +18 -1
- package/ui/tree/TreeMenu.d.ts +28 -1
- package/ui/tree/TreeMenu.js +23 -1
- package/ui/tree/TreeMenu.tsx +28 -1
- package/ui/tree/TreePage.d.ts +6 -0
- package/ui/tree/TreePage.js +6 -0
- package/ui/tree/TreePage.tsx +6 -0
- package/ui/tree/TreeRouter.d.ts +17 -2
- package/ui/tree/TreeRouter.js +12 -2
- package/ui/tree/TreeRouter.tsx +17 -2
- package/ui/tree/TreeSidebar.d.ts +11 -0
- package/ui/tree/TreeSidebar.js +6 -0
- package/ui/tree/TreeSidebar.tsx +11 -0
- package/ui/util/context.d.ts +13 -1
- package/ui/util/context.ts +13 -1
- package/ui/util/css.d.ts +17 -4
- package/ui/util/css.js +5 -1
- package/ui/util/css.ts +17 -4
- package/ui/util/event.d.ts +9 -1
- package/ui/util/event.js +9 -1
- package/ui/util/event.ts +9 -1
- package/ui/util/focus.d.ts +24 -5
- package/ui/util/focus.js +24 -5
- package/ui/util/focus.ts +24 -5
- package/ui/util/meta.d.ts +113 -21
- package/ui/util/meta.js +73 -13
- package/ui/util/meta.ts +113 -21
- package/ui/util/notice.d.ts +98 -10
- package/ui/util/notice.js +93 -9
- package/ui/util/notice.ts +98 -10
- package/ui/util/props.d.ts +10 -2
- package/ui/util/props.ts +10 -2
- package/ui/util/refresh.d.ts +10 -1
- package/ui/util/refresh.js +10 -1
- package/ui/util/refresh.ts +10 -1
- package/ui/util/scroll.d.ts +20 -4
- package/ui/util/scroll.js +20 -4
- package/ui/util/scroll.ts +20 -4
- package/ui/util/state.d.ts +19 -5
- package/ui/util/state.js +19 -5
- package/ui/util/state.ts +19 -5
- package/util/ansi.d.ts +118 -0
- package/util/ansi.js +116 -0
- package/util/array.d.ts +349 -33
- package/util/array.js +284 -27
- package/util/async.d.ts +87 -9
- package/util/async.js +80 -8
- package/util/base64.d.ts +56 -6
- package/util/base64.js +56 -6
- package/util/boolean.d.ts +75 -10
- package/util/boolean.js +75 -10
- package/util/buffer.d.ts +26 -3
- package/util/buffer.js +21 -3
- package/util/bytes.d.ts +42 -4
- package/util/bytes.js +32 -2
- package/util/class.d.ts +59 -8
- package/util/class.js +44 -5
- package/util/color.d.ts +131 -13
- package/util/color.js +126 -12
- package/util/constants.d.ts +132 -19
- package/util/constants.js +132 -19
- package/util/crypto.d.ts +17 -1
- package/util/crypto.js +17 -1
- package/util/currency.d.ts +38 -4
- package/util/currency.js +33 -3
- package/util/data.d.ts +139 -24
- package/util/data.js +39 -5
- package/util/date.d.ts +152 -18
- package/util/date.js +147 -17
- package/util/debug.d.ts +112 -11
- package/util/debug.js +114 -11
- package/util/dictionary.d.ts +205 -24
- package/util/dictionary.js +162 -17
- package/util/diff.d.ts +22 -3
- package/util/diff.js +11 -1
- package/util/dispose.d.ts +74 -2
- package/util/dispose.js +74 -2
- package/util/duration.d.ts +278 -16
- package/util/duration.js +267 -15
- package/util/element.d.ts +59 -6
- package/util/element.js +32 -3
- package/util/entity.d.ts +39 -6
- package/util/entity.js +5 -1
- package/util/entry.d.ts +56 -9
- package/util/entry.js +32 -4
- package/util/env.d.ts +26 -4
- package/util/env.js +26 -4
- package/util/equal.d.ts +181 -17
- package/util/equal.js +181 -17
- package/util/error.d.ts +57 -5
- package/util/error.js +52 -4
- package/util/file.d.ts +30 -7
- package/util/file.js +25 -6
- package/util/filter.d.ts +36 -4
- package/util/filter.js +31 -3
- package/util/focus.d.ts +9 -1
- package/util/focus.js +9 -1
- package/util/format.d.ts +186 -22
- package/util/format.js +135 -14
- package/util/function.d.ts +66 -11
- package/util/function.js +31 -4
- package/util/geo.d.ts +60 -8
- package/util/geo.js +45 -5
- package/util/hash.d.ts +21 -2
- package/util/hash.js +21 -2
- package/util/http.d.ts +134 -19
- package/util/http.js +94 -11
- package/util/hydrate.d.ts +19 -2
- package/util/hydrate.js +12 -1
- package/util/item.d.ts +70 -11
- package/util/item.js +35 -4
- package/util/iterate.d.ts +109 -13
- package/util/iterate.js +86 -10
- package/util/jwt.d.ts +47 -13
- package/util/jwt.js +36 -12
- package/util/lazy.d.ts +9 -6
- package/util/link.d.ts +10 -3
- package/util/link.js +5 -2
- package/util/log.d.ts +26 -3
- package/util/log.js +26 -3
- package/util/map.d.ts +144 -19
- package/util/map.js +101 -11
- package/util/merge.d.ts +23 -1
- package/util/merge.js +6 -0
- package/util/null.d.ts +102 -13
- package/util/null.js +92 -11
- package/util/number.d.ts +125 -8
- package/util/number.js +120 -7
- package/util/object.d.ts +263 -31
- package/util/object.js +154 -17
- package/util/path.d.ts +91 -15
- package/util/path.js +60 -9
- package/util/query.d.ts +78 -9
- package/util/query.js +58 -6
- package/util/random.d.ts +67 -4
- package/util/random.js +67 -4
- package/util/regexp.d.ts +201 -24
- package/util/regexp.js +106 -11
- package/util/sequence.d.ts +66 -8
- package/util/sequence.js +52 -7
- package/util/serialise.d.ts +7 -1
- package/util/serialise.js +7 -1
- package/util/set.d.ts +103 -13
- package/util/set.js +83 -9
- package/util/sort.d.ts +32 -7
- package/util/sort.js +26 -6
- package/util/source.d.ts +28 -3
- package/util/source.js +22 -2
- package/util/start.d.ts +62 -5
- package/util/start.js +47 -2
- package/util/string.d.ts +209 -25
- package/util/string.js +188 -21
- package/util/template.d.ts +58 -9
- package/util/template.js +45 -6
- package/util/timeout.d.ts +35 -11
- package/util/timeout.js +35 -11
- package/util/transform.d.ts +87 -8
- package/util/transform.js +75 -7
- package/util/tree.d.ts +39 -6
- package/util/tree.js +3 -0
- package/util/types.d.ts +8 -2
- package/util/undefined.d.ts +47 -6
- package/util/undefined.js +47 -6
- package/util/units.d.ts +107 -12
- package/util/units.js +97 -12
- package/util/update.d.ts +36 -4
- package/util/update.js +24 -2
- package/util/uri.d.ts +138 -6
- package/util/uri.js +44 -3
- package/util/url.d.ts +152 -7
- package/util/url.js +136 -5
- package/util/uuid.d.ts +28 -3
- package/util/uuid.js +28 -3
- package/util/validate.d.ts +85 -20
- package/util/validate.js +61 -12
- package/util/xml.d.ts +9 -10
- package/util/xml.js +9 -10
package/util/map.d.ts
CHANGED
|
@@ -1,45 +1,170 @@
|
|
|
1
1
|
import type { Entry } from "./entry.js";
|
|
2
2
|
import type { AnyCaller } from "./function.js";
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* `Map` that cannot be changed.
|
|
5
|
+
*
|
|
6
|
+
* @see https://dhoulb.github.io/shelving/util/map/ImmutableMap
|
|
7
|
+
*/
|
|
4
8
|
export type ImmutableMap<K = unknown, T = unknown> = ReadonlyMap<K, T>;
|
|
5
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Class for a `Map` that cannot be changed (so you can extend `Map` while implementing `ImmutableMap`).
|
|
11
|
+
*
|
|
12
|
+
* @see https://dhoulb.github.io/shelving/util/map/ImmutableMap
|
|
13
|
+
*/
|
|
6
14
|
export declare const ImmutableMap: {
|
|
7
15
|
new <K, T>(...params: ConstructorParameters<typeof Map<K, T>>): ImmutableMap<K, T>;
|
|
8
16
|
};
|
|
9
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* `Map` that can be changed.
|
|
19
|
+
*
|
|
20
|
+
* @see https://dhoulb.github.io/shelving/util/map/MutableMap
|
|
21
|
+
*/
|
|
10
22
|
export type MutableMap<K = unknown, T = unknown> = Map<K, T>;
|
|
11
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* Extract the type for the key of a map.
|
|
25
|
+
*
|
|
26
|
+
* @see https://dhoulb.github.io/shelving/util/map/MapKey
|
|
27
|
+
*/
|
|
12
28
|
export type MapKey<X> = X extends ReadonlyMap<infer Y, unknown> ? Y : never;
|
|
13
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Extract the type for the value of a map.
|
|
31
|
+
*
|
|
32
|
+
* @see https://dhoulb.github.io/shelving/util/map/MapValue
|
|
33
|
+
*/
|
|
14
34
|
export type MapValue<X> = X extends ReadonlyMap<unknown, infer Y> ? Y : never;
|
|
15
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* Get the type for an item of a map in entry format.
|
|
37
|
+
*
|
|
38
|
+
* @see https://dhoulb.github.io/shelving/util/map/MapItem
|
|
39
|
+
*/
|
|
16
40
|
export type MapItem<T extends ImmutableMap> = readonly [MapKey<T>, MapValue<T>];
|
|
17
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* Things that can be converted to maps.
|
|
43
|
+
*
|
|
44
|
+
* @see https://dhoulb.github.io/shelving/util/map/PossibleMap
|
|
45
|
+
*/
|
|
18
46
|
export type PossibleMap<K, T> = ImmutableMap<K, T> | Iterable<Entry<K, T>>;
|
|
19
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* Things that can be converted to maps with string keys.
|
|
49
|
+
*
|
|
50
|
+
* @see https://dhoulb.github.io/shelving/util/map/PossibleStringMap
|
|
51
|
+
*/
|
|
20
52
|
export type PossibleStringMap<K extends string, T> = PossibleMap<K, T> | {
|
|
21
53
|
readonly [KK in K]: T;
|
|
22
54
|
};
|
|
23
|
-
/**
|
|
55
|
+
/**
|
|
56
|
+
* Is an unknown value a map?
|
|
57
|
+
*
|
|
58
|
+
* @param value The value to test.
|
|
59
|
+
* @returns `true` if `value` is a `Map` instance, otherwise `false`.
|
|
60
|
+
* @example isMap(new Map()) // true
|
|
61
|
+
* @see https://dhoulb.github.io/shelving/util/map/isMap
|
|
62
|
+
*/
|
|
24
63
|
export declare function isMap(value: unknown): value is ImmutableMap;
|
|
25
|
-
/**
|
|
64
|
+
/**
|
|
65
|
+
* Assert that a value is a `Map` instance.
|
|
66
|
+
*
|
|
67
|
+
* @param value The value to assert.
|
|
68
|
+
* @param caller Function used to attribute a thrown error to the calling site.
|
|
69
|
+
* @returns Nothing; narrows `value` to `ImmutableMap`.
|
|
70
|
+
* @throws {RequiredError} If `value` is not a `Map` instance.
|
|
71
|
+
* @example assertMap(new Map()); // passes
|
|
72
|
+
* @see https://dhoulb.github.io/shelving/util/map/assertMap
|
|
73
|
+
*/
|
|
26
74
|
export declare function assertMap(value: unknown, caller?: AnyCaller): asserts value is ImmutableMap;
|
|
27
|
-
/**
|
|
75
|
+
/**
|
|
76
|
+
* Convert an iterable to a `Map` (if it's already a `Map` it passes through unchanged).
|
|
77
|
+
*
|
|
78
|
+
* @param input The map, object, or iterable of entries to convert.
|
|
79
|
+
* @returns An `ImmutableMap` — the input unchanged if it's already a `Map`, otherwise a new `Map`.
|
|
80
|
+
* @example getMap({ a: 1, b: 2 }) // Map { "a" => 1, "b" => 2 }
|
|
81
|
+
* @see https://dhoulb.github.io/shelving/util/map/getMap
|
|
82
|
+
*/
|
|
28
83
|
export declare function getMap<K extends string, T>(input: PossibleStringMap<K, T>): ImmutableMap<K, T>;
|
|
29
84
|
export declare function getMap<K, T>(input: PossibleMap<K, T>): ImmutableMap<K, T>;
|
|
30
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* Apply a limit to a map.
|
|
87
|
+
* - Returns the input map unchanged if the limit is not smaller than its size.
|
|
88
|
+
*
|
|
89
|
+
* @param map The map to limit.
|
|
90
|
+
* @param limit The maximum number of items to keep.
|
|
91
|
+
* @returns An `ImmutableMap` with at most `limit` items (the input map unchanged if it already fits).
|
|
92
|
+
* @example limitMap(new Map([["a", 1], ["b", 2]]), 1) // Map { "a" => 1 }
|
|
93
|
+
* @see https://dhoulb.github.io/shelving/util/map/limitMap
|
|
94
|
+
*/
|
|
31
95
|
export declare function limitMap<T>(map: ImmutableMap<T>, limit: number): ImmutableMap<T>;
|
|
32
|
-
/**
|
|
96
|
+
/**
|
|
97
|
+
* Is an unknown value a key for an item in a map?
|
|
98
|
+
*
|
|
99
|
+
* @param map The map to look in.
|
|
100
|
+
* @param key The candidate key to test.
|
|
101
|
+
* @returns `true` if `key` exists in `map`, otherwise `false`.
|
|
102
|
+
* @example isMapItem(new Map([["a", 1]]), "a") // true
|
|
103
|
+
* @see https://dhoulb.github.io/shelving/util/map/isMapItem
|
|
104
|
+
*/
|
|
33
105
|
export declare function isMapItem<K, V>(map: ImmutableMap<K, V>, key: unknown): key is K;
|
|
34
|
-
/**
|
|
106
|
+
/**
|
|
107
|
+
* Assert that an unknown value is a key for an item in a map.
|
|
108
|
+
*
|
|
109
|
+
* @param map The map to look in.
|
|
110
|
+
* @param key The candidate key to assert.
|
|
111
|
+
* @param caller Function used to attribute a thrown error to the calling site.
|
|
112
|
+
* @returns Nothing; narrows `key` to the map's key type.
|
|
113
|
+
* @throws {RequiredError} If `key` does not exist in `map`.
|
|
114
|
+
* @example assertMapItem(new Map([["a", 1]]), "a"); // passes
|
|
115
|
+
* @see https://dhoulb.github.io/shelving/util/map/assertMapItem
|
|
116
|
+
*/
|
|
35
117
|
export declare function assertMapItem<K, V>(map: ImmutableMap<K, V>, key: unknown, caller?: AnyCaller): asserts key is K;
|
|
36
|
-
/**
|
|
118
|
+
/**
|
|
119
|
+
* Set an item in a map (by reference) and return the value that was set.
|
|
120
|
+
*
|
|
121
|
+
* @param map The mutable map to set the item on.
|
|
122
|
+
* @param key The key to set.
|
|
123
|
+
* @param value The value to set.
|
|
124
|
+
* @returns The `value` that was set.
|
|
125
|
+
* @example setMapItem(map, "a", 1) // 1
|
|
126
|
+
* @see https://dhoulb.github.io/shelving/util/map/setMapItem
|
|
127
|
+
*/
|
|
37
128
|
export declare function setMapItem<K, T>(map: MutableMap<K, T>, key: K, value: T): T;
|
|
38
|
-
/**
|
|
129
|
+
/**
|
|
130
|
+
* Add multiple items to a map (by reference).
|
|
131
|
+
*
|
|
132
|
+
* @param map The mutable map to set the items on.
|
|
133
|
+
* @param items Iterable of key/value entries to set.
|
|
134
|
+
* @returns Nothing; mutates `map` in place.
|
|
135
|
+
* @example setMapItems(map, [["a", 1], ["b", 2]]);
|
|
136
|
+
* @see https://dhoulb.github.io/shelving/util/map/setMapItems
|
|
137
|
+
*/
|
|
39
138
|
export declare function setMapItems<K, T>(map: MutableMap<K, T>, items: Iterable<MapItem<ImmutableMap<K, T>>>): void;
|
|
40
|
-
/**
|
|
139
|
+
/**
|
|
140
|
+
* Remove multiple items from a map (by reference).
|
|
141
|
+
*
|
|
142
|
+
* @param map The mutable map to remove the items from.
|
|
143
|
+
* @param keys The keys to delete.
|
|
144
|
+
* @returns Nothing; mutates `map` in place.
|
|
145
|
+
* @example removeMapItems(map, "a", "b");
|
|
146
|
+
* @see https://dhoulb.github.io/shelving/util/map/removeMapItems
|
|
147
|
+
*/
|
|
41
148
|
export declare function removeMapItems<K, T>(map: MutableMap<K, T>, ...keys: K[]): void;
|
|
42
|
-
/**
|
|
149
|
+
/**
|
|
150
|
+
* Get an item in a map, or `undefined` if it doesn't exist.
|
|
151
|
+
*
|
|
152
|
+
* @param map The map to read from.
|
|
153
|
+
* @param key The key to look up.
|
|
154
|
+
* @returns The value for `key`, or `undefined` if it doesn't exist.
|
|
155
|
+
* @example getMapItem(new Map([["a", 1]]), "a") // 1
|
|
156
|
+
* @see https://dhoulb.github.io/shelving/util/map/getMapItem
|
|
157
|
+
*/
|
|
43
158
|
export declare function getMapItem<K, T>(map: ImmutableMap<K, T>, key: K): T | undefined;
|
|
44
|
-
/**
|
|
159
|
+
/**
|
|
160
|
+
* Get an item in a map, or throw `RequiredError` if it doesn't exist.
|
|
161
|
+
*
|
|
162
|
+
* @param map The map to read from.
|
|
163
|
+
* @param key The key to look up.
|
|
164
|
+
* @param caller Function used to attribute a thrown error to the calling site.
|
|
165
|
+
* @returns The value for `key`.
|
|
166
|
+
* @throws {RequiredError} If `key` does not exist in `map`.
|
|
167
|
+
* @example requireMapItem(new Map([["a", 1]]), "a") // 1
|
|
168
|
+
* @see https://dhoulb.github.io/shelving/util/map/requireMapItem
|
|
169
|
+
*/
|
|
45
170
|
export declare function requireMapItem<K, T>(map: ImmutableMap<K, T>, key: K, caller?: AnyCaller): T;
|
package/util/map.js
CHANGED
|
@@ -1,12 +1,32 @@
|
|
|
1
1
|
import { RequiredError } from "../error/RequiredError.js";
|
|
2
2
|
import { isIterable, limitItems } from "./iterate.js";
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Class for a `Map` that cannot be changed (so you can extend `Map` while implementing `ImmutableMap`).
|
|
5
|
+
*
|
|
6
|
+
* @see https://dhoulb.github.io/shelving/util/map/ImmutableMap
|
|
7
|
+
*/
|
|
4
8
|
export const ImmutableMap = Map;
|
|
5
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Is an unknown value a map?
|
|
11
|
+
*
|
|
12
|
+
* @param value The value to test.
|
|
13
|
+
* @returns `true` if `value` is a `Map` instance, otherwise `false`.
|
|
14
|
+
* @example isMap(new Map()) // true
|
|
15
|
+
* @see https://dhoulb.github.io/shelving/util/map/isMap
|
|
16
|
+
*/
|
|
6
17
|
export function isMap(value) {
|
|
7
18
|
return value instanceof Map;
|
|
8
19
|
}
|
|
9
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* Assert that a value is a `Map` instance.
|
|
22
|
+
*
|
|
23
|
+
* @param value The value to assert.
|
|
24
|
+
* @param caller Function used to attribute a thrown error to the calling site.
|
|
25
|
+
* @returns Nothing; narrows `value` to `ImmutableMap`.
|
|
26
|
+
* @throws {RequiredError} If `value` is not a `Map` instance.
|
|
27
|
+
* @example assertMap(new Map()); // passes
|
|
28
|
+
* @see https://dhoulb.github.io/shelving/util/map/assertMap
|
|
29
|
+
*/
|
|
10
30
|
export function assertMap(value, caller = assertMap) {
|
|
11
31
|
if (!isMap(value))
|
|
12
32
|
throw new RequiredError("Must be map", { received: value, caller });
|
|
@@ -14,39 +34,109 @@ export function assertMap(value, caller = assertMap) {
|
|
|
14
34
|
export function getMap(input) {
|
|
15
35
|
return isMap(input) ? input : new Map(isIterable(input) ? input : Object.entries(input));
|
|
16
36
|
}
|
|
17
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* Apply a limit to a map.
|
|
39
|
+
* - Returns the input map unchanged if the limit is not smaller than its size.
|
|
40
|
+
*
|
|
41
|
+
* @param map The map to limit.
|
|
42
|
+
* @param limit The maximum number of items to keep.
|
|
43
|
+
* @returns An `ImmutableMap` with at most `limit` items (the input map unchanged if it already fits).
|
|
44
|
+
* @example limitMap(new Map([["a", 1], ["b", 2]]), 1) // Map { "a" => 1 }
|
|
45
|
+
* @see https://dhoulb.github.io/shelving/util/map/limitMap
|
|
46
|
+
*/
|
|
18
47
|
export function limitMap(map, limit) {
|
|
19
48
|
return limit > map.size ? map : new Map(limitItems(map, limit));
|
|
20
49
|
}
|
|
21
|
-
/**
|
|
50
|
+
/**
|
|
51
|
+
* Is an unknown value a key for an item in a map?
|
|
52
|
+
*
|
|
53
|
+
* @param map The map to look in.
|
|
54
|
+
* @param key The candidate key to test.
|
|
55
|
+
* @returns `true` if `key` exists in `map`, otherwise `false`.
|
|
56
|
+
* @example isMapItem(new Map([["a", 1]]), "a") // true
|
|
57
|
+
* @see https://dhoulb.github.io/shelving/util/map/isMapItem
|
|
58
|
+
*/
|
|
22
59
|
export function isMapItem(map, key) {
|
|
23
60
|
return map.has(key);
|
|
24
61
|
}
|
|
25
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* Assert that an unknown value is a key for an item in a map.
|
|
64
|
+
*
|
|
65
|
+
* @param map The map to look in.
|
|
66
|
+
* @param key The candidate key to assert.
|
|
67
|
+
* @param caller Function used to attribute a thrown error to the calling site.
|
|
68
|
+
* @returns Nothing; narrows `key` to the map's key type.
|
|
69
|
+
* @throws {RequiredError} If `key` does not exist in `map`.
|
|
70
|
+
* @example assertMapItem(new Map([["a", 1]]), "a"); // passes
|
|
71
|
+
* @see https://dhoulb.github.io/shelving/util/map/assertMapItem
|
|
72
|
+
*/
|
|
26
73
|
export function assertMapItem(map, key, caller = assertMapItem) {
|
|
27
74
|
if (!isMapItem(map, key))
|
|
28
75
|
throw new RequiredError("Key must exist in map", { key, map, caller });
|
|
29
76
|
}
|
|
30
|
-
/**
|
|
77
|
+
/**
|
|
78
|
+
* Set an item in a map (by reference) and return the value that was set.
|
|
79
|
+
*
|
|
80
|
+
* @param map The mutable map to set the item on.
|
|
81
|
+
* @param key The key to set.
|
|
82
|
+
* @param value The value to set.
|
|
83
|
+
* @returns The `value` that was set.
|
|
84
|
+
* @example setMapItem(map, "a", 1) // 1
|
|
85
|
+
* @see https://dhoulb.github.io/shelving/util/map/setMapItem
|
|
86
|
+
*/
|
|
31
87
|
export function setMapItem(map, key, value) {
|
|
32
88
|
map.set(key, value);
|
|
33
89
|
return value;
|
|
34
90
|
}
|
|
35
|
-
/**
|
|
91
|
+
/**
|
|
92
|
+
* Add multiple items to a map (by reference).
|
|
93
|
+
*
|
|
94
|
+
* @param map The mutable map to set the items on.
|
|
95
|
+
* @param items Iterable of key/value entries to set.
|
|
96
|
+
* @returns Nothing; mutates `map` in place.
|
|
97
|
+
* @example setMapItems(map, [["a", 1], ["b", 2]]);
|
|
98
|
+
* @see https://dhoulb.github.io/shelving/util/map/setMapItems
|
|
99
|
+
*/
|
|
36
100
|
export function setMapItems(map, items) {
|
|
37
101
|
for (const [k, v] of items)
|
|
38
102
|
map.set(k, v);
|
|
39
103
|
}
|
|
40
|
-
/**
|
|
104
|
+
/**
|
|
105
|
+
* Remove multiple items from a map (by reference).
|
|
106
|
+
*
|
|
107
|
+
* @param map The mutable map to remove the items from.
|
|
108
|
+
* @param keys The keys to delete.
|
|
109
|
+
* @returns Nothing; mutates `map` in place.
|
|
110
|
+
* @example removeMapItems(map, "a", "b");
|
|
111
|
+
* @see https://dhoulb.github.io/shelving/util/map/removeMapItems
|
|
112
|
+
*/
|
|
41
113
|
export function removeMapItems(map, ...keys) {
|
|
42
114
|
for (const key of keys)
|
|
43
115
|
map.delete(key);
|
|
44
116
|
}
|
|
45
|
-
/**
|
|
117
|
+
/**
|
|
118
|
+
* Get an item in a map, or `undefined` if it doesn't exist.
|
|
119
|
+
*
|
|
120
|
+
* @param map The map to read from.
|
|
121
|
+
* @param key The key to look up.
|
|
122
|
+
* @returns The value for `key`, or `undefined` if it doesn't exist.
|
|
123
|
+
* @example getMapItem(new Map([["a", 1]]), "a") // 1
|
|
124
|
+
* @see https://dhoulb.github.io/shelving/util/map/getMapItem
|
|
125
|
+
*/
|
|
46
126
|
export function getMapItem(map, key) {
|
|
47
127
|
return map.get(key);
|
|
48
128
|
}
|
|
49
|
-
/**
|
|
129
|
+
/**
|
|
130
|
+
* Get an item in a map, or throw `RequiredError` if it doesn't exist.
|
|
131
|
+
*
|
|
132
|
+
* @param map The map to read from.
|
|
133
|
+
* @param key The key to look up.
|
|
134
|
+
* @param caller Function used to attribute a thrown error to the calling site.
|
|
135
|
+
* @returns The value for `key`.
|
|
136
|
+
* @throws {RequiredError} If `key` does not exist in `map`.
|
|
137
|
+
* @example requireMapItem(new Map([["a", 1]]), "a") // 1
|
|
138
|
+
* @see https://dhoulb.github.io/shelving/util/map/requireMapItem
|
|
139
|
+
*/
|
|
50
140
|
export function requireMapItem(map, key, caller = requireMapItem) {
|
|
51
141
|
if (!map.has(key))
|
|
52
142
|
throw new RequiredError("Key must exist in map", { key, map, caller });
|
package/util/merge.d.ts
CHANGED
|
@@ -4,6 +4,12 @@ type MergeRecursor = (left: unknown, right: unknown) => unknown;
|
|
|
4
4
|
/**
|
|
5
5
|
* Exact merge two unknown values.
|
|
6
6
|
* - Always returns `right`.
|
|
7
|
+
*
|
|
8
|
+
* @param _left The left value (ignored).
|
|
9
|
+
* @param right The right value.
|
|
10
|
+
* @returns The `right` value, always.
|
|
11
|
+
* @example exactMerge(1, 2) // 2
|
|
12
|
+
* @see https://dhoulb.github.io/shelving/util/merge/exactMerge
|
|
7
13
|
*/
|
|
8
14
|
export declare function exactMerge(_left: unknown, right: unknown): unknown;
|
|
9
15
|
/**
|
|
@@ -13,9 +19,13 @@ export declare function exactMerge(_left: unknown, right: unknown): unknown;
|
|
|
13
19
|
* - Two arrays: unique items are merged together (shallowly).
|
|
14
20
|
* - Any other value: right value is returned.
|
|
15
21
|
*
|
|
22
|
+
* @param left The left value to merge into.
|
|
23
|
+
* @param right The right value to merge in.
|
|
16
24
|
* @returns Merged value.
|
|
17
25
|
* - Will be `left` instance if no properties/items changed.
|
|
18
26
|
* - Will be merged instance otherwise.
|
|
27
|
+
* @example shallowMerge({ a: 1 }, { b: 2 }) // { a: 1, b: 2 }
|
|
28
|
+
* @see https://dhoulb.github.io/shelving/util/merge/shallowMerge
|
|
19
29
|
*/
|
|
20
30
|
export declare function shallowMerge<L extends ImmutableObject, R extends ImmutableObject>(left: L, right: R): L & R;
|
|
21
31
|
export declare function shallowMerge<L, R>(left: ImmutableArray<L>, right: ImmutableArray<R>): ImmutableArray<L | R>;
|
|
@@ -27,9 +37,13 @@ export declare function shallowMerge<R>(left: unknown, right: R): R;
|
|
|
27
37
|
* - Two arrays: unique items are merged together (shallowly — arrays have no way to deep merge because array keys are not stable).
|
|
28
38
|
* - Any other value: right value is returned.
|
|
29
39
|
*
|
|
40
|
+
* @param left The left value to merge into.
|
|
41
|
+
* @param right The right value to merge in.
|
|
30
42
|
* @returns Merged value.
|
|
31
43
|
* - Will be `left` instance if no properties/items changed.
|
|
32
44
|
* - Will be a new merged instance otherwise.
|
|
45
|
+
* @example deepMerge({ a: { b: 1 } }, { a: { c: 2 } }) // { a: { b: 1, c: 2 } }
|
|
46
|
+
* @see https://dhoulb.github.io/shelving/util/merge/deepMerge
|
|
33
47
|
*/
|
|
34
48
|
export declare function deepMerge<L extends ImmutableObject, R extends ImmutableObject>(left: L, right: R): L & R;
|
|
35
49
|
export declare function deepMerge<L, R>(left: ImmutableArray<L>, right: ImmutableArray<R>): ImmutableArray<L | R>;
|
|
@@ -40,10 +54,14 @@ export declare function deepMerge<R>(left: unknown, right: R): R;
|
|
|
40
54
|
* - Arrays have no concept of `deep merge` because array keys are not stable.
|
|
41
55
|
* - Use an map/object data structure instead for values that need to be deeply mergeable (only use arrays for primitive values).
|
|
42
56
|
*
|
|
57
|
+
* @param left The left array to merge into.
|
|
58
|
+
* @param right The right array whose unique items are merged in.
|
|
43
59
|
* @returns Merged array.
|
|
44
60
|
* - Values that appear in both arrays will not be added twice.
|
|
45
61
|
* - Will be `left` instance if no items were added.
|
|
46
62
|
* - Will be a new merged array otherwise.
|
|
63
|
+
* @example mergeArray([1, 2], [2, 3]) // [1, 2, 3]
|
|
64
|
+
* @see https://dhoulb.github.io/shelving/util/merge/mergeArray
|
|
47
65
|
*/
|
|
48
66
|
export declare function mergeArray<L, R>(left: ImmutableArray<L>, right: ImmutableArray<R> | ImmutableArray<L>): ImmutableArray<L | R>;
|
|
49
67
|
/**
|
|
@@ -54,14 +72,18 @@ export declare function mergeArray<L, R>(left: ImmutableArray<L>, right: Immutab
|
|
|
54
72
|
* - Always returns a new object (or the `left` object if no changes were made).
|
|
55
73
|
* - Resulting object is `cleaned`, i.e. properties in `left` or `right` that are `undefined` will be removed from the merged object.
|
|
56
74
|
*
|
|
75
|
+
* @param left The left object to merge into.
|
|
76
|
+
* @param right The right object whose props replace or merge with `left`.
|
|
57
77
|
* @param recursor Function that merges each property of the object.
|
|
58
78
|
* - Defaults to `exactMerge()` to just swap the property for a newer one if it exists.
|
|
59
79
|
* - Use `deepMerge()` as the recursor to merge objects deeply.
|
|
60
80
|
*
|
|
61
|
-
* @
|
|
81
|
+
* @returns Merged object.
|
|
62
82
|
* - Returned instances will be the same if no changes were made.
|
|
63
83
|
* - Will be `left` instance if no properties changed.
|
|
64
84
|
* - Will be a new merged object otherwise.
|
|
85
|
+
* @example mergeObject({ a: 1 }, { b: 2 }) // { a: 1, b: 2 }
|
|
86
|
+
* @see https://dhoulb.github.io/shelving/util/merge/mergeObject
|
|
65
87
|
*/
|
|
66
88
|
export declare function mergeObject<L extends ImmutableObject, R extends ImmutableObject>(left: L, right: R, recursor?: MergeRecursor): L & R;
|
|
67
89
|
export {};
|
package/util/merge.js
CHANGED
|
@@ -13,6 +13,12 @@ function _merge(left, right, recursor) {
|
|
|
13
13
|
/**
|
|
14
14
|
* Exact merge two unknown values.
|
|
15
15
|
* - Always returns `right`.
|
|
16
|
+
*
|
|
17
|
+
* @param _left The left value (ignored).
|
|
18
|
+
* @param right The right value.
|
|
19
|
+
* @returns The `right` value, always.
|
|
20
|
+
* @example exactMerge(1, 2) // 2
|
|
21
|
+
* @see https://dhoulb.github.io/shelving/util/merge/exactMerge
|
|
16
22
|
*/
|
|
17
23
|
export function exactMerge(_left, right) {
|
|
18
24
|
return right;
|
package/util/null.d.ts
CHANGED
|
@@ -1,27 +1,116 @@
|
|
|
1
1
|
import type { AnyCaller } from "./function.js";
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Function that always returns `null`.
|
|
4
|
+
* - Useful as a default callback or placeholder.
|
|
5
|
+
*
|
|
6
|
+
* @returns `null`, always.
|
|
7
|
+
* @example getNull() // null
|
|
8
|
+
* @see https://dhoulb.github.io/shelving/util/null/getNull
|
|
9
|
+
*/
|
|
3
10
|
export declare function getNull(): null;
|
|
4
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Nullable is the value or `null`.
|
|
13
|
+
*
|
|
14
|
+
* @see https://dhoulb.github.io/shelving/util/null/Nullable
|
|
15
|
+
*/
|
|
5
16
|
export type Nullable<T> = T | null;
|
|
6
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Is a value `null`?
|
|
19
|
+
*
|
|
20
|
+
* @param value The value to test.
|
|
21
|
+
* @returns `true` if `value` is `null`, otherwise `false`.
|
|
22
|
+
* @see https://dhoulb.github.io/shelving/util/null/isNull
|
|
23
|
+
*/
|
|
7
24
|
export declare function isNull(value: unknown): value is null;
|
|
8
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Assert that a value is `null`.
|
|
27
|
+
*
|
|
28
|
+
* @param value The value to assert.
|
|
29
|
+
* @param caller Function used to attribute a thrown error to the calling site.
|
|
30
|
+
* @returns Nothing; narrows `value` to `T`.
|
|
31
|
+
* @throws RequiredError if `value` is not `null`.
|
|
32
|
+
* @see https://dhoulb.github.io/shelving/util/null/assertNull
|
|
33
|
+
*/
|
|
9
34
|
export declare function assertNull<T>(value: Nullable<T>, caller?: AnyCaller): asserts value is T;
|
|
10
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* Is a value not `null`?
|
|
37
|
+
*
|
|
38
|
+
* @param value The value to test.
|
|
39
|
+
* @returns `true` if `value` is not `null`, otherwise `false`.
|
|
40
|
+
* @see https://dhoulb.github.io/shelving/util/null/notNull
|
|
41
|
+
*/
|
|
11
42
|
export declare function notNull<T>(value: Nullable<T>): value is T;
|
|
12
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* Assert that a value is not `null`.
|
|
45
|
+
*
|
|
46
|
+
* @param value The value to assert.
|
|
47
|
+
* @param caller Function used to attribute a thrown error to the calling site.
|
|
48
|
+
* @returns Nothing; narrows `value` to `T`.
|
|
49
|
+
* @throws RequiredError if `value` is `null`.
|
|
50
|
+
* @see https://dhoulb.github.io/shelving/util/null/assertNotNull
|
|
51
|
+
*/
|
|
13
52
|
export declare function assertNotNull<T>(value: Nullable<T>, caller?: AnyCaller): asserts value is T;
|
|
14
|
-
/**
|
|
53
|
+
/**
|
|
54
|
+
* Get the not-null version of a value, or throw `RequiredError` if it is `null`.
|
|
55
|
+
*
|
|
56
|
+
* @param value The value to require.
|
|
57
|
+
* @param caller Function used to attribute a thrown error to the calling site.
|
|
58
|
+
* @returns The value, narrowed to `T`.
|
|
59
|
+
* @throws RequiredError if `value` is `null`.
|
|
60
|
+
* @example requireNotNull("a") // "a"
|
|
61
|
+
* @see https://dhoulb.github.io/shelving/util/null/requireNotNull
|
|
62
|
+
*/
|
|
15
63
|
export declare function requireNotNull<T>(value: Nullable<T>, caller?: AnyCaller): T;
|
|
16
|
-
/**
|
|
64
|
+
/**
|
|
65
|
+
* Nullish is the value or `null` or `undefined`.
|
|
66
|
+
*
|
|
67
|
+
* @see https://dhoulb.github.io/shelving/util/null/Nullish
|
|
68
|
+
*/
|
|
17
69
|
export type Nullish<T> = T | null | undefined;
|
|
18
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* Is a value nullish (`null` or `undefined`)?
|
|
72
|
+
*
|
|
73
|
+
* @param value The value to test.
|
|
74
|
+
* @returns `true` if `value` is `null` or `undefined`, otherwise `false`.
|
|
75
|
+
* @see https://dhoulb.github.io/shelving/util/null/isNullish
|
|
76
|
+
*/
|
|
19
77
|
export declare function isNullish<T>(value: Nullish<T>): value is null | undefined;
|
|
20
|
-
/**
|
|
78
|
+
/**
|
|
79
|
+
* Assert that a value is nullish (`null` or `undefined`).
|
|
80
|
+
*
|
|
81
|
+
* @param value The value to assert.
|
|
82
|
+
* @param caller Function used to attribute a thrown error to the calling site.
|
|
83
|
+
* @returns Nothing; narrows `value` to `T`.
|
|
84
|
+
* @throws RequiredError if `value` is not `null` or `undefined`.
|
|
85
|
+
* @see https://dhoulb.github.io/shelving/util/null/assertNullish
|
|
86
|
+
*/
|
|
21
87
|
export declare function assertNullish<T>(value: Nullish<T>, caller?: AnyCaller): asserts value is T;
|
|
22
|
-
/**
|
|
88
|
+
/**
|
|
89
|
+
* Is a value not nullish (not `null` and not `undefined`)?
|
|
90
|
+
*
|
|
91
|
+
* @param value The value to test.
|
|
92
|
+
* @returns `true` if `value` is not `null` and not `undefined`, otherwise `false`.
|
|
93
|
+
* @see https://dhoulb.github.io/shelving/util/null/notNullish
|
|
94
|
+
*/
|
|
23
95
|
export declare function notNullish<T>(value: Nullish<T>): value is T;
|
|
24
|
-
/**
|
|
96
|
+
/**
|
|
97
|
+
* Assert that a value is not nullish (not `null` and not `undefined`).
|
|
98
|
+
*
|
|
99
|
+
* @param value The value to assert.
|
|
100
|
+
* @param caller Function used to attribute a thrown error to the calling site.
|
|
101
|
+
* @returns Nothing; narrows `value` to `T`.
|
|
102
|
+
* @throws RequiredError if `value` is `null` or `undefined`.
|
|
103
|
+
* @see https://dhoulb.github.io/shelving/util/null/assertNotNullish
|
|
104
|
+
*/
|
|
25
105
|
export declare function assertNotNullish<T>(value: Nullish<T>, caller?: AnyCaller): asserts value is T;
|
|
26
|
-
/**
|
|
106
|
+
/**
|
|
107
|
+
* Get the not-nullish version of a value, or throw `RequiredError` if it is `null` or `undefined`.
|
|
108
|
+
*
|
|
109
|
+
* @param value The value to require.
|
|
110
|
+
* @param caller Function used to attribute a thrown error to the calling site.
|
|
111
|
+
* @returns The value, narrowed to `T`.
|
|
112
|
+
* @throws RequiredError if `value` is `null` or `undefined`.
|
|
113
|
+
* @example requireNotNullish("a") // "a"
|
|
114
|
+
* @see https://dhoulb.github.io/shelving/util/null/requireNotNullish
|
|
115
|
+
*/
|
|
27
116
|
export declare function requireNotNullish<T>(value: Nullish<T>, caller?: AnyCaller): T;
|