functionalscript 0.1.609 → 0.2.1
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/com/cpp/module.f.mjs +20 -25
- package/com/cpp/testlib.f.mjs +3 -4
- package/com/cs/module.f.mjs +18 -23
- package/com/cs/testlib.f.mjs +3 -5
- package/com/rust/module.f.mjs +25 -30
- package/com/rust/testlib.f.mjs +3 -5
- package/com/test/build.f.mjs +2 -2
- package/com/test/build.mjs +4 -4
- package/com/types/module.f.mjs +5 -12
- package/commonjs/build/module.f.mjs +23 -28
- package/commonjs/build/test.f.mjs +4 -4
- package/commonjs/module/function/module.f.mjs +0 -2
- package/commonjs/module/module.f.mjs +2 -9
- package/commonjs/module.f.mjs +0 -2
- package/commonjs/module.mjs +2 -7
- package/commonjs/package/dependencies/module.f.mjs +5 -10
- package/commonjs/package/dependencies/test.f.mjs +1 -1
- package/commonjs/package/module.f.mjs +6 -13
- package/commonjs/package/test.f.mjs +1 -1
- package/commonjs/path/module.f.mjs +12 -23
- package/commonjs/path/test.f.mjs +11 -11
- package/commonjs/test.mjs +1 -1
- package/dev/module.f.mjs +1 -4
- package/dev/module.mjs +1 -1
- package/dev/test/module.f.mjs +4 -6
- package/djs/module.f.mjs +12 -19
- package/djs/parser/module.f.mjs +18 -24
- package/djs/parser/test.f.mjs +9 -9
- package/djs/test.f.mjs +4 -4
- package/djs/tokenizer/module.f.mjs +18 -23
- package/djs/tokenizer/test.f.mjs +6 -6
- package/fsc/module.f.mjs +17 -24
- package/fsc/test.f.mjs +3 -3
- package/fsm/module.f.mjs +27 -38
- package/fsm/test.f.mjs +8 -8
- package/html/module.f.mjs +14 -23
- package/html/test.f.mjs +4 -4
- package/js/tokenizer/module.f.mjs +55 -62
- package/js/tokenizer/test.f.mjs +6 -6
- package/json/module.f.mjs +18 -31
- package/json/parser/module.f.mjs +9 -14
- package/json/parser/test.f.mjs +7 -7
- package/json/serializer/module.f.mjs +14 -29
- package/json/serializer/test.f.mjs +2 -2
- package/json/test.f.mjs +3 -3
- package/json/tokenizer/module.f.mjs +14 -19
- package/json/tokenizer/test.f.mjs +6 -6
- package/jsr.json +59 -59
- package/nodejs/version/main.mjs +1 -1
- package/nodejs/version/module.f.mjs +2 -7
- package/nodejs/version/test.f.mjs +3 -3
- package/out/com/cpp/module.f.d.mts +4 -0
- package/out/com/cpp/module.f.mjs +123 -0
- package/out/com/cpp/test.f.mjs +40 -0
- package/out/com/cpp/testlib.f.mjs +7 -0
- package/out/com/cs/module.f.d.mts +4 -0
- package/out/com/cs/module.f.mjs +95 -0
- package/out/com/cs/test.f.mjs +43 -0
- package/out/com/cs/testlib.f.mjs +7 -0
- package/{com → out/com}/rust/module.f.d.mts +3 -7
- package/out/com/rust/module.f.mjs +213 -0
- package/out/com/rust/test.f.mjs +123 -0
- package/out/com/rust/testlib.f.mjs +7 -0
- package/{com → out/com}/test/build.f.d.mts +2 -2
- package/out/com/test/build.f.mjs +98 -0
- package/out/com/test/build.mjs +40 -0
- package/{com → out/com}/types/module.f.d.mts +5 -10
- package/out/com/types/module.f.mjs +51 -0
- package/out/com/types/testlib.f.mjs +30 -0
- package/out/commonjs/build/module.f.d.mts +20 -0
- package/out/commonjs/build/module.f.mjs +107 -0
- package/out/commonjs/build/test.f.mjs +102 -0
- package/{commonjs → out/commonjs}/module/function/module.f.d.mts +0 -2
- package/out/commonjs/module/function/module.f.mjs +15 -0
- package/{commonjs → out/commonjs}/module/module.f.d.mts +16 -21
- package/out/commonjs/module/module.f.mjs +48 -0
- package/out/commonjs/module.d.mts +3 -0
- package/{commonjs → out/commonjs}/module.f.d.mts +0 -2
- package/out/commonjs/module.f.mjs +10 -0
- package/out/commonjs/module.mjs +26 -0
- package/out/commonjs/package/dependencies/module.f.d.mts +6 -0
- package/out/commonjs/package/dependencies/module.f.mjs +21 -0
- package/out/commonjs/package/dependencies/test.f.mjs +15 -0
- package/out/commonjs/package/module.f.d.mts +21 -0
- package/out/commonjs/package/module.f.mjs +40 -0
- package/out/commonjs/package/test.f.mjs +27 -0
- package/{commonjs → out/commonjs}/path/module.f.d.mts +25 -32
- package/out/commonjs/path/module.f.mjs +171 -0
- package/out/commonjs/path/test.f.mjs +231 -0
- package/out/commonjs/test.mjs +87 -0
- package/out/dev/index.mjs +2 -0
- package/out/dev/module.f.d.mts +1 -0
- package/out/dev/module.f.mjs +2 -0
- package/out/dev/module.mjs +167 -0
- package/{dev → out/dev}/test/module.f.d.mts +2 -3
- package/out/dev/test/module.f.mjs +134 -0
- package/out/dev/test.f.mjs +58 -0
- package/out/dev/test.mjs +52 -0
- package/{djs → out/djs}/module.f.d.mts +13 -18
- package/out/djs/module.f.mjs +75 -0
- package/{djs → out/djs}/parser/module.f.d.mts +11 -15
- package/out/djs/parser/module.f.mjs +432 -0
- package/out/djs/parser/test.f.mjs +535 -0
- package/out/djs/test.f.mjs +84 -0
- package/out/djs/tokenizer/module.f.d.mts +13 -0
- package/out/djs/tokenizer/module.f.mjs +87 -0
- package/out/djs/tokenizer/test.f.mjs +480 -0
- package/out/fsc/module.f.d.mts +7 -0
- package/out/fsc/module.f.mjs +105 -0
- package/out/fsc/test.f.mjs +19 -0
- package/out/fsm/module.f.d.mts +14 -0
- package/out/fsm/module.f.mjs +80 -0
- package/out/fsm/test.f.mjs +138 -0
- package/out/html/module.f.d.mts +15 -0
- package/out/html/module.f.mjs +94 -0
- package/out/html/test.f.mjs +45 -0
- package/out/issues/test.f.mjs +66 -0
- package/{js → out/js}/tokenizer/module.f.d.mts +10 -15
- package/out/js/tokenizer/module.f.mjs +686 -0
- package/out/js/tokenizer/test.f.mjs +844 -0
- package/out/json/module.f.d.mts +33 -0
- package/out/json/module.f.mjs +89 -0
- package/{json → out/json}/parser/module.f.d.mts +9 -13
- package/out/json/parser/module.f.mjs +224 -0
- package/out/json/parser/test.f.mjs +321 -0
- package/out/json/serializer/module.f.d.mts +36 -0
- package/out/json/serializer/module.f.mjs +67 -0
- package/out/json/serializer/test.f.mjs +87 -0
- package/out/json/test.f.mjs +61 -0
- package/out/json/tokenizer/module.f.d.mts +13 -0
- package/out/json/tokenizer/module.f.mjs +78 -0
- package/out/json/tokenizer/test.f.mjs +420 -0
- package/out/nanvm-lib/tests/test.f.mjs +87 -0
- package/out/nodejs/version/main.mjs +3 -0
- package/{nodejs → out/nodejs}/version/module.f.d.mts +4 -9
- package/out/nodejs/version/module.f.mjs +34 -0
- package/out/nodejs/version/test.f.mjs +97 -0
- package/{prime_field → out/prime_field}/module.f.d.mts +20 -23
- package/out/prime_field/module.f.mjs +87 -0
- package/out/prime_field/test.f.mjs +145 -0
- package/{secp → out/secp}/module.f.d.mts +27 -28
- package/out/secp/module.f.mjs +113 -0
- package/out/secp/test.f.mjs +63 -0
- package/out/sha2/module.f.d.mts +15 -0
- package/out/sha2/module.f.mjs +172 -0
- package/out/sha2/test.f.mjs +86 -0
- package/out/text/ascii/module.f.d.mts +70 -0
- package/out/text/ascii/module.f.mjs +154 -0
- package/out/text/ascii/test.f.mjs +14 -0
- package/out/text/module.f.d.mts +13 -0
- package/out/text/module.f.mjs +19 -0
- package/out/text/sgr/module.f.d.mts +12 -0
- package/out/text/sgr/module.f.mjs +17 -0
- package/out/text/test.f.mjs +19 -0
- package/out/text/utf16/module.f.d.mts +12 -0
- package/out/text/utf16/module.f.mjs +86 -0
- package/out/text/utf16/test.f.mjs +145 -0
- package/out/text/utf8/module.f.d.mts +10 -0
- package/out/text/utf8/module.f.mjs +126 -0
- package/out/text/utf8/test.f.mjs +175 -0
- package/{types → out/types}/array/module.f.d.mts +14 -24
- package/out/types/array/module.f.mjs +95 -0
- package/out/types/array/test.f.mjs +116 -0
- package/out/types/bigfloat/module.f.d.mts +6 -0
- package/out/types/bigfloat/module.f.mjs +77 -0
- package/out/types/bigfloat/test.f.mjs +349 -0
- package/out/types/bigint/module.f.d.mts +29 -0
- package/{types/bigint/module.f.d.mts → out/types/bigint/module.f.mjs} +64 -27
- package/out/types/bigint/test.f.mjs +192 -0
- package/{types → out/types}/btree/find/module.f.d.mts +20 -26
- package/out/types/btree/find/module.f.mjs +137 -0
- package/out/types/btree/find/test.f.mjs +156 -0
- package/out/types/btree/module.f.d.mts +5 -0
- package/out/types/btree/module.f.mjs +34 -0
- package/{types → out/types}/btree/remove/module.f.d.mts +7 -12
- package/out/types/btree/remove/module.f.mjs +209 -0
- package/out/types/btree/remove/test.f.mjs +638 -0
- package/{types → out/types}/btree/set/module.f.d.mts +3 -7
- package/out/types/btree/set/module.f.mjs +114 -0
- package/out/types/btree/set/test.f.mjs +390 -0
- package/out/types/btree/test.f.mjs +83 -0
- package/{types → out/types}/btree/types/module.f.d.mts +0 -2
- package/out/types/btree/types/module.f.mjs +50 -0
- package/out/types/byte_set/module.f.d.mts +25 -0
- package/out/types/byte_set/module.f.mjs +42 -0
- package/out/types/byte_set/test.f.mjs +123 -0
- package/{types → out/types}/function/compare/module.f.d.mts +9 -15
- package/out/types/function/compare/module.f.mjs +22 -0
- package/out/types/function/compare/test.f.mjs +8 -0
- package/{types → out/types}/function/module.f.d.mts +20 -27
- package/out/types/function/module.f.mjs +44 -0
- package/{types → out/types}/function/operator/module.f.d.mts +28 -43
- package/out/types/function/operator/module.f.mjs +60 -0
- package/out/types/function/test.f.mjs +15 -0
- package/out/types/list/module.f.d.mts +82 -0
- package/out/types/list/module.f.mjs +269 -0
- package/out/types/list/test.f.mjs +401 -0
- package/out/types/map/module.f.d.mts +21 -0
- package/out/types/map/module.f.mjs +54 -0
- package/out/types/map/test.f.mjs +115 -0
- package/out/types/nibble_set/module.f.d.mts +16 -0
- package/out/types/nibble_set/module.f.mjs +19 -0
- package/out/types/nibble_set/test.f.mjs +90 -0
- package/out/types/nullable/module.f.d.mts +9 -0
- package/out/types/nullable/module.f.mjs +9 -0
- package/out/types/nullable/test.f.mjs +12 -0
- package/out/types/number/module.f.d.mts +7 -0
- package/out/types/number/module.f.mjs +12 -0
- package/out/types/number/test.f.mjs +126 -0
- package/out/types/object/module.f.d.mts +22 -0
- package/out/types/object/module.f.mjs +27 -0
- package/out/types/object/test.f.mjs +17 -0
- package/out/types/range/module.f.d.mts +6 -0
- package/out/types/range/module.f.mjs +6 -0
- package/out/types/range/test.f.mjs +18 -0
- package/{types → out/types}/range_map/module.f.d.mts +9 -15
- package/out/types/range_map/module.f.mjs +84 -0
- package/out/types/range_map/test.f.mjs +201 -0
- package/out/types/result/module.d.mts +7 -0
- package/{types → out/types}/result/module.f.d.mts +6 -12
- package/out/types/result/module.f.mjs +25 -0
- package/out/types/result/module.mjs +16 -0
- package/{types → out/types}/sorted_list/module.f.d.mts +22 -28
- package/out/types/sorted_list/module.f.mjs +102 -0
- package/out/types/sorted_list/test.f.mjs +66 -0
- package/{types → out/types}/sorted_set/module.f.d.mts +6 -12
- package/out/types/sorted_set/module.f.mjs +29 -0
- package/out/types/sorted_set/test.f.mjs +80 -0
- package/out/types/string/module.f.d.mts +9 -0
- package/out/types/string/module.f.mjs +17 -0
- package/out/types/string/test.f.mjs +58 -0
- package/out/types/string_set/module.f.d.mts +13 -0
- package/out/types/string_set/module.f.mjs +29 -0
- package/out/types/string_set/test.f.mjs +65 -0
- package/package.json +5 -4
- package/prime_field/module.f.mjs +9 -12
- package/prime_field/test.f.mjs +1 -1
- package/secp/module.f.mjs +38 -39
- package/secp/test.f.mjs +4 -4
- package/sha2/module.f.mjs +7 -20
- package/sha2/test.f.mjs +4 -4
- package/text/ascii/module.f.mjs +5 -10
- package/text/ascii/test.f.mjs +3 -3
- package/text/module.f.mjs +7 -14
- package/text/sgr/module.f.mjs +2 -4
- package/text/test.f.mjs +3 -3
- package/text/utf16/module.f.mjs +17 -28
- package/text/utf16/test.f.mjs +5 -5
- package/text/utf8/module.f.mjs +9 -16
- package/text/utf8/test.f.mjs +4 -4
- package/tsconfig.json +2 -2
- package/types/array/module.f.mjs +8 -25
- package/types/array/test.f.mjs +3 -3
- package/types/bigfloat/module.f.mjs +3 -10
- package/types/bigfloat/test.f.mjs +1 -1
- package/types/bigint/module.f.mjs +11 -30
- package/types/bigint/test.f.mjs +1 -1
- package/types/btree/find/module.f.mjs +8 -17
- package/types/btree/find/test.f.mjs +7 -7
- package/types/btree/module.f.mjs +6 -11
- package/types/btree/remove/module.f.mjs +10 -17
- package/types/btree/remove/test.f.mjs +5 -5
- package/types/btree/set/module.f.mjs +4 -9
- package/types/btree/set/test.f.mjs +4 -4
- package/types/btree/test.f.mjs +9 -9
- package/types/btree/types/module.f.mjs +0 -2
- package/types/byte_set/module.f.mjs +14 -39
- package/types/byte_set/test.f.mjs +5 -5
- package/types/function/compare/module.f.mjs +3 -12
- package/types/function/compare/test.f.mjs +1 -1
- package/types/function/module.f.mjs +4 -15
- package/types/function/operator/module.f.mjs +14 -41
- package/types/function/test.f.mjs +1 -1
- package/types/list/module.f.mjs +45 -114
- package/types/list/test.f.mjs +10 -10
- package/types/map/module.f.mjs +15 -30
- package/types/map/test.f.mjs +2 -2
- package/types/nibble_set/module.f.mjs +7 -24
- package/types/nibble_set/test.f.mjs +2 -2
- package/types/nullable/module.f.mjs +2 -9
- package/types/nullable/test.f.mjs +1 -1
- package/types/number/module.f.mjs +8 -19
- package/types/number/test.f.mjs +1 -1
- package/types/object/module.f.mjs +9 -20
- package/types/object/test.f.mjs +1 -1
- package/types/range/module.f.mjs +2 -9
- package/types/range/test.f.mjs +1 -1
- package/types/range_map/module.f.mjs +9 -18
- package/types/range_map/test.f.mjs +32 -32
- package/types/result/module.f.mjs +3 -12
- package/types/result/module.mjs +2 -2
- package/types/sorted_list/module.f.mjs +10 -19
- package/types/sorted_list/test.f.mjs +7 -7
- package/types/sorted_set/module.f.mjs +7 -16
- package/types/sorted_set/test.f.mjs +7 -7
- package/types/string/module.f.mjs +10 -21
- package/types/string/test.f.mjs +2 -2
- package/types/string_set/module.f.mjs +12 -27
- package/types/string_set/test.f.mjs +1 -1
- package/com/cpp/module.f.d.mts +0 -8
- package/com/cs/module.f.d.mts +0 -8
- package/commonjs/build/module.f.d.mts +0 -24
- package/commonjs/module.d.mts +0 -7
- package/commonjs/package/dependencies/module.f.d.mts +0 -10
- package/commonjs/package/module.f.d.mts +0 -27
- package/dev/module.f.d.mts +0 -4
- package/djs/tokenizer/module.f.d.mts +0 -17
- package/fsc/module.f.d.mts +0 -12
- package/fsm/module.f.d.mts +0 -21
- package/html/module.f.d.mts +0 -20
- package/json/module.f.d.mts +0 -41
- package/json/serializer/module.f.d.mts +0 -45
- package/json/tokenizer/module.f.d.mts +0 -17
- package/sha2/module.f.d.mts +0 -23
- package/text/ascii/module.f.d.mts +0 -73
- package/text/module.f.d.mts +0 -18
- package/text/sgr/module.f.d.mts +0 -14
- package/text/utf16/module.f.d.mts +0 -19
- package/text/utf8/module.f.d.mts +0 -15
- package/types/bigfloat/module.f.d.mts +0 -11
- package/types/btree/module.f.d.mts +0 -9
- package/types/byte_set/module.f.d.mts +0 -38
- package/types/list/module.f.d.mts +0 -117
- package/types/map/module.f.d.mts +0 -30
- package/types/nibble_set/module.f.d.mts +0 -26
- package/types/nullable/module.f.d.mts +0 -14
- package/types/number/module.f.d.mts +0 -13
- package/types/object/module.f.d.mts +0 -29
- package/types/range/module.f.d.mts +0 -11
- package/types/result/module.d.mts +0 -7
- package/types/string/module.f.d.mts +0 -15
- package/types/string_set/module.f.d.mts +0 -21
- /package/{com → out/com}/cpp/test.f.d.mts +0 -0
- /package/{com → out/com}/cpp/testlib.f.d.mts +0 -0
- /package/{com → out/com}/cs/test.f.d.mts +0 -0
- /package/{com → out/com}/cs/testlib.f.d.mts +0 -0
- /package/{com → out/com}/rust/test.f.d.mts +0 -0
- /package/{com → out/com}/rust/testlib.f.d.mts +0 -0
- /package/{com → out/com}/test/build.d.mts +0 -0
- /package/{com → out/com}/types/testlib.f.d.mts +0 -0
- /package/{commonjs → out/commonjs}/build/test.f.d.mts +0 -0
- /package/{commonjs → out/commonjs}/package/dependencies/test.f.d.mts +0 -0
- /package/{commonjs → out/commonjs}/package/test.f.d.mts +0 -0
- /package/{commonjs → out/commonjs}/path/test.f.d.mts +0 -0
- /package/{commonjs → out/commonjs}/test.d.mts +0 -0
- /package/{dev → out/dev}/index.d.mts +0 -0
- /package/{dev → out/dev}/module.d.mts +0 -0
- /package/{dev → out/dev}/test.d.mts +0 -0
- /package/{dev → out/dev}/test.f.d.mts +0 -0
- /package/{djs → out/djs}/parser/test.f.d.mts +0 -0
- /package/{djs → out/djs}/test.f.d.mts +0 -0
- /package/{djs → out/djs}/tokenizer/test.f.d.mts +0 -0
- /package/{fsc → out/fsc}/test.f.d.mts +0 -0
- /package/{fsm → out/fsm}/test.f.d.mts +0 -0
- /package/{html → out/html}/test.f.d.mts +0 -0
- /package/{issues → out/issues}/test.f.d.mts +0 -0
- /package/{js → out/js}/tokenizer/test.f.d.mts +0 -0
- /package/{json → out/json}/parser/test.f.d.mts +0 -0
- /package/{json → out/json}/serializer/test.f.d.mts +0 -0
- /package/{json → out/json}/test.f.d.mts +0 -0
- /package/{json → out/json}/tokenizer/test.f.d.mts +0 -0
- /package/{nanvm-lib → out/nanvm-lib}/tests/test.f.d.mts +0 -0
- /package/{nodejs → out/nodejs}/version/main.d.mts +0 -0
- /package/{nodejs → out/nodejs}/version/test.f.d.mts +0 -0
- /package/{prime_field → out/prime_field}/test.f.d.mts +0 -0
- /package/{secp → out/secp}/test.f.d.mts +0 -0
- /package/{sha2 → out/sha2}/test.f.d.mts +0 -0
- /package/{text → out/text}/ascii/test.f.d.mts +0 -0
- /package/{text → out/text}/test.f.d.mts +0 -0
- /package/{text → out/text}/utf16/test.f.d.mts +0 -0
- /package/{text → out/text}/utf8/test.f.d.mts +0 -0
- /package/{types → out/types}/array/test.f.d.mts +0 -0
- /package/{types → out/types}/bigfloat/test.f.d.mts +0 -0
- /package/{types → out/types}/bigint/test.f.d.mts +0 -0
- /package/{types → out/types}/btree/find/test.f.d.mts +0 -0
- /package/{types → out/types}/btree/remove/test.f.d.mts +0 -0
- /package/{types → out/types}/btree/set/test.f.d.mts +0 -0
- /package/{types → out/types}/btree/test.f.d.mts +0 -0
- /package/{types → out/types}/byte_set/test.f.d.mts +0 -0
- /package/{types → out/types}/function/compare/test.f.d.mts +0 -0
- /package/{types → out/types}/function/test.f.d.mts +0 -0
- /package/{types → out/types}/list/test.f.d.mts +0 -0
- /package/{types → out/types}/map/test.f.d.mts +0 -0
- /package/{types → out/types}/nibble_set/test.f.d.mts +0 -0
- /package/{types → out/types}/nullable/test.f.d.mts +0 -0
- /package/{types → out/types}/number/test.f.d.mts +0 -0
- /package/{types → out/types}/object/test.f.d.mts +0 -0
- /package/{types → out/types}/range/test.f.d.mts +0 -0
- /package/{types → out/types}/range_map/test.f.d.mts +0 -0
- /package/{types → out/types}/sorted_list/test.f.d.mts +0 -0
- /package/{types → out/types}/sorted_set/test.f.d.mts +0 -0
- /package/{types → out/types}/string/test.f.d.mts +0 -0
- /package/{types → out/types}/string_set/test.f.d.mts +0 -0
|
@@ -40,7 +40,7 @@ import * as O from '../../types/object/module.f.mjs'
|
|
|
40
40
|
*/
|
|
41
41
|
|
|
42
42
|
/** @type {(id: Id) => Id | null} */
|
|
43
|
-
const dir = id => {
|
|
43
|
+
export const dir = id => {
|
|
44
44
|
const len = id.path.length
|
|
45
45
|
if (len < 1) { return null }
|
|
46
46
|
return {
|
|
@@ -50,11 +50,4 @@ const dir = id => {
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
/** @type {(id: Id) => string} */
|
|
53
|
-
const idToString = id => `${id.package}/${id.path.join('/')}`
|
|
54
|
-
|
|
55
|
-
export default {
|
|
56
|
-
/** @readonly */
|
|
57
|
-
dir,
|
|
58
|
-
/** @readonly */
|
|
59
|
-
idToString,
|
|
60
|
-
}
|
|
53
|
+
export const idToString = id => `${id.package}/${id.path.join('/')}`
|
package/commonjs/module.f.mjs
CHANGED
package/commonjs/module.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import unsafeResult from '../types/result/module.mjs'
|
|
2
2
|
const { tryCatch } = unsafeResult
|
|
3
|
-
import result from '../types/result/module.f.mjs'
|
|
3
|
+
import * as result from '../types/result/module.f.mjs'
|
|
4
4
|
const { unwrap } = result
|
|
5
5
|
import * as ModuleFunction from './module/function/module.f.mjs'
|
|
6
6
|
|
|
@@ -23,11 +23,6 @@ const build = f => immutableRequire => mutableData => {
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
/** @type {ModuleFunction.Compile} */
|
|
26
|
-
const compile = source =>
|
|
26
|
+
export const compile = source =>
|
|
27
27
|
// Side effect: a `Function` constructor is not allowed in FunctionalScript.
|
|
28
28
|
tryCatch(() => build(Function('module', 'require', `"use strict";${source}`)))
|
|
29
|
-
|
|
30
|
-
export default {
|
|
31
|
-
/** @readonly */
|
|
32
|
-
compile,
|
|
33
|
-
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @ts-self-types="./module.f.d.mts"
|
|
2
|
-
import
|
|
2
|
+
import * as json from '../../../json/module.f.mjs'
|
|
3
3
|
const { isObject } = json
|
|
4
|
-
import list from '../../../types/list/module.f.mjs'
|
|
4
|
+
import * as list from '../../../types/list/module.f.mjs'
|
|
5
5
|
const { map, every } = list
|
|
6
6
|
const { entries } = Object
|
|
7
7
|
|
|
@@ -11,17 +11,12 @@ const { entries } = Object
|
|
|
11
11
|
|
|
12
12
|
/** @typedef {DependencyMapJson|null} DependenciesJson */
|
|
13
13
|
|
|
14
|
-
/** @type {(entry:
|
|
14
|
+
/** @type {(entry: json.Entry) => boolean} */
|
|
15
15
|
const isDependencyJson = ([, v]) => typeof v === 'string'
|
|
16
16
|
|
|
17
|
-
/** @type {(j:
|
|
18
|
-
const isDependenciesJson = j => {
|
|
17
|
+
/** @type {(j: json.Unknown) => j is DependenciesJson} */
|
|
18
|
+
export const isDependenciesJson = j => {
|
|
19
19
|
if (j === null) { return true }
|
|
20
20
|
if (!isObject(j)) { return false }
|
|
21
21
|
return every(map(isDependencyJson)(entries(j)))
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
export default {
|
|
25
|
-
/** @readonly */
|
|
26
|
-
isDependenciesJson,
|
|
27
|
-
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
// @ts-self-types="./module.f.d.mts"
|
|
2
|
-
import
|
|
2
|
+
import * as json from '../../json/module.f.mjs'
|
|
3
3
|
const { isObject } = json
|
|
4
|
-
import
|
|
4
|
+
import * as dependencies from './dependencies/module.f.mjs'
|
|
5
5
|
const { isDependenciesJson } = dependencies
|
|
6
|
-
import o from '../../types/object/module.f.mjs'
|
|
6
|
+
import * as o from '../../types/object/module.f.mjs'
|
|
7
7
|
const { at } = o
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* @typedef {{
|
|
11
11
|
* readonly name: string
|
|
12
12
|
* readonly version: string
|
|
13
|
-
* readonly dependencies?:
|
|
13
|
+
* readonly dependencies?: dependencies.DependenciesJson
|
|
14
14
|
* }} PackageJson
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
/** @type {(j:
|
|
18
|
-
const isPackageJson = j => {
|
|
17
|
+
/** @type {(j: json.Unknown) => j is PackageJson} */
|
|
18
|
+
export const isPackageJson = j => {
|
|
19
19
|
if (!isObject(j)) { return false }
|
|
20
20
|
if (typeof j.name !== 'string') { return false }
|
|
21
21
|
if (typeof j.version !== 'string') { return false }
|
|
@@ -34,10 +34,3 @@ const isPackageJson = j => {
|
|
|
34
34
|
* @note Current package has an empty string '' as a packageId.
|
|
35
35
|
* @typedef {(packageId: string) => Package | null} Get
|
|
36
36
|
*/
|
|
37
|
-
|
|
38
|
-
export default {
|
|
39
|
-
/** @readonly */
|
|
40
|
-
dependencies,
|
|
41
|
-
/** @readonly */
|
|
42
|
-
isPackageJson,
|
|
43
|
-
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @ts-self-types="./module.f.d.mts"
|
|
2
|
-
import
|
|
2
|
+
import * as list from '../../types/list/module.f.mjs'
|
|
3
3
|
const { next, fold, reverse, first, flat, toArray, filterMap, isEmpty, concat } = list
|
|
4
|
-
import string from '../../types/string/module.f.mjs'
|
|
4
|
+
import * as string from '../../types/string/module.f.mjs'
|
|
5
5
|
const { join } = string
|
|
6
6
|
import * as Package from '../package/module.f.mjs'
|
|
7
7
|
import * as Module from '../module/module.f.mjs'
|
|
@@ -19,7 +19,7 @@ import * as Module from '../module/module.f.mjs'
|
|
|
19
19
|
/** @type {(path: string) => readonly string[]} */
|
|
20
20
|
const split = path => path.split('/')
|
|
21
21
|
|
|
22
|
-
/** @typedef {readonly[
|
|
22
|
+
/** @typedef {readonly[list.List<string>] | null} OptionList */
|
|
23
23
|
|
|
24
24
|
/** @type {(items: string) => (prior: OptionList) => OptionList} */
|
|
25
25
|
const normItemsOp = first => prior => {
|
|
@@ -38,7 +38,7 @@ const normItemsOp = first => prior => {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
/** @type {(items:
|
|
41
|
+
/** @type {(items: list.List<string>) => OptionList} */
|
|
42
42
|
const normItems = items => {
|
|
43
43
|
const result = fold(normItemsOp)([list.empty])(items)
|
|
44
44
|
return result === null ? result : [reverse(result[0])]
|
|
@@ -47,8 +47,8 @@ const normItems = items => {
|
|
|
47
47
|
const firstNull = first(null)
|
|
48
48
|
|
|
49
49
|
/** @type {(local: string) => (path: string) => LocalPath|null} */
|
|
50
|
-
const parseLocal = local => {
|
|
51
|
-
/** @type {(path: string) => readonly[boolean, boolean,
|
|
50
|
+
export const parseLocal = local => {
|
|
51
|
+
/** @type {(path: string) => readonly[boolean, boolean, list.List<string>]} */
|
|
52
52
|
const fSeq = path => {
|
|
53
53
|
const pathSeq = split(path)
|
|
54
54
|
const dir = [null, '', '.', '..'].includes(pathSeq[pathSeq.length - 1])
|
|
@@ -69,9 +69,9 @@ const parseLocal = local => {
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
/** @typedef {readonly[string,
|
|
72
|
+
/** @typedef {readonly[string, list.List<string>]} IdPath */
|
|
73
73
|
|
|
74
|
-
/** @type {(prior: readonly[string|null,
|
|
74
|
+
/** @type {(prior: readonly[string|null, list.List<string>]) => list.Thunk<IdPath>} */
|
|
75
75
|
const variants = prior => () => {
|
|
76
76
|
const [a, b] = prior
|
|
77
77
|
const r = next(b)
|
|
@@ -99,10 +99,10 @@ const mapDependency = d => ([external, internal]) => {
|
|
|
99
99
|
/**
|
|
100
100
|
* @type {(d: (local: string) => string|null) =>
|
|
101
101
|
* (dir: boolean) =>
|
|
102
|
-
* (items:
|
|
102
|
+
* (items: list.List<string>) =>
|
|
103
103
|
* Path|null}
|
|
104
104
|
*/
|
|
105
|
-
const parseGlobal = dependencies =>
|
|
105
|
+
export const parseGlobal = dependencies =>
|
|
106
106
|
{
|
|
107
107
|
const fMap = filterMap(mapDependency(dependencies))
|
|
108
108
|
return dir => items => {
|
|
@@ -120,7 +120,7 @@ const parseGlobal = dependencies =>
|
|
|
120
120
|
* (path: string) =>
|
|
121
121
|
* Path|null }
|
|
122
122
|
*/
|
|
123
|
-
const parse = packageId => dependencies => {
|
|
123
|
+
export const parse = packageId => dependencies => {
|
|
124
124
|
const pg = parseGlobal(dependencies)
|
|
125
125
|
return local => path => {
|
|
126
126
|
const parsed = parseLocal(local)(path)
|
|
@@ -147,7 +147,7 @@ const parse = packageId => dependencies => {
|
|
|
147
147
|
* Result
|
|
148
148
|
* }
|
|
149
149
|
*/
|
|
150
|
-
const parseAndFind = packageGet => moduleId => path => {
|
|
150
|
+
export const parseAndFind = packageGet => moduleId => path => {
|
|
151
151
|
const currentPack = packageGet(moduleId.package)
|
|
152
152
|
if (currentPack === null) { return null }
|
|
153
153
|
const p = parse(moduleId.package)(currentPack.dependency)(moduleId.path.join('/'))(path)
|
|
@@ -164,14 +164,3 @@ const parseAndFind = packageGet => moduleId => path => {
|
|
|
164
164
|
const fileList = p.dir || isEmpty(p.items) ? [indexJs] : [file, `${file}.js`, indexJs]
|
|
165
165
|
return firstNull(filterMap(tryFile)(fileList))
|
|
166
166
|
}
|
|
167
|
-
|
|
168
|
-
export default {
|
|
169
|
-
/** @readonly */
|
|
170
|
-
parseLocal,
|
|
171
|
-
/** @readonly */
|
|
172
|
-
parseGlobal,
|
|
173
|
-
/** @readonly */
|
|
174
|
-
parse,
|
|
175
|
-
/** @readonly */
|
|
176
|
-
parseAndFind,
|
|
177
|
-
}
|
package/commonjs/path/test.f.mjs
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import _ from './module.f.mjs'
|
|
2
|
-
import dev from '../../dev/module.f.mjs'
|
|
1
|
+
import * as _ from './module.f.mjs'
|
|
2
|
+
import * as dev from '../../dev/module.f.mjs'
|
|
3
3
|
const { todo } = dev
|
|
4
|
-
import
|
|
5
|
-
import f from '../../types/function/module.f.mjs'
|
|
4
|
+
import * as json from '../../json/module.f.mjs'
|
|
5
|
+
import * as f from '../../types/function/module.f.mjs'
|
|
6
6
|
const { identity } = f
|
|
7
|
-
import
|
|
7
|
+
import * as object from '../../types/object/module.f.mjs'
|
|
8
8
|
const { at } = object
|
|
9
9
|
import * as Package from '../package/module.f.mjs'
|
|
10
10
|
|
|
11
|
-
/** @type {<T>(o:
|
|
11
|
+
/** @type {<T>(o: object.Map<T>) => (s: string) => T|null} */
|
|
12
12
|
const i = o => s => at(s)(o)
|
|
13
13
|
|
|
14
|
-
/** @type {(g:
|
|
14
|
+
/** @type {(g: json.Unknown) => string} */
|
|
15
15
|
const stringify = json.stringify(identity)
|
|
16
16
|
|
|
17
17
|
export default {
|
|
@@ -70,7 +70,7 @@ export default {
|
|
|
70
70
|
},
|
|
71
71
|
},
|
|
72
72
|
9: () => {
|
|
73
|
-
/** @type {
|
|
73
|
+
/** @type {object.Map<Package.Package>} */
|
|
74
74
|
const packages = {
|
|
75
75
|
'': {
|
|
76
76
|
dependency: () => todo(),
|
|
@@ -81,7 +81,7 @@ export default {
|
|
|
81
81
|
if (result !== '{"id":{"package":"","path":["a","c"]},"source":"return \\"a/c\\""}') { throw result }
|
|
82
82
|
},
|
|
83
83
|
10: () => {
|
|
84
|
-
/** @type {
|
|
84
|
+
/** @type {object.Map<Package.Package>} */
|
|
85
85
|
const packages = {
|
|
86
86
|
'': {
|
|
87
87
|
dependency: x => {
|
|
@@ -131,7 +131,7 @@ export default {
|
|
|
131
131
|
}
|
|
132
132
|
},
|
|
133
133
|
11: () => {
|
|
134
|
-
/** @type {
|
|
134
|
+
/** @type {object.Map<Package.Package>} */
|
|
135
135
|
const packages = {
|
|
136
136
|
'': {
|
|
137
137
|
dependency: x => {
|
|
@@ -158,7 +158,7 @@ export default {
|
|
|
158
158
|
}
|
|
159
159
|
},
|
|
160
160
|
12: () => {
|
|
161
|
-
/** @type {
|
|
161
|
+
/** @type {object.Map<Package.Package>} */
|
|
162
162
|
const packages = {
|
|
163
163
|
'': {
|
|
164
164
|
dependency: x => {
|
package/commonjs/test.mjs
CHANGED
package/dev/module.f.mjs
CHANGED
package/dev/module.mjs
CHANGED
|
@@ -183,7 +183,7 @@ export const index = async () => {
|
|
|
183
183
|
const n = '/module.f.mjs'
|
|
184
184
|
const jsr_json = JSON.parse(await readFile(jj, { encoding: 'utf8' }))
|
|
185
185
|
const list = Object.keys(await loadModuleMap()).filter(v => v.endsWith(n))
|
|
186
|
-
const exportsA = list.map(v => [v.replace(n, ''), v])
|
|
186
|
+
const exportsA = list.filter(v => !v.startsWith('./out')).map(v => [v.replace(n, ''), `./out/${v}`])
|
|
187
187
|
const exports = Object.fromEntries(exportsA)
|
|
188
188
|
await writeFile(
|
|
189
189
|
jj,
|
package/dev/test/module.f.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// @ts-self-types="./module.f.d.mts"
|
|
2
|
-
import list from '../../types/list/module.f.mjs'
|
|
2
|
+
import * as list from '../../types/list/module.f.mjs'
|
|
3
3
|
const { fold } = list
|
|
4
|
-
import sgr from '../../text/sgr/module.f.mjs'
|
|
5
|
-
const { reset, fgGreen, fgRed, bold } = sgr
|
|
4
|
+
import * as sgr from '../../text/sgr/module.f.mjs'
|
|
5
|
+
const { reset, fgGreen, fgRed, bold } = sgr.codes
|
|
6
6
|
import * as Result from '../../types/result/module.f.mjs'
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -80,7 +80,7 @@ const timeFormat = a => {
|
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
/** @type {<T>(input: Input<T>) => readonly[number, T]} */
|
|
83
|
-
|
|
83
|
+
export default input => {
|
|
84
84
|
let { moduleMap, log, error, measure, tryCatch, env, state } = input
|
|
85
85
|
const isGitHub = env('GITHUB_ACTION') !== void 0
|
|
86
86
|
/** @typedef {input extends Input<infer T> ? T : never} T */
|
|
@@ -146,5 +146,3 @@ const main = input => {
|
|
|
146
146
|
state = log(`${bold}Time: ${timeFormat(ts.time)}${reset}`)(state);
|
|
147
147
|
return [ts.fail !== 0 ? 1 : 0, state]
|
|
148
148
|
}
|
|
149
|
-
|
|
150
|
-
export default main
|
package/djs/module.f.mjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
// @ts-self-types="./module.f.d.mts"
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import * as list from '../types/list/module.f.mjs'
|
|
4
4
|
const { flat, map } = list
|
|
5
|
-
import string from '../types/string/module.f.mjs'
|
|
5
|
+
import * as string from '../types/string/module.f.mjs'
|
|
6
6
|
const { concat } = string
|
|
7
7
|
import * as O from '../types/object/module.f.mjs'
|
|
8
|
-
import f from '../types/function/module.f.mjs'
|
|
8
|
+
import * as f from '../types/function/module.f.mjs'
|
|
9
9
|
const { compose, fn } = f
|
|
10
10
|
const { entries } = Object
|
|
11
|
-
import bi from '../types/bigint/module.f.mjs'
|
|
11
|
+
import * as bi from '../types/bigint/module.f.mjs'
|
|
12
12
|
const { serialize: bigintSerialize } = bi
|
|
13
|
-
import j from '../json/serializer/module.f.mjs'
|
|
13
|
+
import * as j from '../json/serializer/module.f.mjs'
|
|
14
14
|
const { objectWrap, arrayWrap, stringSerialize, numberSerialize, nullSerialize, boolSerialize } = j
|
|
15
15
|
|
|
16
16
|
/**
|
|
@@ -27,26 +27,26 @@ const colon = [':']
|
|
|
27
27
|
|
|
28
28
|
/** @typedef {O.Entry<Unknown>} Entry*/
|
|
29
29
|
|
|
30
|
-
/** @typedef {(
|
|
30
|
+
/** @typedef {(list.List<Entry>)} Entries */
|
|
31
31
|
|
|
32
32
|
/** @typedef {(entries: Entries) => Entries} MapEntries */
|
|
33
33
|
|
|
34
|
-
/** @type {(mapEntries: MapEntries) => (value: Unknown) =>
|
|
35
|
-
const serialize = sort => {
|
|
36
|
-
/** @type {(kv: readonly[string, Unknown]) =>
|
|
34
|
+
/** @type {(mapEntries: MapEntries) => (value: Unknown) => list.List<string>} */
|
|
35
|
+
export const serialize = sort => {
|
|
36
|
+
/** @type {(kv: readonly[string, Unknown]) => list.List<string>} */
|
|
37
37
|
const propertySerialize = ([k, v]) => flat([
|
|
38
38
|
stringSerialize(k),
|
|
39
39
|
colon,
|
|
40
40
|
f(v)
|
|
41
41
|
])
|
|
42
42
|
const mapPropertySerialize = map(propertySerialize)
|
|
43
|
-
/** @type {(object: Object) =>
|
|
43
|
+
/** @type {(object: Object) => list.List<string>} */
|
|
44
44
|
const objectSerialize = fn(entries)
|
|
45
45
|
.then(sort)
|
|
46
46
|
.then(mapPropertySerialize)
|
|
47
47
|
.then(objectWrap)
|
|
48
48
|
.result
|
|
49
|
-
/** @type {(value: Unknown) =>
|
|
49
|
+
/** @type {(value: Unknown) => list.List<string>} */
|
|
50
50
|
const f = value => {
|
|
51
51
|
switch (typeof value) {
|
|
52
52
|
case 'boolean': { return boolSerialize(value) }
|
|
@@ -70,11 +70,4 @@ const serialize = sort => {
|
|
|
70
70
|
*
|
|
71
71
|
* @type {(mapEntries: MapEntries) => (value: Unknown) => string}
|
|
72
72
|
*/
|
|
73
|
-
const stringify = sort => compose(serialize(sort))(concat)
|
|
74
|
-
|
|
75
|
-
export default {
|
|
76
|
-
/** @readonly */
|
|
77
|
-
stringify,
|
|
78
|
-
/** @readonly */
|
|
79
|
-
serialize,
|
|
80
|
-
}
|
|
73
|
+
export const stringify = sort => compose(serialize(sort))(concat)
|
package/djs/parser/module.f.mjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// @ts-self-types="./module.f.d.mts"
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import
|
|
3
|
+
import * as result from '../../types/result/module.f.mjs'
|
|
4
|
+
import * as list from '../../types/list/module.f.mjs'
|
|
5
5
|
const { fold, first, drop, toArray, map: listMap, length } = list
|
|
6
6
|
import * as Operator from '../../types/function/operator/module.f.mjs'
|
|
7
7
|
import * as tokenizerT from '../tokenizer/module.f.mjs'
|
|
8
|
-
import
|
|
8
|
+
import * as map from '../../types/map/module.f.mjs'
|
|
9
9
|
const { setReplace, at } = map
|
|
10
|
-
import
|
|
10
|
+
import * as o from '../../types/object/module.f.mjs'
|
|
11
11
|
const { fromMap } = o
|
|
12
12
|
|
|
13
13
|
/** @typedef {[readonly string[], readonly DjsConst[]] } DjsModule */
|
|
@@ -24,9 +24,9 @@ const { fromMap } = o
|
|
|
24
24
|
* }} DjsObject
|
|
25
25
|
*/
|
|
26
26
|
|
|
27
|
-
/** @typedef {['array',
|
|
27
|
+
/** @typedef {['array', list.List<DjsConst>]} DjsStackArray */
|
|
28
28
|
|
|
29
|
-
/** @typedef {['object',
|
|
29
|
+
/** @typedef {['object', map.Map<DjsConst>, string]} DjsStackObject */
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
/**
|
|
@@ -36,15 +36,15 @@ const { fromMap } = o
|
|
|
36
36
|
* } DjsStackElement
|
|
37
37
|
*/
|
|
38
38
|
|
|
39
|
-
/** @typedef {
|
|
39
|
+
/** @typedef {list.List<DjsStackElement>} DjsStack */
|
|
40
40
|
|
|
41
41
|
/** @typedef {InitialState | NewLineRequiredState | ImportState | ConstState | ExportState | ParseValueState | ResultState | ErrorState} ParserState */
|
|
42
42
|
|
|
43
43
|
/**
|
|
44
44
|
* @typedef {{
|
|
45
|
-
* readonly refs:
|
|
46
|
-
* readonly modules:
|
|
47
|
-
* readonly consts:
|
|
45
|
+
* readonly refs: map.Map<DjsModuleRef>
|
|
46
|
+
* readonly modules: list.List<string>
|
|
47
|
+
* readonly consts: list.List<DjsConst>
|
|
48
48
|
* }} ModuleState
|
|
49
49
|
*/
|
|
50
50
|
|
|
@@ -153,7 +153,7 @@ const parseConstOp = token => state => {
|
|
|
153
153
|
case 'nl': return state
|
|
154
154
|
case 'id': {
|
|
155
155
|
if (map.at(token.value)(state.module.refs) !== null)
|
|
156
|
-
return { state: 'error', message: 'duplicate id' }
|
|
156
|
+
return { state: 'error', message: 'duplicate id' }
|
|
157
157
|
/** @type {DjsModuleRef} */
|
|
158
158
|
let cref = ['cref', length(state.module.consts)]
|
|
159
159
|
let refs = map.setReplace(token.value)(cref)(state.module.refs)
|
|
@@ -232,7 +232,7 @@ const pushKey = state => key => {
|
|
|
232
232
|
|
|
233
233
|
/** @type {(state: ParseValueState) => (value: DjsConst) => ParserState} */
|
|
234
234
|
const pushValue = state => value => {
|
|
235
|
-
if (state.top === null) {
|
|
235
|
+
if (state.top === null) {
|
|
236
236
|
let consts = list.concat(state.module.consts)([value])
|
|
237
237
|
switch(state.state)
|
|
238
238
|
{
|
|
@@ -262,7 +262,7 @@ const startArray = state => {
|
|
|
262
262
|
const endArray = state => {
|
|
263
263
|
const top = state.top;
|
|
264
264
|
/** @type {ParseValueState} */
|
|
265
|
-
const newState = { ... state, valueState: '', top: first(null)(state.stack), stack: drop(1)(state.stack) }
|
|
265
|
+
const newState = { ... state, valueState: '', top: first(null)(state.stack), stack: drop(1)(state.stack) }
|
|
266
266
|
if (top !== null && top[0] === 'array')
|
|
267
267
|
{
|
|
268
268
|
/** @type {DjsArray} */
|
|
@@ -391,13 +391,13 @@ const foldOp = token => state => {
|
|
|
391
391
|
case 'import+from': return parseImportFromOp(token)(state)
|
|
392
392
|
case 'const': return parseConstOp(token)(state)
|
|
393
393
|
case 'const+name': return parseConstNameOp(token)(state)
|
|
394
|
-
case 'export': return parseExportOp(token)(state)
|
|
394
|
+
case 'export': return parseExportOp(token)(state)
|
|
395
395
|
case 'result': return { state: 'error', message: 'unexpected token' }
|
|
396
396
|
case 'error': return { state: 'error', message: state.message }
|
|
397
397
|
case 'constValue':
|
|
398
|
-
case 'exportValue':
|
|
398
|
+
case 'exportValue':
|
|
399
399
|
{
|
|
400
|
-
switch (state.valueState)
|
|
400
|
+
switch (state.valueState)
|
|
401
401
|
{
|
|
402
402
|
case '': return parseValueOp(token)(state)
|
|
403
403
|
case '[': return parseArrayStartOp(token)(state)
|
|
@@ -413,8 +413,8 @@ const foldOp = token => state => {
|
|
|
413
413
|
}
|
|
414
414
|
}
|
|
415
415
|
|
|
416
|
-
/** @type {(tokenList:
|
|
417
|
-
const parse = tokenList => {
|
|
416
|
+
/** @type {(tokenList: list.List<tokenizerT.DjsToken>) => result.Result<DjsModule, string>} */
|
|
417
|
+
export const parse = tokenList => {
|
|
418
418
|
const state = fold(foldOp)({ state: '', module: { refs: null, modules: null, consts: null }})(tokenList)
|
|
419
419
|
switch (state.state) {
|
|
420
420
|
case 'result': return result.ok([ toArray(state.module.modules), toArray(state.module.consts) ])
|
|
@@ -422,9 +422,3 @@ const parse = tokenList => {
|
|
|
422
422
|
default: return result.error('unexpected end')
|
|
423
423
|
}
|
|
424
424
|
}
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
export default {
|
|
428
|
-
/** @readonly */
|
|
429
|
-
parse
|
|
430
|
-
}
|
package/djs/parser/test.f.mjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import parser from './module.f.mjs'
|
|
2
|
-
import
|
|
3
|
-
import list from '../../types/list/module.f.mjs'
|
|
1
|
+
import * as parser from './module.f.mjs'
|
|
2
|
+
import * as tokenizer from '../tokenizer/module.f.mjs'
|
|
3
|
+
import * as list from '../../types/list/module.f.mjs'
|
|
4
4
|
const { toArray } = list
|
|
5
|
-
import djs from '../module.f.mjs'
|
|
6
|
-
import o from '../../types/object/module.f.mjs'
|
|
5
|
+
import * as djs from '../module.f.mjs'
|
|
6
|
+
import * as o from '../../types/object/module.f.mjs'
|
|
7
7
|
const { sort } = o
|
|
8
|
-
import encoding from '../../text/utf16/module.f.mjs'
|
|
8
|
+
import * as encoding from '../../text/utf16/module.f.mjs'
|
|
9
9
|
|
|
10
|
-
/** @type {(s: string) => readonly
|
|
10
|
+
/** @type {(s: string) => readonly tokenizer.DjsToken[]} */
|
|
11
11
|
const tokenizeString = s => toArray(tokenizer.tokenize(encoding.stringToList(s)))
|
|
12
12
|
|
|
13
13
|
const stringify = djs.stringify(sort)
|
|
@@ -72,7 +72,7 @@ export default {
|
|
|
72
72
|
const tokenList = tokenizeString('export default [0,[1,[2,[]]],3]')
|
|
73
73
|
const obj = parser.parse(tokenList)
|
|
74
74
|
const result = stringify(obj)
|
|
75
|
-
if (result !== '["ok",[[],[["array",[0,["array",[1,["array",[2,["array",[]]]]]],3]]]]]') { throw result }
|
|
75
|
+
if (result !== '["ok",[[],[["array",[0,["array",[1,["array",[2,["array",[]]]]]],3]]]]]') { throw result }
|
|
76
76
|
},
|
|
77
77
|
() => {
|
|
78
78
|
const tokenList = tokenizeString('export default {}')
|
|
@@ -395,7 +395,7 @@ export default {
|
|
|
395
395
|
const obj = parser.parse(tokenList)
|
|
396
396
|
const result = stringify(obj)
|
|
397
397
|
if (result !== '["error","unexpected token"]') { throw result }
|
|
398
|
-
},
|
|
398
|
+
},
|
|
399
399
|
() => {
|
|
400
400
|
const tokenList = tokenizeString('import a from "first/test.f.mjs" \n import a from "second/test.f.mjs" \n export default [b, a, b]')
|
|
401
401
|
const obj = parser.parse(tokenList)
|
package/djs/test.f.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import json from '../json/module.f.mjs'
|
|
2
|
-
import list from '../types/object/module.f.mjs'
|
|
1
|
+
import * as json from '../json/module.f.mjs'
|
|
2
|
+
import * as list from '../types/object/module.f.mjs'
|
|
3
3
|
const { sort } = list
|
|
4
|
-
import f from '../types/function/module.f.mjs'
|
|
4
|
+
import * as f from '../types/function/module.f.mjs'
|
|
5
5
|
const { identity } = f
|
|
6
|
-
import djs from './module.f.mjs'
|
|
6
|
+
import * as djs from './module.f.mjs'
|
|
7
7
|
|
|
8
8
|
export default {
|
|
9
9
|
stringify: [
|