structured-outputs 0.1.0-beta.2 → 0.1.0-beta.20
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +77 -6
- package/esm/ResponseFormat.js +33 -5
- package/esm/ResponseFormat.js.map +1 -1
- package/esm/Tool.js +17 -0
- package/esm/Tool.js.map +1 -0
- package/esm/_dnt.polyfills.js +16 -0
- package/esm/_dnt.polyfills.js.map +1 -0
- package/esm/_dnt.shims.js +58 -0
- package/esm/_dnt.shims.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/almost_equals.js +47 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/almost_equals.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/array_includes.js +47 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/array_includes.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/assert.js +23 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/assert.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/assertion_error.js +31 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/assertion_error.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/equal.js +184 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/equal.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/equals.js +46 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/equals.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/exists.js +28 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/exists.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/fail.js +21 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/fail.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/false.js +23 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/false.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/greater.js +30 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/greater.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/greater_or_equal.js +30 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/greater_or_equal.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/instance_of.js +53 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/instance_of.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/is_error.js +54 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/is_error.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/less.js +29 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/less.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/less_or_equal.js +30 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/less_or_equal.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/match.js +27 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/match.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/mod.js +46 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/mod.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/not_equals.js +33 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/not_equals.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/not_instance_of.js +30 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/not_instance_of.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/not_match.js +27 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/not_match.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.js +33 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/object_match.js +160 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/object_match.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/rejects.js +54 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/rejects.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/strict_equals.js +58 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/strict_equals.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/string_includes.js +27 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/string_includes.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/throws.js +45 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/throws.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/unimplemented.js +21 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/unimplemented.js.map +1 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/unreachable.js +21 -0
- package/esm/deps/jsr.io/@std/assert/1.0.8/unreachable.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/_utils.js +19 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/_utils.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/aggregate_groups.js +51 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/aggregate_groups.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/associate_by.js +45 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/associate_by.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/associate_with.js +41 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/associate_with.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/chunk.js +51 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/chunk.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/deep_merge.js +96 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/deep_merge.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/distinct.js +28 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/distinct.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/distinct_by.js +39 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/distinct_by.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/drop_last_while.js +33 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/drop_last_while.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/drop_while.js +34 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/drop_while.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/filter_entries.js +43 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/filter_entries.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/filter_keys.js +46 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/filter_keys.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/filter_values.js +46 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/filter_values.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/find_single.js +45 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/find_single.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/first_not_nullish_of.js +42 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/first_not_nullish_of.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/includes_value.js +39 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/includes_value.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/intersect.js +36 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/intersect.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/invert.js +29 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/invert.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/invert_by.js +46 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/invert_by.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/join_to_string.js +59 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/join_to_string.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/map_entries.js +47 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/map_entries.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/map_keys.js +42 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/map_keys.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/map_not_nullish.js +43 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/map_not_nullish.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/map_values.js +13 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/map_values.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/max_by.js +15 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/max_by.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/max_of.js +17 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/max_of.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/max_with.js +41 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/max_with.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/min_by.js +15 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/min_by.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/min_of.js +17 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/min_of.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/min_with.js +37 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/min_with.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/mod.js +75 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/mod.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/omit.js +29 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/omit.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/partition.js +16 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/partition.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/partition_entries.js +54 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/partition_entries.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/permutations.js +58 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/permutations.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/pick.js +33 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/pick.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/reduce_groups.js +40 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/reduce_groups.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/running_reduce.js +32 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/running_reduce.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/sample.js +35 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/sample.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/sliding_windows.js +57 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/sliding_windows.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/sort_by.js +30 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/sort_by.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/sum_of.js +37 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/sum_of.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/take_last_while.js +34 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/take_last_while.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/take_while.js +39 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/take_while.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/union.js +34 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/union.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/unzip.js +46 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/unzip.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/without_all.js +28 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/without_all.js.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/zip.js +43 -0
- package/esm/deps/jsr.io/@std/collections/1.0.9/zip.js.map +1 -0
- package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.js +111 -0
- package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.js.map +1 -0
- package/esm/deps/jsr.io/@std/internal/1.0.5/diff.js +277 -0
- package/esm/deps/jsr.io/@std/internal/1.0.5/diff.js.map +1 -0
- package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.js +180 -0
- package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.js.map +1 -0
- package/esm/deps/jsr.io/@std/internal/1.0.5/format.js +38 -0
- package/esm/deps/jsr.io/@std/internal/1.0.5/format.js.map +1 -0
- package/esm/deps/jsr.io/@std/internal/1.0.5/styles.js +208 -0
- package/esm/deps/jsr.io/@std/internal/1.0.5/styles.js.map +1 -0
- package/esm/deps/jsr.io/@std/internal/1.0.5/types.js +3 -0
- package/esm/deps/jsr.io/@std/internal/1.0.5/types.js.map +1 -0
- package/esm/mod.js +3 -10
- package/esm/mod.js.map +1 -1
- package/esm/types/Ref.js +11 -0
- package/esm/types/Ref.js.map +1 -0
- package/esm/types/RootTy.js +19 -0
- package/esm/types/RootTy.js.map +1 -0
- package/esm/types/Ty.js +17 -0
- package/esm/types/Ty.js.map +1 -0
- package/esm/types/array.js +9 -0
- package/esm/types/array.js.map +1 -0
- package/esm/types/constant.js +8 -0
- package/esm/types/constant.js.map +1 -0
- package/esm/types/constantUnion.js +25 -0
- package/esm/types/constantUnion.js.map +1 -0
- package/esm/types/leaves.js +18 -0
- package/esm/types/leaves.js.map +1 -0
- package/esm/types/mod.js +11 -0
- package/esm/types/mod.js.map +1 -0
- package/esm/{object.js → types/object.js} +4 -4
- package/esm/types/object.js.map +1 -0
- package/esm/types/std/Option.js +9 -0
- package/esm/types/std/Option.js.map +1 -0
- package/esm/types/std/Wrapper.js +5 -0
- package/esm/types/std/Wrapper.js.map +1 -0
- package/esm/types/std/mod.js +3 -0
- package/esm/types/std/mod.js.map +1 -0
- package/esm/types/taggedUnion.js +20 -0
- package/esm/types/taggedUnion.js.map +1 -0
- package/esm/util/phantoms.js +4 -0
- package/esm/util/phantoms.js.map +1 -0
- package/esm/util/recombineTaggedTemplateArgs.js +4 -0
- package/esm/util/recombineTaggedTemplateArgs.js.map +1 -0
- package/package.json +10 -7
- package/src/ResponseFormat.ts +76 -25
- package/src/Tool.ts +38 -0
- package/src/_dnt.polyfills.ts +27 -0
- package/src/_dnt.shims.ts +60 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/almost_equals.ts +55 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/array_includes.ts +57 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/assert.ts +23 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/assertion_error.ts +31 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/equal.ts +210 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/equals.ts +52 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/exists.ts +31 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/fail.ts +21 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/false.ts +26 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/greater.ts +30 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/greater_or_equal.ts +36 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/instance_of.ts +64 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/is_error.ts +65 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/less.ts +29 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/less_or_equal.ts +36 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/match.ts +30 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/mod.ts +47 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/not_equals.ts +36 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/not_instance_of.ts +33 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/not_match.ts +30 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.ts +42 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/object_match.ts +202 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/rejects.ts +123 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/strict_equals.ts +67 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/string_includes.ts +30 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/throws.ts +111 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/unimplemented.ts +21 -0
- package/src/deps/jsr.io/@std/assert/1.0.8/unreachable.ts +21 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/_utils.ts +26 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/aggregate_groups.ts +62 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/associate_by.ts +50 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/associate_with.ts +46 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/chunk.ts +56 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/deep_merge.ts +578 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/distinct.ts +29 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/distinct_by.ts +42 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/drop_last_while.ts +36 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/drop_while.ts +39 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/filter_entries.ts +48 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/filter_keys.ts +51 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/filter_values.ts +51 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/find_single.ts +48 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/first_not_nullish_of.ts +47 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/includes_value.ts +45 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/intersect.ts +35 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/invert.ts +38 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/invert_by.ts +56 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/join_to_string.ts +109 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/map_entries.ts +53 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/map_keys.ts +47 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/map_not_nullish.ts +49 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/map_values.ts +96 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/max_by.ts +153 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/max_of.ts +90 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/max_with.ts +46 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/min_by.ts +151 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/min_of.ts +90 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/min_with.ts +42 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/mod.ts +76 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/omit.ts +34 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/partition.ts +85 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/partition_entries.ts +58 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/permutations.ts +66 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/pick.ts +34 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/reduce_groups.ts +45 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/running_reduce.ts +38 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/sample.ts +36 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/sliding_windows.ts +86 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/sort_by.ts +219 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/sum_of.ts +42 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/take_last_while.ts +37 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/take_while.ts +44 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/union.ts +36 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/unzip.ts +50 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/without_all.ts +28 -0
- package/src/deps/jsr.io/@std/collections/1.0.9/zip.ts +49 -0
- package/src/deps/jsr.io/@std/internal/1.0.5/build_message.ts +134 -0
- package/src/deps/jsr.io/@std/internal/1.0.5/diff.ts +317 -0
- package/src/deps/jsr.io/@std/internal/1.0.5/diff_str.ts +204 -0
- package/src/deps/jsr.io/@std/internal/1.0.5/format.ts +39 -0
- package/src/deps/jsr.io/@std/internal/1.0.5/styles.ts +233 -0
- package/src/deps/jsr.io/@std/internal/1.0.5/types.ts +18 -0
- package/src/mod.ts +3 -18
- package/src/types/Ref.ts +16 -0
- package/src/types/RootTy.ts +40 -0
- package/src/types/Ty.ts +57 -0
- package/src/types/array.ts +9 -0
- package/src/types/constant.ts +8 -0
- package/src/types/constantUnion.ts +27 -0
- package/src/types/leaves.ts +21 -0
- package/src/types/mod.ts +10 -0
- package/src/types/object.ts +15 -0
- package/src/types/std/Option.ts +15 -0
- package/src/types/std/Wrapper.ts +8 -0
- package/src/types/std/mod.ts +2 -0
- package/src/types/taggedUnion.ts +28 -0
- package/src/util/phantoms.ts +3 -0
- package/src/util/recombineTaggedTemplateArgs.ts +6 -0
- package/types/ResponseFormat.d.ts +26 -0
- package/types/ResponseFormat.d.ts.map +1 -0
- package/types/Tool.d.ts +13 -0
- package/types/Tool.d.ts.map +1 -0
- package/types/_dnt.polyfills.d.ts +12 -0
- package/types/_dnt.polyfills.d.ts.map +1 -0
- package/types/_dnt.shims.d.ts +2 -0
- package/types/_dnt.shims.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/almost_equals.d.ts +29 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/almost_equals.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/array_includes.d.ts +24 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/array_includes.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/assert.d.ts +16 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/assert.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/assertion_error.d.ts +26 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/assertion_error.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/equal.d.ts +17 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/equal.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/equals.d.ts +22 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/equals.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/exists.d.ts +18 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/exists.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/fail.d.ts +15 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/fail.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/false.d.ts +18 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/false.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/greater.d.ts +20 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/greater.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/greater_or_equal.d.ts +20 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/greater_or_equal.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/instance_of.d.ts +23 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/instance_of.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/is_error.d.ts +25 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/is_error.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/less.d.ts +19 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/less.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/less_or_equal.d.ts +20 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/less_or_equal.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/match.d.ts +18 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/match.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/mod.d.ts +44 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/mod.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/not_equals.d.ts +21 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/not_equals.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/not_instance_of.d.ts +20 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/not_instance_of.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/not_match.d.ts +18 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/not_match.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.d.ts +23 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/object_match.d.ts +28 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/object_match.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/rejects.d.ts +42 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/rejects.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/strict_equals.d.ts +24 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/strict_equals.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/string_includes.d.ts +18 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/string_includes.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/throws.d.ts +45 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/throws.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/unimplemented.d.ts +15 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/unimplemented.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/unreachable.d.ts +15 -0
- package/types/deps/jsr.io/@std/assert/1.0.8/unreachable.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/_utils.d.ts +6 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/_utils.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/aggregate_groups.d.ts +41 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/aggregate_groups.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/associate_by.d.ts +37 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/associate_by.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/associate_with.d.ts +33 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/associate_with.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/chunk.d.ts +38 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/chunk.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/deep_merge.d.ts +322 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/deep_merge.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/distinct.d.ts +23 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/distinct.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/distinct_by.d.ts +26 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/distinct_by.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/drop_last_while.d.ts +26 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/drop_last_while.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/drop_while.d.ts +25 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/drop_while.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/filter_entries.d.ts +32 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/filter_entries.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/filter_keys.d.ts +36 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/filter_keys.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/filter_values.d.ts +35 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/filter_values.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/find_single.d.ts +31 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/find_single.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/first_not_nullish_of.d.ts +32 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/first_not_nullish_of.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/includes_value.d.ts +29 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/includes_value.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/intersect.d.ts +25 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/intersect.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/invert.d.ts +29 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/invert.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/invert_by.d.ts +34 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/invert_by.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/join_to_string.d.ts +75 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/join_to_string.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/map_entries.d.ts +37 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/map_entries.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/map_keys.d.ts +33 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/map_keys.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/map_not_nullish.d.ts +32 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/map_not_nullish.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/map_values.d.ts +71 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/map_values.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/max_by.d.ts +117 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/max_by.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/max_of.d.ts +61 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/max_of.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/max_with.d.ts +29 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/max_with.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/min_by.d.ts +115 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/min_by.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/min_of.d.ts +61 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/min_of.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/min_with.d.ts +25 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/min_with.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/mod.d.ts +73 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/mod.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/omit.d.ts +24 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/omit.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/partition.d.ts +60 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/partition.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/partition_entries.d.ts +39 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/partition_entries.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/permutations.d.ts +27 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/permutations.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/pick.d.ts +25 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/pick.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/reduce_groups.d.ts +35 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/reduce_groups.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/running_reduce.d.ts +27 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/running_reduce.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/sample.d.ts +24 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/sample.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/sliding_windows.d.ts +66 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/sliding_windows.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/sort_by.d.ts +161 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/sort_by.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/sum_of.d.ts +29 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/sum_of.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/take_last_while.d.ts +27 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/take_last_while.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/take_while.d.ts +30 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/take_while.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/union.d.ts +24 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/union.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/unzip.d.ts +32 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/unzip.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/without_all.d.ts +23 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/without_all.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/zip.d.ts +34 -0
- package/types/deps/jsr.io/@std/collections/1.0.9/zip.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts +82 -0
- package/types/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/internal/1.0.5/diff.d.ts +140 -0
- package/types/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts +99 -0
- package/types/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/internal/1.0.5/format.d.ts +2 -0
- package/types/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/internal/1.0.5/styles.d.ts +159 -0
- package/types/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/internal/1.0.5/types.d.ts +16 -0
- package/types/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +1 -0
- package/types/mod.d.ts +5 -0
- package/types/mod.d.ts.map +1 -0
- package/types/types/Ref.d.ts +4 -0
- package/types/types/Ref.d.ts.map +1 -0
- package/types/types/RootTy.d.ts +8 -0
- package/types/types/RootTy.d.ts.map +1 -0
- package/types/types/Ty.d.ts +27 -0
- package/types/types/Ty.d.ts.map +1 -0
- package/types/types/array.d.ts +3 -0
- package/types/types/array.d.ts.map +1 -0
- package/types/types/constant.d.ts +3 -0
- package/types/types/constant.d.ts.map +1 -0
- package/types/types/constantUnion.d.ts +3 -0
- package/types/types/constantUnion.d.ts.map +1 -0
- package/types/types/leaves.d.ts +6 -0
- package/types/types/leaves.d.ts.map +1 -0
- package/types/types/mod.d.ts +11 -0
- package/types/types/mod.d.ts.map +1 -0
- package/types/types/object.d.ts +6 -0
- package/types/types/object.d.ts.map +1 -0
- package/types/types/std/Option.d.ts +7 -0
- package/types/types/std/Option.d.ts.map +1 -0
- package/types/types/std/Wrapper.d.ts +7 -0
- package/types/types/std/Wrapper.d.ts.map +1 -0
- package/types/types/std/mod.d.ts +3 -0
- package/types/types/std/mod.d.ts.map +1 -0
- package/types/types/taggedUnion.d.ts +8 -0
- package/types/types/taggedUnion.d.ts.map +1 -0
- package/types/util/phantoms.d.ts +2 -0
- package/types/util/phantoms.d.ts.map +1 -0
- package/types/util/recombineTaggedTemplateArgs.d.ts +2 -0
- package/types/util/recombineTaggedTemplateArgs.d.ts.map +1 -0
- package/esm/F.d.ts +0 -13
- package/esm/F.d.ts.map +0 -1
- package/esm/F.js +0 -10
- package/esm/F.js.map +0 -1
- package/esm/ResponseFormat.d.ts +0 -14
- package/esm/ResponseFormat.d.ts.map +0 -1
- package/esm/_base.d.ts +0 -13
- package/esm/_base.d.ts.map +0 -1
- package/esm/_base.js +0 -40
- package/esm/_base.js.map +0 -1
- package/esm/array.d.ts +0 -4
- package/esm/array.d.ts.map +0 -1
- package/esm/array.js +0 -9
- package/esm/array.js.map +0 -1
- package/esm/common.d.ts +0 -6
- package/esm/common.d.ts.map +0 -1
- package/esm/common.js +0 -2
- package/esm/common.js.map +0 -1
- package/esm/literal.d.ts +0 -4
- package/esm/literal.d.ts.map +0 -1
- package/esm/literal.js +0 -8
- package/esm/literal.js.map +0 -1
- package/esm/mod.d.ts +0 -16
- package/esm/mod.d.ts.map +0 -1
- package/esm/number.d.ts +0 -4
- package/esm/number.d.ts.map +0 -1
- package/esm/number.js +0 -8
- package/esm/number.js.map +0 -1
- package/esm/object.d.ts +0 -7
- package/esm/object.d.ts.map +0 -1
- package/esm/object.js.map +0 -1
- package/esm/schema.d.ts +0 -4
- package/esm/schema.d.ts.map +0 -1
- package/esm/schema.js +0 -9
- package/esm/schema.js.map +0 -1
- package/esm/string.d.ts +0 -4
- package/esm/string.d.ts.map +0 -1
- package/esm/string.js +0 -8
- package/esm/string.js.map +0 -1
- package/esm/union.d.ts +0 -6
- package/esm/union.d.ts.map +0 -1
- package/esm/union.js +0 -8
- package/esm/union.js.map +0 -1
- package/src/F.ts +0 -27
- package/src/_base.ts +0 -25
- package/src/array.ts +0 -11
- package/src/common.ts +0 -6
- package/src/literal.ts +0 -10
- package/src/number.ts +0 -10
- package/src/object.ts +0 -17
- package/src/schema.ts +0 -10
- package/src/string.ts +0 -10
- package/src/union.ts +0 -12
@@ -0,0 +1,160 @@
|
|
1
|
+
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
+
// This module is browser compatible.
|
3
|
+
import { assertEquals } from "./equals.js";
|
4
|
+
/**
|
5
|
+
* Make an assertion that `expected` object is a subset of `actual` object,
|
6
|
+
* deeply. If not, then throw.
|
7
|
+
*
|
8
|
+
* @example Usage
|
9
|
+
* ```ts ignore
|
10
|
+
* import { assertObjectMatch } from "@std/assert";
|
11
|
+
*
|
12
|
+
* assertObjectMatch({ foo: "bar" }, { foo: "bar" }); // Doesn't throw
|
13
|
+
* assertObjectMatch({ foo: "bar" }, { foo: "baz" }); // Throws
|
14
|
+
* assertObjectMatch({ foo: 1, bar: 2 }, { foo: 1 }); // Doesn't throw
|
15
|
+
* assertObjectMatch({ foo: 1 }, { foo: 1, bar: 2 }); // Throws
|
16
|
+
* ```
|
17
|
+
*
|
18
|
+
* @example Usage with nested objects
|
19
|
+
* ```ts ignore
|
20
|
+
* import { assertObjectMatch } from "@std/assert";
|
21
|
+
*
|
22
|
+
* assertObjectMatch({ foo: { bar: 3, baz: 4 } }, { foo: { bar: 3 } }); // Doesn't throw
|
23
|
+
* assertObjectMatch({ foo: { bar: 3 } }, { foo: { bar: 3, baz: 4 } }); // Throws
|
24
|
+
* ```
|
25
|
+
*
|
26
|
+
* @param actual The actual value to be matched.
|
27
|
+
* @param expected The expected value to match.
|
28
|
+
* @param msg The optional message to display if the assertion fails.
|
29
|
+
*/
|
30
|
+
export function assertObjectMatch(
|
31
|
+
// deno-lint-ignore no-explicit-any
|
32
|
+
actual, expected, msg) {
|
33
|
+
return assertEquals(
|
34
|
+
// get the intersection of "actual" and "expected"
|
35
|
+
// side effect: all the instances' constructor field is "Object" now.
|
36
|
+
filter(actual, expected),
|
37
|
+
// set (nested) instances' constructor field to be "Object" without changing expected value.
|
38
|
+
// see https://github.com/denoland/deno_std/pull/1419
|
39
|
+
filter(expected, expected), msg);
|
40
|
+
}
|
41
|
+
function isObject(val) {
|
42
|
+
return typeof val === "object" && val !== null;
|
43
|
+
}
|
44
|
+
function filter(a, b) {
|
45
|
+
const seen = new WeakMap();
|
46
|
+
return filterObject(a, b);
|
47
|
+
function filterObject(a, b) {
|
48
|
+
// Prevent infinite loop with circular references with same filter
|
49
|
+
if ((seen.has(a)) && (seen.get(a) === b)) {
|
50
|
+
return a;
|
51
|
+
}
|
52
|
+
try {
|
53
|
+
seen.set(a, b);
|
54
|
+
}
|
55
|
+
catch (err) {
|
56
|
+
if (err instanceof TypeError) {
|
57
|
+
throw new TypeError(`Cannot assertObjectMatch ${a === null ? null : `type ${typeof a}`}`);
|
58
|
+
}
|
59
|
+
}
|
60
|
+
// Filter keys and symbols which are present in both actual and expected
|
61
|
+
const filtered = {};
|
62
|
+
const keysA = Reflect.ownKeys(a);
|
63
|
+
const keysB = Reflect.ownKeys(b);
|
64
|
+
const entries = keysA.filter((key) => keysB.includes(key))
|
65
|
+
.map((key) => [key, a[key]]);
|
66
|
+
if (keysA.length && keysB.length && !entries.length) {
|
67
|
+
// If both objects are not empty but don't have the same keys or symbols,
|
68
|
+
// returns the entries in object a.
|
69
|
+
for (const key of keysA) {
|
70
|
+
filtered[key] = a[key];
|
71
|
+
}
|
72
|
+
return filtered;
|
73
|
+
}
|
74
|
+
for (const [key, value] of entries) {
|
75
|
+
// On regexp references, keep value as it to avoid loosing pattern and flags
|
76
|
+
if (value instanceof RegExp) {
|
77
|
+
filtered[key] = value;
|
78
|
+
continue;
|
79
|
+
}
|
80
|
+
const subset = b[key];
|
81
|
+
// On array references, build a filtered array and filter nested objects inside
|
82
|
+
if (Array.isArray(value) && Array.isArray(subset)) {
|
83
|
+
filtered[key] = filterArray(value, subset);
|
84
|
+
continue;
|
85
|
+
}
|
86
|
+
// On nested objects references, build a filtered object recursively
|
87
|
+
if (isObject(value) && isObject(subset)) {
|
88
|
+
// When both operands are maps, build a filtered map with common keys and filter nested objects inside
|
89
|
+
if ((value instanceof Map) && (subset instanceof Map)) {
|
90
|
+
filtered[key] = new Map([...value].filter(([k]) => subset.has(k)).map(([k, v]) => {
|
91
|
+
const v2 = subset.get(k);
|
92
|
+
if (isObject(v) && isObject(v2)) {
|
93
|
+
return [k, filterObject(v, v2)];
|
94
|
+
}
|
95
|
+
return [k, v];
|
96
|
+
}));
|
97
|
+
continue;
|
98
|
+
}
|
99
|
+
// When both operands are set, build a filtered set with common values
|
100
|
+
if ((value instanceof Set) && (subset instanceof Set)) {
|
101
|
+
filtered[key] = value.intersection(subset);
|
102
|
+
continue;
|
103
|
+
}
|
104
|
+
filtered[key] = filterObject(value, subset);
|
105
|
+
continue;
|
106
|
+
}
|
107
|
+
filtered[key] = value;
|
108
|
+
}
|
109
|
+
return filtered;
|
110
|
+
}
|
111
|
+
function filterArray(a, b) {
|
112
|
+
// Prevent infinite loop with circular references with same filter
|
113
|
+
if (seen.has(a) && (seen.get(a) === b)) {
|
114
|
+
return a;
|
115
|
+
}
|
116
|
+
seen.set(a, b);
|
117
|
+
const filtered = [];
|
118
|
+
const count = Math.min(a.length, b.length);
|
119
|
+
for (let i = 0; i < count; ++i) {
|
120
|
+
const value = a[i];
|
121
|
+
const subset = b[i];
|
122
|
+
// On regexp references, keep value as it to avoid loosing pattern and flags
|
123
|
+
if (value instanceof RegExp) {
|
124
|
+
filtered.push(value);
|
125
|
+
continue;
|
126
|
+
}
|
127
|
+
// On array references, build a filtered array and filter nested objects inside
|
128
|
+
if (Array.isArray(value) && Array.isArray(subset)) {
|
129
|
+
filtered.push(filterArray(value, subset));
|
130
|
+
continue;
|
131
|
+
}
|
132
|
+
// On nested objects references, build a filtered object recursively
|
133
|
+
if (isObject(value) && isObject(subset)) {
|
134
|
+
// When both operands are maps, build a filtered map with common keys and filter nested objects inside
|
135
|
+
if ((value instanceof Map) && (subset instanceof Map)) {
|
136
|
+
const map = new Map([...value].filter(([k]) => subset.has(k))
|
137
|
+
.map(([k, v]) => {
|
138
|
+
const v2 = subset.get(k);
|
139
|
+
if (isObject(v) && isObject(v2)) {
|
140
|
+
return [k, filterObject(v, v2)];
|
141
|
+
}
|
142
|
+
return [k, v];
|
143
|
+
}));
|
144
|
+
filtered.push(map);
|
145
|
+
continue;
|
146
|
+
}
|
147
|
+
// When both operands are set, build a filtered set with common values
|
148
|
+
if ((value instanceof Set) && (subset instanceof Set)) {
|
149
|
+
filtered.push(value.intersection(subset));
|
150
|
+
continue;
|
151
|
+
}
|
152
|
+
filtered.push(filterObject(value, subset));
|
153
|
+
continue;
|
154
|
+
}
|
155
|
+
filtered.push(value);
|
156
|
+
}
|
157
|
+
return filtered;
|
158
|
+
}
|
159
|
+
}
|
160
|
+
//# sourceMappingURL=object_match.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"object_match.js","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.8/object_match.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,qCAAqC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,iBAAiB;AAC/B,mCAAmC;AACnC,MAAgC,EAChC,QAAsC,EACtC,GAAY;IAEZ,OAAO,YAAY;IACjB,kDAAkD;IAClD,qEAAqE;IACrE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;IACxB,4FAA4F;IAC5F,qDAAqD;IACrD,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAC1B,GAAG,CACJ,CAAC;AACJ,CAAC;AAID,SAAS,QAAQ,CAAC,GAAY;IAC5B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC;AACjD,CAAC;AAED,SAAS,MAAM,CAAC,CAAQ,EAAE,CAAQ;IAChC,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;IAC3B,OAAO,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1B,SAAS,YAAY,CAAC,CAAQ,EAAE,CAAQ;QACtC,kEAAkE;QAClE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,SAAS,CACjB,4BAA4B,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,EAAE,EAAE,CACrE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,MAAM,QAAQ,GAAG,EAAW,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;aACvD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAa,CAAC,CAAC,CAA6B,CAAC;QAErE,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpD,yEAAyE;YACzE,mCAAmC;YACnC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACnC,4EAA4E;YAC5E,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;gBAC5B,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAI,CAAW,CAAC,GAAG,CAAC,CAAC;YAEjC,+EAA+E;YAC/E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC3C,SAAS;YACX,CAAC;YAED,oEAAoE;YACpE,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,sGAAsG;gBACtG,IAAI,CAAC,KAAK,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,CAAC;oBACtD,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CACrB,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAC3C,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;wBACT,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACzB,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;4BAChC,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAU,EAAE,EAAW,CAAC,CAAC,CAAC;wBACpD,CAAC;wBAED,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChB,CAAC,CACF,CACF,CAAC;oBACF,SAAS;gBACX,CAAC;gBAED,sEAAsE;gBACtE,IAAI,CAAC,KAAK,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,CAAC;oBACtD,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;oBAC3C,SAAS;gBACX,CAAC;gBAED,QAAQ,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,KAAc,EAAE,MAAe,CAAC,CAAC;gBAC9D,SAAS;YACX,CAAC;YAED,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACxB,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,SAAS,WAAW,CAAC,CAAY,EAAE,CAAY;QAC7C,kEAAkE;QAClE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAEpB,4EAA4E;YAC5E,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;gBAC5B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,SAAS;YACX,CAAC;YAED,+EAA+E;YAC/E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC1C,SAAS;YACX,CAAC;YAED,oEAAoE;YACpE,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,sGAAsG;gBACtG,IAAI,CAAC,KAAK,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,CAAC;oBACtD,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;yBACtC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;wBACd,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACzB,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;4BAChC,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAU,EAAE,EAAW,CAAC,CAAC,CAAC;wBACpD,CAAC;wBAED,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChB,CAAC,CAAC,CACL,CAAC;oBACF,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACnB,SAAS;gBACX,CAAC;gBAED,sEAAsE;gBACtE,IAAI,CAAC,KAAK,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,CAAC;oBACtD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC1C,SAAS;gBACX,CAAC;gBAED,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,KAAc,EAAE,MAAe,CAAC,CAAC,CAAC;gBAC7D,SAAS;YACX,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC"}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
+
// This module is browser compatible.
|
3
|
+
import { AssertionError } from "./assertion_error.js";
|
4
|
+
import { assertIsError } from "./is_error.js";
|
5
|
+
export async function assertRejects(fn, errorClassOrMsg, msgIncludesOrMsg, msg) {
|
6
|
+
// deno-lint-ignore no-explicit-any
|
7
|
+
let ErrorClass;
|
8
|
+
let msgIncludes;
|
9
|
+
let err;
|
10
|
+
if (typeof errorClassOrMsg !== "string") {
|
11
|
+
if (errorClassOrMsg === undefined ||
|
12
|
+
errorClassOrMsg.prototype instanceof Error ||
|
13
|
+
errorClassOrMsg.prototype === Error.prototype) {
|
14
|
+
ErrorClass = errorClassOrMsg;
|
15
|
+
msgIncludes = msgIncludesOrMsg;
|
16
|
+
}
|
17
|
+
}
|
18
|
+
else {
|
19
|
+
msg = errorClassOrMsg;
|
20
|
+
}
|
21
|
+
let doesThrow = false;
|
22
|
+
let isPromiseReturned = false;
|
23
|
+
const msgSuffix = msg ? `: ${msg}` : ".";
|
24
|
+
try {
|
25
|
+
const possiblePromise = fn();
|
26
|
+
if (possiblePromise &&
|
27
|
+
typeof possiblePromise === "object" &&
|
28
|
+
typeof possiblePromise.then === "function") {
|
29
|
+
isPromiseReturned = true;
|
30
|
+
await possiblePromise;
|
31
|
+
}
|
32
|
+
else {
|
33
|
+
throw new Error();
|
34
|
+
}
|
35
|
+
}
|
36
|
+
catch (error) {
|
37
|
+
if (!isPromiseReturned) {
|
38
|
+
throw new AssertionError(`Function throws when expected to reject${msgSuffix}`);
|
39
|
+
}
|
40
|
+
if (ErrorClass) {
|
41
|
+
if (!(error instanceof Error)) {
|
42
|
+
throw new AssertionError(`A non-Error object was rejected${msgSuffix}`);
|
43
|
+
}
|
44
|
+
assertIsError(error, ErrorClass, msgIncludes, msg);
|
45
|
+
}
|
46
|
+
err = error;
|
47
|
+
doesThrow = true;
|
48
|
+
}
|
49
|
+
if (!doesThrow) {
|
50
|
+
throw new AssertionError(`Expected function to reject${msgSuffix}`);
|
51
|
+
}
|
52
|
+
return err;
|
53
|
+
}
|
54
|
+
//# sourceMappingURL=rejects.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rejects.js","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.8/rejects.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,qCAAqC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAoD9C,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAA8B,EAC9B,eAGU,EACV,gBAAyB,EACzB,GAAY;IAEZ,mCAAmC;IACnC,IAAI,UAA4D,CAAC;IACjE,IAAI,WAA+B,CAAC;IACpC,IAAI,GAAG,CAAC;IAER,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;QACxC,IACE,eAAe,KAAK,SAAS;YAC7B,eAAe,CAAC,SAAS,YAAY,KAAK;YAC1C,eAAe,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAC7C,CAAC;YACD,UAAU,GAAG,eAAe,CAAC;YAC7B,WAAW,GAAG,gBAAgB,CAAC;QACjC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,eAAe,CAAC;IACxB,CAAC;IACD,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,EAAE,EAAE,CAAC;QAC7B,IACE,eAAe;YACf,OAAO,eAAe,KAAK,QAAQ;YACnC,OAAO,eAAe,CAAC,IAAI,KAAK,UAAU,EAC1C,CAAC;YACD,iBAAiB,GAAG,IAAI,CAAC;YACzB,MAAM,eAAe,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,IAAI,cAAc,CACtB,0CAA0C,SAAS,EAAE,CACtD,CAAC;QACJ,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,cAAc,CAAC,kCAAkC,SAAS,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,aAAa,CACX,KAAK,EACL,UAAU,EACV,WAAW,EACX,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,GAAG,GAAG,KAAK,CAAC;QACZ,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,cAAc,CACtB,8BAA8B,SAAS,EAAE,CAC1C,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
+
// This module is browser compatible.
|
3
|
+
import { buildMessage } from "../../internal/1.0.5/build_message.js";
|
4
|
+
import { diff } from "../../internal/1.0.5/diff.js";
|
5
|
+
import { diffStr } from "../../internal/1.0.5/diff_str.js";
|
6
|
+
import { format } from "../../internal/1.0.5/format.js";
|
7
|
+
import { red } from "../../internal/1.0.5/styles.js";
|
8
|
+
import { AssertionError } from "./assertion_error.js";
|
9
|
+
/**
|
10
|
+
* Make an assertion that `actual` and `expected` are strictly equal, using
|
11
|
+
* {@linkcode Object.is} for equality comparison. If not, then throw.
|
12
|
+
*
|
13
|
+
* @example Usage
|
14
|
+
* ```ts ignore
|
15
|
+
* import { assertStrictEquals } from "@std/assert";
|
16
|
+
*
|
17
|
+
* const a = {};
|
18
|
+
* const b = a;
|
19
|
+
* assertStrictEquals(a, b); // Doesn't throw
|
20
|
+
*
|
21
|
+
* const c = {};
|
22
|
+
* const d = {};
|
23
|
+
* assertStrictEquals(c, d); // Throws
|
24
|
+
* ```
|
25
|
+
*
|
26
|
+
* @typeParam T The type of the expected value.
|
27
|
+
* @param actual The actual value to compare.
|
28
|
+
* @param expected The expected value to compare.
|
29
|
+
* @param msg The optional message to display if the assertion fails.
|
30
|
+
*/
|
31
|
+
export function assertStrictEquals(actual, expected, msg) {
|
32
|
+
if (Object.is(actual, expected)) {
|
33
|
+
return;
|
34
|
+
}
|
35
|
+
const msgSuffix = msg ? `: ${msg}` : ".";
|
36
|
+
let message;
|
37
|
+
const actualString = format(actual);
|
38
|
+
const expectedString = format(expected);
|
39
|
+
if (actualString === expectedString) {
|
40
|
+
const withOffset = actualString
|
41
|
+
.split("\n")
|
42
|
+
.map((l) => ` ${l}`)
|
43
|
+
.join("\n");
|
44
|
+
message =
|
45
|
+
`Values have the same structure but are not reference-equal${msgSuffix}\n\n${red(withOffset)}\n`;
|
46
|
+
}
|
47
|
+
else {
|
48
|
+
const stringDiff = (typeof actual === "string") &&
|
49
|
+
(typeof expected === "string");
|
50
|
+
const diffResult = stringDiff
|
51
|
+
? diffStr(actual, expected)
|
52
|
+
: diff(actualString.split("\n"), expectedString.split("\n"));
|
53
|
+
const diffMsg = buildMessage(diffResult, { stringDiff }).join("\n");
|
54
|
+
message = `Values are not strictly equal${msgSuffix}\n${diffMsg}`;
|
55
|
+
}
|
56
|
+
throw new AssertionError(message);
|
57
|
+
}
|
58
|
+
//# sourceMappingURL=strict_equals.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"strict_equals.js","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.8/strict_equals.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,qCAAqC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAe,EACf,QAAW,EACX,GAAY;IAEZ,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACzC,IAAI,OAAe,CAAC;IAEpB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAExC,IAAI,YAAY,KAAK,cAAc,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,YAAY;aAC5B,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;aACtB,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO;YACL,6DAA6D,SAAS,OACpE,GAAG,CAAC,UAAU,CAChB,IAAI,CAAC;IACT,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC;YAC7C,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACjC,MAAM,UAAU,GAAG,UAAU;YAC3B,CAAC,CAAC,OAAO,CAAC,MAAgB,EAAE,QAAkB,CAAC;YAC/C,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,GAAG,gCAAgC,SAAS,KAAK,OAAO,EAAE,CAAC;IACpE,CAAC;IAED,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC"}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
+
// This module is browser compatible.
|
3
|
+
import { AssertionError } from "./assertion_error.js";
|
4
|
+
/**
|
5
|
+
* Make an assertion that actual includes expected. If not
|
6
|
+
* then throw.
|
7
|
+
*
|
8
|
+
* @example Usage
|
9
|
+
* ```ts ignore
|
10
|
+
* import { assertStringIncludes } from "@std/assert";
|
11
|
+
*
|
12
|
+
* assertStringIncludes("Hello", "ello"); // Doesn't throw
|
13
|
+
* assertStringIncludes("Hello", "world"); // Throws
|
14
|
+
* ```
|
15
|
+
*
|
16
|
+
* @param actual The actual string to check for inclusion.
|
17
|
+
* @param expected The expected string to check for inclusion.
|
18
|
+
* @param msg The optional message to display if the assertion fails.
|
19
|
+
*/
|
20
|
+
export function assertStringIncludes(actual, expected, msg) {
|
21
|
+
if (actual.includes(expected))
|
22
|
+
return;
|
23
|
+
const msgSuffix = msg ? `: ${msg}` : ".";
|
24
|
+
msg = `Expected actual: "${actual}" to contain: "${expected}"${msgSuffix}`;
|
25
|
+
throw new AssertionError(msg);
|
26
|
+
}
|
27
|
+
//# sourceMappingURL=string_includes.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"string_includes.js","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.8/string_includes.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,qCAAqC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,QAAgB,EAChB,GAAY;IAEZ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO;IACtC,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACzC,GAAG,GAAG,qBAAqB,MAAM,kBAAkB,QAAQ,IAAI,SAAS,EAAE,CAAC;IAC3E,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC"}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
+
// This module is browser compatible.
|
3
|
+
import { assertIsError } from "./is_error.js";
|
4
|
+
import { AssertionError } from "./assertion_error.js";
|
5
|
+
export function assertThrows(fn, errorClassOrMsg, msgIncludesOrMsg, msg) {
|
6
|
+
// deno-lint-ignore no-explicit-any
|
7
|
+
let ErrorClass;
|
8
|
+
let msgIncludes;
|
9
|
+
let err;
|
10
|
+
if (typeof errorClassOrMsg !== "string") {
|
11
|
+
if (errorClassOrMsg === undefined ||
|
12
|
+
errorClassOrMsg?.prototype instanceof Error ||
|
13
|
+
errorClassOrMsg?.prototype === Error.prototype) {
|
14
|
+
ErrorClass = errorClassOrMsg;
|
15
|
+
msgIncludes = msgIncludesOrMsg;
|
16
|
+
}
|
17
|
+
else {
|
18
|
+
msg = msgIncludesOrMsg;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
else {
|
22
|
+
msg = errorClassOrMsg;
|
23
|
+
}
|
24
|
+
let doesThrow = false;
|
25
|
+
const msgSuffix = msg ? `: ${msg}` : ".";
|
26
|
+
try {
|
27
|
+
fn();
|
28
|
+
}
|
29
|
+
catch (error) {
|
30
|
+
if (ErrorClass) {
|
31
|
+
if (error instanceof Error === false) {
|
32
|
+
throw new AssertionError(`A non-Error object was thrown${msgSuffix}`);
|
33
|
+
}
|
34
|
+
assertIsError(error, ErrorClass, msgIncludes, msg);
|
35
|
+
}
|
36
|
+
err = error;
|
37
|
+
doesThrow = true;
|
38
|
+
}
|
39
|
+
if (!doesThrow) {
|
40
|
+
msg = `Expected function to throw${msgSuffix}`;
|
41
|
+
throw new AssertionError(msg);
|
42
|
+
}
|
43
|
+
return err;
|
44
|
+
}
|
45
|
+
//# sourceMappingURL=throws.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"throws.js","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.8/throws.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,qCAAqC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAuDtD,MAAM,UAAU,YAAY,CAC1B,EAAiB,EACjB,eAGU,EACV,gBAAyB,EACzB,GAAY;IAEZ,mCAAmC;IACnC,IAAI,UAA4D,CAAC;IACjE,IAAI,WAA+B,CAAC;IACpC,IAAI,GAAG,CAAC;IAER,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;QACxC,IACE,eAAe,KAAK,SAAS;YAC7B,eAAe,EAAE,SAAS,YAAY,KAAK;YAC3C,eAAe,EAAE,SAAS,KAAK,KAAK,CAAC,SAAS,EAC9C,CAAC;YACD,UAAU,GAAG,eAAe,CAAC;YAC7B,WAAW,GAAG,gBAAgB,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,gBAAgB,CAAC;QACzB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,eAAe,CAAC;IACxB,CAAC;IACD,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACzC,IAAI,CAAC;QACH,EAAE,EAAE,CAAC;IACP,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,KAAK,KAAK,EAAE,CAAC;gBACrC,MAAM,IAAI,cAAc,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;YACxE,CAAC;YACD,aAAa,CACX,KAAK,EACL,UAAU,EACV,WAAW,EACX,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,GAAG,GAAG,KAAK,CAAC;QACZ,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,GAAG,GAAG,6BAA6B,SAAS,EAAE,CAAC;QAC/C,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
+
// This module is browser compatible.
|
3
|
+
import { AssertionError } from "./assertion_error.js";
|
4
|
+
/**
|
5
|
+
* Use this to stub out methods that will throw when invoked.
|
6
|
+
*
|
7
|
+
* @example Usage
|
8
|
+
* ```ts ignore
|
9
|
+
* import { unimplemented } from "@std/assert";
|
10
|
+
*
|
11
|
+
* unimplemented(); // Throws
|
12
|
+
* ```
|
13
|
+
*
|
14
|
+
* @param msg Optional message to include in the error.
|
15
|
+
* @returns Never returns, always throws.
|
16
|
+
*/
|
17
|
+
export function unimplemented(msg) {
|
18
|
+
const msgSuffix = msg ? `: ${msg}` : ".";
|
19
|
+
throw new AssertionError(`Unimplemented${msgSuffix}`);
|
20
|
+
}
|
21
|
+
//# sourceMappingURL=unimplemented.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"unimplemented.js","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.8/unimplemented.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,qCAAqC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACzC,MAAM,IAAI,cAAc,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;AACxD,CAAC"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
+
// This module is browser compatible.
|
3
|
+
import { AssertionError } from "./assertion_error.js";
|
4
|
+
/**
|
5
|
+
* Use this to assert unreachable code.
|
6
|
+
*
|
7
|
+
* @example Usage
|
8
|
+
* ```ts ignore
|
9
|
+
* import { unreachable } from "@std/assert";
|
10
|
+
*
|
11
|
+
* unreachable(); // Throws
|
12
|
+
* ```
|
13
|
+
*
|
14
|
+
* @param msg Optional message to include in the error.
|
15
|
+
* @returns Never returns, always throws.
|
16
|
+
*/
|
17
|
+
export function unreachable(msg) {
|
18
|
+
const msgSuffix = msg ? `: ${msg}` : ".";
|
19
|
+
throw new AssertionError(`Unreachable${msgSuffix}`);
|
20
|
+
}
|
21
|
+
//# sourceMappingURL=unreachable.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"unreachable.js","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.8/unreachable.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,qCAAqC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACzC,MAAM,IAAI,cAAc,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;AACtD,CAAC"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
+
// This module is browser compatible.
|
3
|
+
/**
|
4
|
+
* Filters the given array, removing all elements that do not match the given predicate
|
5
|
+
* **in place. This means `array` will be modified!**.
|
6
|
+
*/
|
7
|
+
export function filterInPlace(array, predicate) {
|
8
|
+
let outputIndex = 0;
|
9
|
+
for (const cur of array) {
|
10
|
+
if (!predicate(cur)) {
|
11
|
+
continue;
|
12
|
+
}
|
13
|
+
array[outputIndex] = cur;
|
14
|
+
outputIndex += 1;
|
15
|
+
}
|
16
|
+
array.splice(outputIndex);
|
17
|
+
return array;
|
18
|
+
}
|
19
|
+
//# sourceMappingURL=_utils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"_utils.js","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/collections/1.0.9/_utils.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,qCAAqC;AAErC;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAe,EACf,SAA6B;IAE7B,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,SAAS;QACX,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;QACzB,WAAW,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAE1B,OAAO,KAAK,CAAC;AACf,CAAC"}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
+
// This module is browser compatible.
|
3
|
+
import { mapEntries } from "./map_entries.js";
|
4
|
+
/**
|
5
|
+
* Applies the given aggregator to each group in the given grouping, returning the
|
6
|
+
* results together with the respective group keys
|
7
|
+
*
|
8
|
+
* @typeParam T Type of the values in the input record.
|
9
|
+
* @typeParam A Type of the accumulator value, which will match the returned
|
10
|
+
* record's values.
|
11
|
+
*
|
12
|
+
* @param record The grouping to aggregate.
|
13
|
+
* @param aggregator The function to apply to each group.
|
14
|
+
*
|
15
|
+
* @returns A record with the same keys as the input record, but with the values
|
16
|
+
* being the result of applying the aggregator to each group.
|
17
|
+
*
|
18
|
+
* @example Basic usage
|
19
|
+
* ```ts
|
20
|
+
* import { aggregateGroups } from "@std/collections/aggregate-groups";
|
21
|
+
* import { assertEquals } from "@std/assert";
|
22
|
+
*
|
23
|
+
* const foodProperties = {
|
24
|
+
* Curry: ["spicy", "vegan"],
|
25
|
+
* Omelette: ["creamy", "vegetarian"],
|
26
|
+
* };
|
27
|
+
*
|
28
|
+
* const descriptions = aggregateGroups(
|
29
|
+
* foodProperties,
|
30
|
+
* (current, key, first, acc) => {
|
31
|
+
* return first
|
32
|
+
* ? `${key} is ${current}`
|
33
|
+
* : `${acc} and ${current}`;
|
34
|
+
* },
|
35
|
+
* );
|
36
|
+
*
|
37
|
+
* assertEquals(descriptions, {
|
38
|
+
* Curry: "Curry is spicy and vegan",
|
39
|
+
* Omelette: "Omelette is creamy and vegetarian",
|
40
|
+
* });
|
41
|
+
* ```
|
42
|
+
*/
|
43
|
+
export function aggregateGroups(record, aggregator) {
|
44
|
+
return mapEntries(record, ([key, values]) => [
|
45
|
+
key,
|
46
|
+
// Need the type assertions here because the reduce type does not support
|
47
|
+
// the type transition we need
|
48
|
+
values.reduce((accumulator, current, currentIndex) => aggregator(current, key, currentIndex === 0, accumulator), undefined),
|
49
|
+
]);
|
50
|
+
}
|
51
|
+
//# sourceMappingURL=aggregate_groups.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"aggregate_groups.js","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/collections/1.0.9/aggregate_groups.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,qCAAqC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAkD,EAClD,UAA2E;IAE3E,OAAO,UAAU,CACf,MAAM,EACN,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;QACjB,GAAG;QACH,yEAAyE;QACzE,8BAA8B;QAC9B,MAAM,CAAC,MAAM,CACX,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,CACrC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,KAAK,CAAC,EAAE,WAAW,CAAC,EAC3D,SAA0B,CACtB;KACP,CACF,CAAC;AACJ,CAAC"}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
+
// This module is browser compatible.
|
3
|
+
/**
|
4
|
+
* Creates a record by associating each element of the input array with a key
|
5
|
+
* generated by the selector function.
|
6
|
+
*
|
7
|
+
* If the selector produces the same key for multiple elements, the latest one
|
8
|
+
* will be used (overriding the ones before it).
|
9
|
+
*
|
10
|
+
* @typeParam T Type of the elements in the input array.
|
11
|
+
*
|
12
|
+
* @param array The array to transform.
|
13
|
+
* @param selector The function to extract the key from each element.
|
14
|
+
*
|
15
|
+
* @returns A record with the keys produced by the selector and the elements as
|
16
|
+
* values.
|
17
|
+
*
|
18
|
+
* @example Basic usage
|
19
|
+
* ```ts
|
20
|
+
* import { associateBy } from "@std/collections/associate-by";
|
21
|
+
* import { assertEquals } from "@std/assert";
|
22
|
+
*
|
23
|
+
* const users = [
|
24
|
+
* { id: "a2e", userName: "Anna" },
|
25
|
+
* { id: "5f8", userName: "Arnold" },
|
26
|
+
* { id: "d2c", userName: "Kim" },
|
27
|
+
* ];
|
28
|
+
*
|
29
|
+
* const usersById = associateBy(users, (user) => user.id);
|
30
|
+
*
|
31
|
+
* assertEquals(usersById, {
|
32
|
+
* "a2e": { id: "a2e", userName: "Anna" },
|
33
|
+
* "5f8": { id: "5f8", userName: "Arnold" },
|
34
|
+
* "d2c": { id: "d2c", userName: "Kim" },
|
35
|
+
* });
|
36
|
+
* ```
|
37
|
+
*/
|
38
|
+
export function associateBy(array, selector) {
|
39
|
+
const result = {};
|
40
|
+
for (const element of array) {
|
41
|
+
result[selector(element)] = element;
|
42
|
+
}
|
43
|
+
return result;
|
44
|
+
}
|
45
|
+
//# sourceMappingURL=associate_by.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"associate_by.js","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/collections/1.0.9/associate_by.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,qCAAqC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,UAAU,WAAW,CACzB,KAAkB,EAClB,QAA2B;IAE3B,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC;IACtC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
+
// This module is browser compatible.
|
3
|
+
/**
|
4
|
+
* Associates each string element of an array with a value returned by a selector
|
5
|
+
* function.
|
6
|
+
*
|
7
|
+
* If any of two pairs would have the same value, the latest one will be used
|
8
|
+
* (overriding the ones before it).
|
9
|
+
*
|
10
|
+
* @typeParam T The type of the values returned by the selector function.
|
11
|
+
*
|
12
|
+
* @param array The array of elements to associate with values.
|
13
|
+
* @param selector The selector function that returns a value for each element.
|
14
|
+
*
|
15
|
+
* @returns An object where each element of the array is associated with a value
|
16
|
+
* returned by the selector function.
|
17
|
+
*
|
18
|
+
* @example Basic usage
|
19
|
+
* ```ts
|
20
|
+
* import { associateWith } from "@std/collections/associate-with";
|
21
|
+
* import { assertEquals } from "@std/assert";
|
22
|
+
*
|
23
|
+
* const names = ["Kim", "Lara", "Jonathan"];
|
24
|
+
*
|
25
|
+
* const namesToLength = associateWith(names, (person) => person.length);
|
26
|
+
*
|
27
|
+
* assertEquals(namesToLength, {
|
28
|
+
* "Kim": 3,
|
29
|
+
* "Lara": 4,
|
30
|
+
* "Jonathan": 8,
|
31
|
+
* });
|
32
|
+
* ```
|
33
|
+
*/
|
34
|
+
export function associateWith(array, selector) {
|
35
|
+
const result = {};
|
36
|
+
for (const element of array) {
|
37
|
+
result[element] = selector(element);
|
38
|
+
}
|
39
|
+
return result;
|
40
|
+
}
|
41
|
+
//# sourceMappingURL=associate_with.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"associate_with.js","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/collections/1.0.9/associate_with.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,qCAAqC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAuB,EACvB,QAA4B;IAE5B,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
+
// This module is browser compatible.
|
3
|
+
/**
|
4
|
+
* Splits the given array into chunks of the given size and returns them.
|
5
|
+
*
|
6
|
+
* @typeParam T Type of the elements in the input array.
|
7
|
+
*
|
8
|
+
* @param array The array to split into chunks.
|
9
|
+
* @param size The size of the chunks. This must be a positive integer.
|
10
|
+
*
|
11
|
+
* @returns An array of chunks of the given size.
|
12
|
+
*
|
13
|
+
* @example Basic usage
|
14
|
+
* ```ts
|
15
|
+
* import { chunk } from "@std/collections/chunk";
|
16
|
+
* import { assertEquals } from "@std/assert";
|
17
|
+
*
|
18
|
+
* const words = [
|
19
|
+
* "lorem",
|
20
|
+
* "ipsum",
|
21
|
+
* "dolor",
|
22
|
+
* "sit",
|
23
|
+
* "amet",
|
24
|
+
* "consetetur",
|
25
|
+
* "sadipscing",
|
26
|
+
* ];
|
27
|
+
* const chunks = chunk(words, 3);
|
28
|
+
*
|
29
|
+
* assertEquals(
|
30
|
+
* chunks,
|
31
|
+
* [
|
32
|
+
* ["lorem", "ipsum", "dolor"],
|
33
|
+
* ["sit", "amet", "consetetur"],
|
34
|
+
* ["sadipscing"],
|
35
|
+
* ],
|
36
|
+
* );
|
37
|
+
* ```
|
38
|
+
*/
|
39
|
+
export function chunk(array, size) {
|
40
|
+
if (size <= 0 || !Number.isInteger(size)) {
|
41
|
+
throw new RangeError(`Expected size to be an integer greater than 0 but found ${size}`);
|
42
|
+
}
|
43
|
+
const result = [];
|
44
|
+
let index = 0;
|
45
|
+
while (index < array.length) {
|
46
|
+
result.push(array.slice(index, index + size));
|
47
|
+
index += size;
|
48
|
+
}
|
49
|
+
return result;
|
50
|
+
}
|
51
|
+
//# sourceMappingURL=chunk.js.map
|