functionalscript 0.3.4 → 0.3.6
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.d.ts +10 -0
- package/com/cpp/module.f.js +107 -0
- package/com/cpp/test.f.d.ts +2 -0
- package/com/cpp/{test.f.ts → test.f.js} +9 -11
- package/com/cpp/testlib.f.d.ts +2 -0
- package/com/cpp/testlib.f.js +5 -0
- package/com/cs/module.f.d.ts +12 -0
- package/com/cs/module.f.js +80 -0
- package/com/cs/test.f.d.ts +2 -0
- package/com/cs/{test.f.ts → test.f.js} +9 -11
- package/com/cs/testlib.f.d.ts +2 -0
- package/com/cs/testlib.f.js +5 -0
- package/com/rust/module.f.d.ts +15 -0
- package/com/rust/module.f.js +169 -0
- package/com/rust/test.f.d.ts +2 -0
- package/com/rust/{test.f.ts → test.f.js} +7 -7
- package/com/rust/testlib.f.d.ts +2 -0
- package/com/rust/testlib.f.js +5 -0
- package/com/test/build.f.d.ts +20 -0
- package/com/test/build.f.js +58 -0
- package/com/types/module.f.d.ts +28 -0
- package/com/types/module.f.js +8 -0
- package/com/types/testlib.f.d.ts +44 -0
- package/com/types/{testlib.f.ts → testlib.f.js} +2 -3
- package/commonjs/build/module.f.d.ts +6 -0
- package/commonjs/build/module.f.js +69 -0
- package/commonjs/build/test.f.d.ts +2 -0
- package/commonjs/build/test.f.js +96 -0
- package/commonjs/module/function/{module.f.ts → module.f.d.ts} +5 -10
- package/commonjs/module/function/module.f.js +4 -0
- package/commonjs/module/module.f.d.ts +18 -0
- package/commonjs/module/module.f.js +12 -0
- package/commonjs/module.f.d.ts +6 -0
- package/commonjs/module.f.js +1 -0
- package/commonjs/package/dependencies/module.f.d.ts +7 -0
- package/commonjs/package/dependencies/module.f.js +13 -0
- package/commonjs/package/dependencies/test.f.d.ts +2 -0
- package/commonjs/package/dependencies/test.f.js +15 -0
- package/commonjs/package/module.f.d.ts +17 -0
- package/commonjs/package/module.f.js +18 -0
- package/commonjs/package/test.f.d.ts +2 -0
- package/commonjs/package/test.f.js +27 -0
- package/commonjs/path/module.f.d.ts +24 -0
- package/commonjs/path/module.f.js +114 -0
- package/commonjs/path/test.f.d.ts +25 -0
- package/commonjs/path/{test.f.ts → test.f.js} +123 -89
- package/crypto/prime_field/module.f.d.ts +43 -0
- package/crypto/prime_field/module.f.js +78 -0
- package/crypto/prime_field/test.f.d.ts +13 -0
- package/crypto/prime_field/test.f.js +149 -0
- package/crypto/secp/module.f.d.ts +68 -0
- package/crypto/secp/module.f.js +127 -0
- package/crypto/secp/test.f.d.ts +5 -0
- package/crypto/secp/test.f.js +72 -0
- package/crypto/sha2/module.f.d.ts +13 -0
- package/crypto/sha2/module.f.js +145 -0
- package/crypto/sha2/test.f.d.ts +9 -0
- package/crypto/sha2/test.f.js +82 -0
- package/dev/module.f.d.ts +1 -0
- package/dev/module.f.js +1 -0
- package/dev/test/module.f.d.ts +20 -0
- package/dev/test/module.f.js +75 -0
- package/dev/test.f.d.ts +9 -0
- package/dev/{test.f.ts → test.f.js} +22 -24
- package/djs/module.f.d.ts +17 -0
- package/djs/module.f.js +63 -0
- package/djs/parser/module.f.d.ts +12 -0
- package/djs/parser/module.f.js +333 -0
- package/djs/parser/test.f.d.ts +12 -0
- package/djs/parser/test.f.js +717 -0
- package/djs/serializer/module.f.d.ts +9 -0
- package/djs/serializer/module.f.js +81 -0
- package/djs/test/input.f.d.ts +2 -0
- package/djs/test/input.f.js +4 -0
- package/djs/test/m.f.d.ts +2 -0
- package/djs/test/m.f.js +1 -0
- package/djs/test.f.d.ts +12 -0
- package/djs/test.f.js +84 -0
- package/djs/tokenizer/module.f.d.ts +8 -0
- package/djs/tokenizer/module.f.js +60 -0
- package/djs/tokenizer/test.f.d.ts +7 -0
- package/djs/tokenizer/test.f.js +529 -0
- package/fsc/module.f.d.ts +5 -0
- package/fsc/module.f.js +75 -0
- package/fsc/test.f.d.ts +4 -0
- package/fsc/test.f.js +19 -0
- package/fsm/module.f.d.ts +13 -0
- package/fsm/module.f.js +59 -0
- package/fsm/test.f.d.ts +5 -0
- package/fsm/test.f.js +137 -0
- package/html/module.f.d.ts +13 -0
- package/html/module.f.js +58 -0
- package/html/test.f.d.ts +9 -0
- package/html/test.f.js +42 -0
- package/issues/test.f.d.ts +16 -0
- package/issues/test.f.js +70 -0
- package/js/tokenizer/module.f.d.ts +86 -0
- package/js/tokenizer/module.f.js +503 -0
- package/js/tokenizer/test.f.d.ts +9 -0
- package/js/tokenizer/test.f.js +905 -0
- package/json/module.f.d.ts +20 -0
- package/json/module.f.js +68 -0
- package/json/parser/module.f.d.ts +5 -0
- package/json/parser/module.f.js +155 -0
- package/json/parser/test.f.d.ts +5 -0
- package/json/parser/test.f.js +328 -0
- package/json/serializer/module.f.d.ts +7 -0
- package/json/serializer/module.f.js +21 -0
- package/json/serializer/test.f.d.ts +8 -0
- package/json/serializer/test.f.js +87 -0
- package/json/test.f.d.ts +8 -0
- package/json/test.f.js +61 -0
- package/json/tokenizer/module.f.d.ts +8 -0
- package/json/tokenizer/module.f.js +52 -0
- package/json/tokenizer/test.f.d.ts +6 -0
- package/json/tokenizer/test.f.js +419 -0
- package/nanvm-lib/tests/test.f.d.ts +27 -0
- package/nanvm-lib/tests/test.f.js +84 -0
- package/nodejs/version/module.f.d.ts +11 -0
- package/nodejs/version/module.f.js +16 -0
- package/nodejs/version/test.f.d.ts +2 -0
- package/nodejs/version/{test.f.ts → test.f.js} +13 -22
- package/package.json +9 -5
- package/text/ascii/module.f.d.ts +129 -0
- package/text/ascii/module.f.js +148 -0
- package/text/ascii/test.f.d.ts +4 -0
- package/text/ascii/test.f.js +14 -0
- package/text/module.f.d.ts +8 -0
- package/text/module.f.js +10 -0
- package/text/sgr/module.f.d.ts +8 -0
- package/text/sgr/module.f.js +8 -0
- package/text/test.f.d.ts +2 -0
- package/text/test.f.js +18 -0
- package/text/utf16/module.f.d.ts +9 -0
- package/text/utf16/module.f.js +66 -0
- package/text/utf16/test.f.d.ts +6 -0
- package/text/utf16/test.f.js +144 -0
- package/text/utf8/module.f.d.ts +6 -0
- package/text/utf8/module.f.js +112 -0
- package/text/utf8/test.f.d.ts +6 -0
- package/text/utf8/test.f.js +175 -0
- package/types/array/module.f.d.ts +21 -0
- package/types/array/module.f.js +23 -0
- package/types/array/test.f.d.ts +10 -0
- package/types/array/test.f.js +116 -0
- package/types/bigfloat/module.f.d.ts +3 -0
- package/types/bigfloat/module.f.js +66 -0
- package/types/bigfloat/test.f.d.ts +6 -0
- package/types/bigfloat/test.f.js +349 -0
- package/types/bigint/module.f.d.ts +54 -0
- package/types/bigint/{module.f.ts → module.f.js} +42 -65
- package/types/bigint/test.f.d.ts +16 -0
- package/types/bigint/test.f.js +199 -0
- package/types/bit_vec/module.f.d.ts +134 -0
- package/types/bit_vec/{module.f.ts → module.f.js} +47 -65
- package/types/bit_vec/test.f.d.ts +22 -0
- package/types/bit_vec/test.f.js +210 -0
- package/types/btree/find/module.f.d.ts +20 -0
- package/types/btree/find/module.f.js +84 -0
- package/types/btree/find/test.f.d.ts +2 -0
- package/types/btree/find/test.f.js +152 -0
- package/types/btree/module.f.d.ts +4 -0
- package/types/btree/module.f.js +31 -0
- package/types/btree/remove/module.f.d.ts +4 -0
- package/types/btree/remove/module.f.js +174 -0
- package/types/btree/remove/test.f.d.ts +5 -0
- package/types/btree/remove/test.f.js +634 -0
- package/types/btree/set/module.f.d.ts +3 -0
- package/types/btree/set/module.f.js +103 -0
- package/types/btree/set/test.f.d.ts +2 -0
- package/types/btree/set/test.f.js +360 -0
- package/types/btree/test.f.d.ts +8 -0
- package/types/btree/test.f.js +75 -0
- package/types/btree/types/module.f.d.ts +11 -0
- package/types/btree/types/module.f.js +1 -0
- package/types/byte_set/module.f.d.ts +16 -0
- package/types/byte_set/module.f.js +28 -0
- package/types/byte_set/test.f.d.ts +12 -0
- package/types/byte_set/test.f.js +122 -0
- package/types/function/compare/module.f.d.ts +10 -0
- package/types/function/compare/module.f.js +7 -0
- package/types/function/compare/test.f.d.ts +2 -0
- package/types/function/compare/test.f.js +8 -0
- package/types/function/module.f.d.ts +28 -0
- package/types/function/module.f.js +19 -0
- package/types/function/operator/module.f.d.ts +20 -0
- package/types/function/operator/module.f.js +18 -0
- package/types/function/test.f.d.ts +2 -0
- package/types/function/test.f.js +12 -0
- package/types/list/module.f.d.ts +50 -0
- package/types/list/module.f.js +171 -0
- package/types/list/test.f.d.ts +22 -0
- package/types/list/test.f.js +395 -0
- package/types/map/module.f.d.ts +14 -0
- package/types/map/module.f.js +31 -0
- package/types/map/test.f.d.ts +5 -0
- package/types/map/test.f.js +114 -0
- package/types/nibble_set/module.f.d.ts +10 -0
- package/types/nibble_set/module.f.js +9 -0
- package/types/nibble_set/test.f.d.ts +12 -0
- package/types/nibble_set/test.f.js +90 -0
- package/types/nullable/module.f.d.ts +3 -0
- package/types/nullable/module.f.js +2 -0
- package/types/nullable/test.f.d.ts +2 -0
- package/types/nullable/test.f.js +12 -0
- package/types/number/module.f.d.ts +6 -0
- package/types/number/module.f.js +8 -0
- package/types/number/test.f.d.ts +11 -0
- package/types/number/test.f.js +124 -0
- package/types/object/module.f.d.ts +10 -0
- package/types/object/module.f.js +12 -0
- package/types/object/test.f.d.ts +5 -0
- package/types/object/test.f.js +17 -0
- package/types/range/module.f.d.ts +3 -0
- package/types/range/module.f.js +2 -0
- package/types/range/test.f.d.ts +2 -0
- package/types/range/test.f.js +18 -0
- package/types/range_map/module.f.d.ts +14 -0
- package/types/range_map/module.f.js +51 -0
- package/types/range_map/test.f.d.ts +6 -0
- package/types/range_map/test.f.js +176 -0
- package/types/result/module.f.d.ts +7 -0
- package/types/result/module.f.js +8 -0
- package/types/sorted_list/module.f.d.ts +16 -0
- package/types/sorted_list/module.f.js +56 -0
- package/types/sorted_list/test.f.d.ts +5 -0
- package/types/sorted_list/test.f.js +64 -0
- package/types/sorted_set/module.f.d.ts +7 -0
- package/types/sorted_set/module.f.js +14 -0
- package/types/sorted_set/test.f.d.ts +6 -0
- package/types/sorted_set/test.f.js +78 -0
- package/types/string/module.f.d.ts +6 -0
- package/types/string/module.f.js +11 -0
- package/types/string/test.f.d.ts +15 -0
- package/types/string/test.f.js +58 -0
- package/types/string_set/module.f.d.ts +9 -0
- package/types/string_set/module.f.js +22 -0
- package/types/string_set/test.f.d.ts +5 -0
- package/types/string_set/test.f.js +65 -0
- package/.github/FUNDING.yml +0 -12
- package/.github/dependabot.yml +0 -11
- package/.github/workflows/ci.yml +0 -88
- package/.github/workflows/npm-publish.yml +0 -53
- package/CHANGELOG.md +0 -29
- package/Cargo.lock +0 -18
- package/Cargo.toml +0 -7
- package/com/README.md +0 -3
- package/com/cpp/README.md +0 -80
- package/com/cpp/module.f.ts +0 -180
- package/com/cpp/nanocom.hpp +0 -195
- package/com/cpp/testlib.f.ts +0 -8
- package/com/cs/module.f.ts +0 -145
- package/com/cs/testlib.f.ts +0 -8
- package/com/proposals.md +0 -28
- package/com/rust/module.f.ts +0 -287
- package/com/rust/nanocom/Cargo.lock +0 -7
- package/com/rust/nanocom/Cargo.toml +0 -15
- package/com/rust/nanocom/README.md +0 -56
- package/com/rust/nanocom/src/class.rs +0 -6
- package/com/rust/nanocom/src/cobject.rs +0 -90
- package/com/rust/nanocom/src/guid.rs +0 -15
- package/com/rust/nanocom/src/hresult.rs +0 -7
- package/com/rust/nanocom/src/interface.rs +0 -9
- package/com/rust/nanocom/src/iunknown.rs +0 -13
- package/com/rust/nanocom/src/lib.rs +0 -20
- package/com/rust/nanocom/src/object.rs +0 -34
- package/com/rust/nanocom/src/ref.rs +0 -57
- package/com/rust/nanocom/src/vmt.rs +0 -7
- package/com/rust/nanocom/tests/it.rs +0 -186
- package/com/rust/nanocom/tests/itmod.rs +0 -195
- package/com/rust/testlib.f.ts +0 -8
- package/com/test/build.f.ts +0 -111
- package/com/test/build.ts +0 -45
- package/com/test/cpp/main.cpp +0 -74
- package/com/test/cs/Program.cs +0 -31
- package/com/test/cs/cs.csproj +0 -16
- package/com/test/rust/Cargo.toml +0 -12
- package/com/test/rust/src/lib.rs +0 -56
- package/com/types/module.f.ts +0 -62
- package/commonjs/README.md +0 -94
- package/commonjs/build/module.f.ts +0 -100
- package/commonjs/build/test.f.ts +0 -107
- package/commonjs/module/module.f.ts +0 -41
- package/commonjs/module.f.ts +0 -7
- package/commonjs/module.ts +0 -31
- package/commonjs/package/dependencies/module.f.ts +0 -22
- package/commonjs/package/dependencies/test.f.ts +0 -8
- package/commonjs/package/module.f.ts +0 -31
- package/commonjs/package/test.f.ts +0 -12
- package/commonjs/path/README.md +0 -17
- package/commonjs/path/module.f.ts +0 -171
- package/commonjs/test.ts +0 -64
- package/crypto/README.md +0 -3
- package/crypto/prime_field/module.f.ts +0 -114
- package/crypto/prime_field/test.f.ts +0 -95
- package/crypto/secp/module.f.ts +0 -182
- package/crypto/secp/test.f.ts +0 -68
- package/crypto/sha2/module.f.ts +0 -215
- package/crypto/sha2/test.f.ts +0 -83
- package/deno.json +0 -71
- package/dev/README.md +0 -8
- package/dev/index.ts +0 -3
- package/dev/module.f.ts +0 -1
- package/dev/module.ts +0 -195
- package/dev/test/module.f.ts +0 -135
- package/dev/test.ts +0 -53
- package/djs/README.md +0 -54
- package/djs/module.f.ts +0 -76
- package/djs/parser/module.f.ts +0 -509
- package/djs/parser/test.f.ts +0 -461
- package/djs/serializer/module.f.ts +0 -90
- package/djs/test.f.ts +0 -67
- package/djs/tokenizer/module.f.ts +0 -99
- package/djs/tokenizer/test.f.ts +0 -364
- package/doc/LANGUAGE.md +0 -255
- package/doc/README.md +0 -61
- package/doc/byte-code.md +0 -59
- package/doc/fa.md +0 -174
- package/doc/predefined.md +0 -143
- package/doc/proposals.md +0 -21
- package/doc/vm/README.md +0 -24
- package/doc/vm-rearchitecture.md +0 -129
- package/doc/vm.md +0 -150
- package/fsc/README.md +0 -111
- package/fsc/module.f.ts +0 -122
- package/fsc/test.f.ts +0 -21
- package/fsm/README.md +0 -113
- package/fsm/module.f.ts +0 -107
- package/fsm/test.f.ts +0 -139
- package/funding.json +0 -61
- package/html/README.md +0 -32
- package/html/module.f.ts +0 -109
- package/html/test.f.ts +0 -37
- package/issues/01-test-debug.md +0 -3
- package/issues/02-esm.md +0 -8
- package/issues/03-djs.md +0 -57
- package/issues/05-publish.md +0 -40
- package/issues/11-fs-load.md +0 -13
- package/issues/17-djs-extension.md +0 -6
- package/issues/README.md +0 -42
- package/issues/lang/1000-json.md +0 -50
- package/issues/lang/2110-default-export.md +0 -11
- package/issues/lang/2120-const.md +0 -14
- package/issues/lang/2130-default-import.md +0 -10
- package/issues/lang/2210-block-comment.md +0 -12
- package/issues/lang/2220-namespace-import.md +0 -25
- package/issues/lang/2310-undefined.md +0 -7
- package/issues/lang/2320-bigint.md +0 -7
- package/issues/lang/2330-property-accessor.md +0 -225
- package/issues/lang/2340-operators.md +0 -41
- package/issues/lang/2350-grouping.md +0 -11
- package/issues/lang/2360-built-in.md +0 -81
- package/issues/lang/2410-identifier-property.md +0 -9
- package/issues/lang/2420-line-comment.md +0 -10
- package/issues/lang/2430-trailing-comma.md +0 -13
- package/issues/lang/2440-shorthand.md +0 -8
- package/issues/lang/2450-destructuring.md +0 -12
- package/issues/lang/3110-function.md +0 -35
- package/issues/lang/3120-parameters.md +0 -9
- package/issues/lang/3130-body-const.md +0 -12
- package/issues/lang/3220-let.md +0 -11
- package/issues/lang/3240-export.md +0 -44
- package/issues/lang/3370-type-inference.md +0 -69
- package/issues/lang/3380-promise.md +0 -22
- package/issues/lang/3390-class.md +0 -3
- package/issues/lang/3410-expression.md +0 -12
- package/issues/lang/3420-one-parameter.md +0 -10
- package/issues/lang/3430-assignments.md +0 -23
- package/issues/lang/README.md +0 -193
- package/issues/test.f.ts +0 -58
- package/js/tokenizer/module.f.ts +0 -882
- package/js/tokenizer/test.f.ts +0 -617
- package/json/html/README.md +0 -49
- package/json/module.f.ts +0 -94
- package/json/parser/module.f.ts +0 -221
- package/json/parser/test.f.ts +0 -255
- package/json/serializer/module.f.ts +0 -74
- package/json/serializer/test.f.ts +0 -64
- package/json/test.f.ts +0 -48
- package/json/tokenizer/module.f.ts +0 -85
- package/json/tokenizer/test.f.ts +0 -290
- package/nanvm-lib/Cargo.toml +0 -6
- package/nanvm-lib/src/extension.rs +0 -130
- package/nanvm-lib/src/interface.rs +0 -133
- package/nanvm-lib/src/lib.rs +0 -7
- package/nanvm-lib/src/naive.rs +0 -236
- package/nanvm-lib/src/nanenum.rs +0 -236
- package/nanvm-lib/src/nullish.rs +0 -7
- package/nanvm-lib/src/sign.rs +0 -5
- package/nanvm-lib/src/simple.rs +0 -32
- package/nanvm-lib/tests/test.f.ts +0 -80
- package/nanvm-lib/tests/test.rs +0 -108
- package/nodejs/version/main.ts +0 -4
- package/nodejs/version/module.f.ts +0 -42
- package/text/README.md +0 -110
- package/text/ascii/module.f.ts +0 -219
- package/text/ascii/test.f.ts +0 -14
- package/text/module.f.ts +0 -30
- package/text/sgr/README.md +0 -3
- package/text/sgr/module.f.ts +0 -11
- package/text/test.f.ts +0 -19
- package/text/utf16/module.f.ts +0 -120
- package/text/utf16/test.f.ts +0 -107
- package/text/utf8/module.f.ts +0 -116
- package/text/utf8/test.f.ts +0 -125
- package/tsconfig.json +0 -104
- package/types/array/module.f.ts +0 -89
- package/types/array/test.f.ts +0 -88
- package/types/bigfloat/module.f.ts +0 -93
- package/types/bigfloat/test.f.ts +0 -218
- package/types/bigint/README.md +0 -35
- package/types/bigint/test.f.ts +0 -144
- package/types/bit_vec/README.md +0 -18
- package/types/bit_vec/test.f.ts +0 -129
- package/types/btree/README.md +0 -160
- package/types/btree/find/module.f.ts +0 -92
- package/types/btree/find/test.f.ts +0 -122
- package/types/btree/module.f.ts +0 -35
- package/types/btree/remove/module.f.ts +0 -151
- package/types/btree/remove/test.f.ts +0 -498
- package/types/btree/set/module.f.ts +0 -89
- package/types/btree/set/test.f.ts +0 -415
- package/types/btree/test.f.ts +0 -92
- package/types/btree/types/module.f.ts +0 -27
- package/types/byte_set/module.f.ts +0 -73
- package/types/byte_set/test.f.ts +0 -84
- package/types/function/compare/module.f.ts +0 -26
- package/types/function/compare/test.f.ts +0 -7
- package/types/function/module.f.ts +0 -43
- package/types/function/operator/module.f.ts +0 -65
- package/types/function/test.f.ts +0 -20
- package/types/list/module.f.ts +0 -350
- package/types/list/test.f.ts +0 -327
- package/types/map/module.f.ts +0 -65
- package/types/map/test.f.ts +0 -76
- package/types/nibble_set/module.f.ts +0 -34
- package/types/nibble_set/test.f.ts +0 -57
- package/types/nullable/module.f.ts +0 -9
- package/types/nullable/test.f.ts +0 -9
- package/types/number/module.f.ts +0 -20
- package/types/number/test.f.ts +0 -194
- package/types/object/module.f.ts +0 -30
- package/types/object/test.f.ts +0 -14
- package/types/range/module.f.ts +0 -10
- package/types/range/test.f.ts +0 -9
- package/types/range_map/module.f.ts +0 -70
- package/types/range_map/test.f.ts +0 -189
- package/types/result/module.f.ts +0 -20
- package/types/result/module.ts +0 -18
- package/types/sorted_list/module.f.ts +0 -83
- package/types/sorted_list/test.f.ts +0 -57
- package/types/sorted_set/module.f.ts +0 -36
- package/types/sorted_set/test.f.ts +0 -67
- package/types/string/module.f.ts +0 -26
- package/types/string/test.f.ts +0 -43
- package/types/string_set/module.f.ts +0 -37
- package/types/string_set/test.f.ts +0 -34
package/com/test/rust/src/lib.rs
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
mod _result;
|
|
2
|
-
|
|
3
|
-
use _result::IMy;
|
|
4
|
-
use nanocom::CObjectEx;
|
|
5
|
-
|
|
6
|
-
use crate::_result::IMy::ClassEx;
|
|
7
|
-
|
|
8
|
-
struct My {}
|
|
9
|
-
|
|
10
|
-
impl nanocom::Class for My {
|
|
11
|
-
type Interface = _result::IMy::Interface;
|
|
12
|
-
fn static_vmt() -> &'static _result::IMy::Vmt {
|
|
13
|
-
static VMT: _result::IMy::Vmt = My::VMT;
|
|
14
|
-
&VMT
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
impl _result::IMy::Ex for nanocom::CObject<My> {
|
|
19
|
-
fn GetSlice(&self) -> _result::Slice {
|
|
20
|
-
todo!()
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
fn SetSlice(&self, slice: _result::Slice) {
|
|
24
|
-
println!("SetSlice: {:?}, {:?}", slice.Start, slice.Size);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
fn GetUnsafe(&self) -> *const bool {
|
|
28
|
-
todo!()
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
fn SetUnsafe(&self, _p: *const _result::Slice, _size: u32) {
|
|
32
|
-
todo!()
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
fn Some(&self, _p: &_result::IMy::Object) -> bool {
|
|
36
|
-
todo!()
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
fn GetIMy(&self, _a: u16, _b: i16) -> _result::IMy::Ref {
|
|
40
|
-
todo!()
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
fn SetManagedStruct(&self, _a: _result::ManagedStruct) {
|
|
44
|
-
todo!()
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
#[no_mangle]
|
|
49
|
-
pub extern "C" fn get() -> i32 {
|
|
50
|
-
42
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
#[no_mangle]
|
|
54
|
-
pub extern "C" fn rust_my_create() -> IMy::Ref {
|
|
55
|
-
My {}.to_cobject()
|
|
56
|
-
}
|
package/com/types/module.f.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import * as O from '../../types/object/module.f.ts'
|
|
2
|
-
import * as list from '../../types/list/module.f.ts'
|
|
3
|
-
import * as f from '../../types/function/module.f.ts'
|
|
4
|
-
const { compose } = f
|
|
5
|
-
const { filter } = list
|
|
6
|
-
const { entries } = Object
|
|
7
|
-
|
|
8
|
-
export type Library = {readonly[k in string]: Definition}
|
|
9
|
-
|
|
10
|
-
export type Definition = Struct|Interface
|
|
11
|
-
|
|
12
|
-
export type Struct = {
|
|
13
|
-
readonly struct: FieldArray
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export type FieldArray = {readonly[k in string]: Type}
|
|
17
|
-
|
|
18
|
-
export type Field = O.Entry<Type>
|
|
19
|
-
|
|
20
|
-
export type Interface = {
|
|
21
|
-
readonly interface: MethodArray
|
|
22
|
-
readonly guid: string
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
type MethodArray = {readonly[k in string]: FieldArray}
|
|
26
|
-
|
|
27
|
-
export type Method = O.Entry<FieldArray>
|
|
28
|
-
|
|
29
|
-
export type Type = BaseType|Id|Pointer
|
|
30
|
-
|
|
31
|
-
type Id = readonly[string]
|
|
32
|
-
|
|
33
|
-
export type BaseType = |
|
|
34
|
-
'u8'|
|
|
35
|
-
'i8'|
|
|
36
|
-
'u16'|
|
|
37
|
-
'i16'|
|
|
38
|
-
'u32'|
|
|
39
|
-
'i32'|
|
|
40
|
-
'u64'|
|
|
41
|
-
'i64'|
|
|
42
|
-
'usize'|
|
|
43
|
-
'isize'|
|
|
44
|
-
'f32'|
|
|
45
|
-
'f64'|
|
|
46
|
-
'bool'
|
|
47
|
-
|
|
48
|
-
type Pointer = readonly['*', Type]
|
|
49
|
-
|
|
50
|
-
const isParam
|
|
51
|
-
: (kv: O.Entry<Type>) => boolean
|
|
52
|
-
= ([name]) => name !== '_'
|
|
53
|
-
|
|
54
|
-
const filterParam = filter(isParam)
|
|
55
|
-
|
|
56
|
-
export const paramList
|
|
57
|
-
: (fa: FieldArray) => list.List<Field>
|
|
58
|
-
= compose(entries)(filterParam)
|
|
59
|
-
|
|
60
|
-
export const result
|
|
61
|
-
: <T>(v: T) => (f: (type: Type) => T) => (fa: FieldArray) => T
|
|
62
|
-
= v => f => fa => '_' in fa ? f(fa._) : v
|
package/commonjs/README.md
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
# Common.js
|
|
2
|
-
|
|
3
|
-
## Package
|
|
4
|
-
|
|
5
|
-
[package/main.f.js](package/main.f.js)
|
|
6
|
-
|
|
7
|
-
```ts
|
|
8
|
-
// A dictionary of packages.
|
|
9
|
-
//
|
|
10
|
-
// A package contains a dictionary of dependencies and a dictionary of files.
|
|
11
|
-
//
|
|
12
|
-
// `packageId` examples:
|
|
13
|
-
// - Node.js:
|
|
14
|
-
// - normalized: `./node_modules/functionalscript`
|
|
15
|
-
// - fs modules:
|
|
16
|
-
// - normalized: `github:functionalscript/functionalscript:bf4f3ed9ad1d3c19ee7bea3e76000dec77d01b4f`
|
|
17
|
-
// - `localPackageId` examples:
|
|
18
|
-
// - `functionalscript`
|
|
19
|
-
|
|
20
|
-
type PackageGet = (packageId: string) => Package | null
|
|
21
|
-
|
|
22
|
-
// A local file id is
|
|
23
|
-
|
|
24
|
-
type Package = {
|
|
25
|
-
// returns a global package id.
|
|
26
|
-
readonly dependency: (localPackageId: string) => string | null
|
|
27
|
-
// returns source of the file.
|
|
28
|
-
readonly file: (localFileId: string) => string | null
|
|
29
|
-
}
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Module
|
|
33
|
-
|
|
34
|
-
[module/main.f.js](module/main.f.js)
|
|
35
|
-
|
|
36
|
-
```ts
|
|
37
|
-
// A module map is a dictionary of modules.
|
|
38
|
-
//
|
|
39
|
-
// A module is a compiled and initialized source file.
|
|
40
|
-
|
|
41
|
-
type ModuleGet = (moduleId: string) => ModuleState | null
|
|
42
|
-
|
|
43
|
-
type ModuleMapInterface<M> = {
|
|
44
|
-
readonly get: (moduleMap: M) => ModuleGet
|
|
45
|
-
readonly insert: (moduleMap: M) => (moduleId: string) => (moduleState: ModuleState) => M
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
type ModuleState = readonly['ok', Module] | readonly['error', ModuleError]
|
|
49
|
-
|
|
50
|
-
type Module = {
|
|
51
|
-
// Exports is a result of module initialization.
|
|
52
|
-
readonly exports: unknown
|
|
53
|
-
// A dictionary of required modules.
|
|
54
|
-
// For example, `require('functionalscript/types/list')` may produce the dictionary entry
|
|
55
|
-
// `['functionalscript/types/list', './node_modules/functionalscript/types/list/index.js']`
|
|
56
|
-
readonly requireMap: object.Map<string>
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
type ModuleError = 'file not found' | 'compile error' | 'runtime error' | 'circular reference'
|
|
60
|
-
|
|
61
|
-
// A module id is a global module id. It contains a package id and file id. For example
|
|
62
|
-
// - `./node_modules/functionalscript/types/list/index.js`
|
|
63
|
-
// - `github:functionalscript/functionalscript:bf4f3ed9ad1d3c19ee7bea3e76000dec77d01b4f/types/list/index.js`
|
|
64
|
-
|
|
65
|
-
type ModuleId = {
|
|
66
|
-
readonly packageId: string,
|
|
67
|
-
readonly path: readonly string[],
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
const moduleIdToString: (moduleId: ModuleId) => string;
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## Build
|
|
74
|
-
|
|
75
|
-
[build/index.js](build/index.js)
|
|
76
|
-
|
|
77
|
-
```ts
|
|
78
|
-
type BuildConfig<M> = {
|
|
79
|
-
readonly packageGet: PackageGet
|
|
80
|
-
readonly moduleMapInterface: ModuleMapInterface<M>
|
|
81
|
-
readonly moduleId: ModuleId
|
|
82
|
-
readonly moduleMap: M // mutable
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
type BuildState<M> = {
|
|
86
|
-
readonly packageGet: PackageGet
|
|
87
|
-
readonly moduleMapInterface: ModuleMapInterface<M>
|
|
88
|
-
readonly moduleId: ModuleId
|
|
89
|
-
readonly moduleMap: M // mutable
|
|
90
|
-
readonly ModuleRequireMap: map.Map<string> // mutable
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
const getOrBuild: <M>(buildConfig: BuildConfig<M>) => readonly[ModuleState, M];
|
|
94
|
-
```
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import * as package_ from '../package/module.f.ts'
|
|
2
|
-
import * as module from '../module/module.f.ts'
|
|
3
|
-
const { idToString, dir } = module
|
|
4
|
-
import * as function_ from '../module/function/module.f.ts'
|
|
5
|
-
import * as map from '../../types/map/module.f.ts'
|
|
6
|
-
const { empty: mapEmpty, setReplace } = map
|
|
7
|
-
import * as object from '../../types/object/module.f.ts'
|
|
8
|
-
const { fromMap } = object
|
|
9
|
-
import * as path from '../path/module.f.ts'
|
|
10
|
-
const { parseAndFind } = path
|
|
11
|
-
import * as stringSet from '../../types/string_set/module.f.ts'
|
|
12
|
-
const { set: setSet, contains: setContains, empty: stringSetEmpty } = stringSet
|
|
13
|
-
|
|
14
|
-
type Config<M> = {
|
|
15
|
-
readonly packageGet: package_.Get
|
|
16
|
-
readonly moduleMapInterface: module.MapInterface<M>
|
|
17
|
-
readonly moduleId: module.Id
|
|
18
|
-
readonly moduleMap: M
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
type Result<M> = readonly[module.State, M]
|
|
22
|
-
|
|
23
|
-
const notFound
|
|
24
|
-
: <M>(moduleMap: M) => Result<M>
|
|
25
|
-
= moduleMap => [['error', ['file not found']], moduleMap]
|
|
26
|
-
|
|
27
|
-
export const getOrBuild
|
|
28
|
-
: (compile: function_.Compile) =>
|
|
29
|
-
(packageGet: package_.Get) =>
|
|
30
|
-
<M>(moduleMapInterface: module.MapInterface<M>) =>
|
|
31
|
-
(moduleId: module.Id) =>
|
|
32
|
-
(moduleMap: M) =>
|
|
33
|
-
Result<M>
|
|
34
|
-
= compile => packageGet => moduleMapInterface => {
|
|
35
|
-
|
|
36
|
-
type M = typeof moduleMapInterface extends module.MapInterface<infer M> ? M : never
|
|
37
|
-
|
|
38
|
-
const build
|
|
39
|
-
: (buildSet: stringSet.StringSet) =>
|
|
40
|
-
(moduleId: module.Id) =>
|
|
41
|
-
(source: string) =>
|
|
42
|
-
(moduleMap: M) =>
|
|
43
|
-
Result<M>
|
|
44
|
-
= buildSet => moduleId => {
|
|
45
|
-
|
|
46
|
-
const moduleIdStr = idToString(moduleId)
|
|
47
|
-
const buildSet1 = setSet(moduleIdStr)(buildSet)
|
|
48
|
-
const moduleDir = dir(moduleId)
|
|
49
|
-
const require_
|
|
50
|
-
: function_.Require<readonly[map.Map<string>, M]>
|
|
51
|
-
= p => ([requireMap, m]) => {
|
|
52
|
-
const error
|
|
53
|
-
: (e: unknown) => function_.Result<readonly[map.Map<string>, M]>
|
|
54
|
-
= e => [['error', e], [requireMap, m]]
|
|
55
|
-
if (moduleDir === null) { return error('file not found') }
|
|
56
|
-
const r = parseAndFind(packageGet)(moduleDir)(p)
|
|
57
|
-
if (r === null) { return error('file not found') }
|
|
58
|
-
const rIdStr = idToString(r.id)
|
|
59
|
-
if (setContains(rIdStr)(buildSet1)) { return error('circular reference') }
|
|
60
|
-
const [state, m1] = build(buildSet1)(r.id)(r.source)(m)
|
|
61
|
-
return [state[0] === 'error' ? state : ['ok', state[1].exports], [setReplace(p)(rIdStr)(requireMap), m1]]
|
|
62
|
-
}
|
|
63
|
-
return source => moduleMap => {
|
|
64
|
-
const set
|
|
65
|
-
: (s: module.State) => (m: M) => Result<M>
|
|
66
|
-
= s => m => [s, moduleMapInterface.setReplace(moduleIdStr)(s)(m)]
|
|
67
|
-
const error
|
|
68
|
-
: (e: module.Error) => (m: M) => Result<M>
|
|
69
|
-
= e => set(['error', e])
|
|
70
|
-
// check compilation
|
|
71
|
-
const [kind, result] = compile(source)
|
|
72
|
-
if (kind === 'error') { return error(['compilation error', result])(moduleMap) }
|
|
73
|
-
// build
|
|
74
|
-
const [[state, value], [requireMap, moduleMap2]] = result(require_)([mapEmpty, moduleMap])
|
|
75
|
-
const x = state === 'error' ?
|
|
76
|
-
error(['runtime error', value]) :
|
|
77
|
-
set(['ok', { exports: value, requireMap: fromMap(requireMap) }])
|
|
78
|
-
return x(moduleMap2)
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
const f
|
|
83
|
-
: (moduleId: module.Id) => (moduleMap: M) => Result<M>
|
|
84
|
-
= moduleId => moduleMap => {
|
|
85
|
-
|
|
86
|
-
const moduleIdStr = idToString(moduleId)
|
|
87
|
-
// check moduleMap
|
|
88
|
-
{
|
|
89
|
-
const m = moduleMapInterface.at(moduleIdStr)(moduleMap)
|
|
90
|
-
if (m !== null) { return [m, moduleMap] }
|
|
91
|
-
}
|
|
92
|
-
// check package
|
|
93
|
-
const p = packageGet(moduleId.package)
|
|
94
|
-
if (p === null) { return notFound(moduleMap) }
|
|
95
|
-
// check file
|
|
96
|
-
const source = p.file(moduleId.path.join('/'))
|
|
97
|
-
return (source === null ? notFound : build(stringSetEmpty)(moduleId)(source))(moduleMap)
|
|
98
|
-
}
|
|
99
|
-
return f
|
|
100
|
-
}
|
package/commonjs/build/test.f.ts
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import * as _ from './module.f.ts'
|
|
2
|
-
import * as map from '../../types/map/module.f.ts'
|
|
3
|
-
import * as Module from '../module/module.f.ts'
|
|
4
|
-
import * as ModuleFunction from '../module/function/module.f.ts'
|
|
5
|
-
import * as Result from '../../types/result/module.f.ts'
|
|
6
|
-
import * as Package from '../package/module.f.ts'
|
|
7
|
-
import * as o from '../../types/object/module.f.ts'
|
|
8
|
-
const { at } = o
|
|
9
|
-
|
|
10
|
-
const compileMap
|
|
11
|
-
: { readonly [k in string]?: Result.Result<ModuleFunction.Function_, unknown> }
|
|
12
|
-
= {
|
|
13
|
-
':index.js': [
|
|
14
|
-
'ok',
|
|
15
|
-
require_ => m0 => {
|
|
16
|
-
let [r, m] = require_('./b')(m0);
|
|
17
|
-
if (r[0] === 'error') { throw JSON.stringify(r) }
|
|
18
|
-
[r, m] = require_('./a/')(m);
|
|
19
|
-
if (r[0] === 'error') { throw JSON.stringify(r) }
|
|
20
|
-
[r, m] = require_('x/r')(m);
|
|
21
|
-
if (r[0] === 'error') { throw JSON.stringify(r) }
|
|
22
|
-
return [['ok', ':index.js'], m]
|
|
23
|
-
}],
|
|
24
|
-
':b.js': [
|
|
25
|
-
'ok',
|
|
26
|
-
() => m0 => [['ok', ':b.js'], m0]],
|
|
27
|
-
':a/index.js': [
|
|
28
|
-
'ok',
|
|
29
|
-
() => m0 => [['ok', ':a/index.js'], m0]],
|
|
30
|
-
'x:r.js': [
|
|
31
|
-
'ok',
|
|
32
|
-
() => m0 => [['ok', 'x:r.js'], m0]],
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const compile
|
|
36
|
-
: ModuleFunction.Compile
|
|
37
|
-
= source => compileMap[source] ?? ['error', 'invalid source']
|
|
38
|
-
|
|
39
|
-
type StringMap = { readonly [k in string]: string }
|
|
40
|
-
|
|
41
|
-
const packageMap
|
|
42
|
-
: { readonly [k in string]: { readonly dependencies: StringMap, readonly files: StringMap }}
|
|
43
|
-
= {
|
|
44
|
-
'': {
|
|
45
|
-
dependencies: {
|
|
46
|
-
'x': '/node_modules/x'
|
|
47
|
-
},
|
|
48
|
-
files: {
|
|
49
|
-
'index.js': ':index.js',
|
|
50
|
-
'b.js': ':b.js',
|
|
51
|
-
'a/index.js': ':a/index.js',
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
'/node_modules/x': {
|
|
55
|
-
dependencies: {},
|
|
56
|
-
files: {
|
|
57
|
-
'r.js': 'x:r.js'
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const packageGet
|
|
63
|
-
: Package.Get
|
|
64
|
-
= packageId => {
|
|
65
|
-
const p = at(packageId)(packageMap)
|
|
66
|
-
return p === null ? null :
|
|
67
|
-
{
|
|
68
|
-
dependency: dependency => at(dependency)(p.dependencies),
|
|
69
|
-
file: file => at(file)(p.files),
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
const getOrBuild = _.getOrBuild
|
|
74
|
-
(compile)
|
|
75
|
-
(packageGet)
|
|
76
|
-
(map as Module.MapInterface<map.Map<Module.State>>)
|
|
77
|
-
|
|
78
|
-
export default () => {
|
|
79
|
-
let [r, m] = getOrBuild({ package: '', path: ['index.js'] })(map.empty)
|
|
80
|
-
{
|
|
81
|
-
if (r === null) { throw 'r === null' }
|
|
82
|
-
const x = JSON.stringify(r)
|
|
83
|
-
if (x !==
|
|
84
|
-
'["ok",{"exports":":index.js","requireMap":{"./a/":"/a/index.js","./b":"/b.js","x/r":"/node_modules/x/r.js"}}]'
|
|
85
|
-
) {
|
|
86
|
-
throw `0:${x}`
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
{
|
|
90
|
-
[r, m] = getOrBuild({ package: '', path: ['b.js'] })(m)
|
|
91
|
-
const x = JSON.stringify(r)
|
|
92
|
-
if (x !==
|
|
93
|
-
'["ok",{"exports":":b.js","requireMap":{}}]'
|
|
94
|
-
) {
|
|
95
|
-
throw x
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
{
|
|
99
|
-
[r, m] = getOrBuild({ package: '', path: ['c.js'] })(m)
|
|
100
|
-
const x = JSON.stringify(r)
|
|
101
|
-
if (x !==
|
|
102
|
-
'["error",["file not found"]]'
|
|
103
|
-
) {
|
|
104
|
-
throw x
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import * as O from '../../types/object/module.f.ts'
|
|
2
|
-
|
|
3
|
-
export type MapInterface<M> = {
|
|
4
|
-
readonly at: (moduleId: string) => (moduleMap: M) => State | null
|
|
5
|
-
readonly setReplace: (moduleId: string) => (moduleState: State) => (moduleMap: M) => M
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export type State = |
|
|
9
|
-
readonly['ok', Module] |
|
|
10
|
-
readonly['error', Error]
|
|
11
|
-
|
|
12
|
-
type Module = {
|
|
13
|
-
readonly exports: unknown
|
|
14
|
-
readonly requireMap: O.Map<string>
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export type Error = |
|
|
18
|
-
['file not found'] |
|
|
19
|
-
['compilation error', unknown] |
|
|
20
|
-
['runtime error', unknown] |
|
|
21
|
-
['circular reference']
|
|
22
|
-
|
|
23
|
-
export type Id = {
|
|
24
|
-
readonly package: string
|
|
25
|
-
readonly path: readonly string[]
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export const dir
|
|
29
|
-
: (id: Id) => Id | null
|
|
30
|
-
= id => {
|
|
31
|
-
const len = id.path.length
|
|
32
|
-
if (len < 1) { return null }
|
|
33
|
-
return {
|
|
34
|
-
package: id.package,
|
|
35
|
-
path: id.path.slice(0, len - 1)
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export const idToString
|
|
40
|
-
: (id: Id) => string
|
|
41
|
-
= id => `${id.package}/${id.path.join('/')}`
|
package/commonjs/module.f.ts
DELETED
package/commonjs/module.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import unsafeResult from '../types/result/module.ts'
|
|
2
|
-
const { tryCatch } = unsafeResult
|
|
3
|
-
import * as result from '../types/result/module.f.ts'
|
|
4
|
-
const { unwrap } = result
|
|
5
|
-
import * as ModuleFunction from './module/function/module.f.ts'
|
|
6
|
-
|
|
7
|
-
const build
|
|
8
|
-
: (f: Function) => ModuleFunction.Function_
|
|
9
|
-
= f => immutableRequire => mutableData => {
|
|
10
|
-
const mutableRequire
|
|
11
|
-
: (path: string) => unknown
|
|
12
|
-
= path => {
|
|
13
|
-
const [result, data] = immutableRequire(path)(mutableData)
|
|
14
|
-
// Side effect: setting a variable from a nested function (closure)
|
|
15
|
-
// is not allowed in FunctionalScript.
|
|
16
|
-
mutableData = data
|
|
17
|
-
return unwrap(result)
|
|
18
|
-
}
|
|
19
|
-
const result = tryCatch(() => {
|
|
20
|
-
const mutableModule = { exports: {} }
|
|
21
|
-
f(mutableModule, mutableRequire)
|
|
22
|
-
return mutableModule.exports
|
|
23
|
-
})
|
|
24
|
-
return [result, mutableData]
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export const compile
|
|
28
|
-
: ModuleFunction.Compile
|
|
29
|
-
= source =>
|
|
30
|
-
// Side effect: a `Function` constructor is not allowed in FunctionalScript.
|
|
31
|
-
tryCatch(() => build(Function('module', 'require', `"use strict";${source}`)))
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import * as json from '../../../json/module.f.ts'
|
|
2
|
-
const { isObject } = json
|
|
3
|
-
import * as list from '../../../types/list/module.f.ts'
|
|
4
|
-
const { map, every } = list
|
|
5
|
-
const { entries } = Object
|
|
6
|
-
|
|
7
|
-
type DependencyJson = readonly[string, string]
|
|
8
|
-
|
|
9
|
-
type DependencyMapJson = {readonly[k in string]: string}
|
|
10
|
-
|
|
11
|
-
export type DependenciesJson = DependencyMapJson|null
|
|
12
|
-
|
|
13
|
-
const isDependencyJson
|
|
14
|
-
: (entry: json.Entry) => boolean
|
|
15
|
-
= ([, v]) => typeof v === 'string'
|
|
16
|
-
|
|
17
|
-
export const isDependenciesJson
|
|
18
|
-
= (j: json.Unknown): j is DependenciesJson => {
|
|
19
|
-
if (j === null) { return true }
|
|
20
|
-
if (!isObject(j)) { return false }
|
|
21
|
-
return every(map(isDependencyJson)(entries(j)))
|
|
22
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import * as _ from './module.f.ts'
|
|
2
|
-
|
|
3
|
-
export default () => {
|
|
4
|
-
if (!_.isDependenciesJson(null)) { throw 'error' }
|
|
5
|
-
if (!_.isDependenciesJson({})) { throw 'error' }
|
|
6
|
-
if (!_.isDependenciesJson({'a':'b'})) { throw 'error' }
|
|
7
|
-
if (_.isDependenciesJson({ 'a': 12 })) { throw 'error' }
|
|
8
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import * as json from '../../json/module.f.ts'
|
|
2
|
-
const { isObject } = json
|
|
3
|
-
import * as dependencies from './dependencies/module.f.ts'
|
|
4
|
-
const { isDependenciesJson } = dependencies
|
|
5
|
-
import * as o from '../../types/object/module.f.ts'
|
|
6
|
-
const { at } = o
|
|
7
|
-
|
|
8
|
-
type PackageJson = {
|
|
9
|
-
readonly name: string
|
|
10
|
-
readonly version: string
|
|
11
|
-
readonly dependencies?: dependencies.DependenciesJson
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export const isPackageJson
|
|
15
|
-
= (j: json.Unknown): j is PackageJson => {
|
|
16
|
-
if (!isObject(j)) { return false }
|
|
17
|
-
if (typeof j.name !== 'string') { return false }
|
|
18
|
-
if (typeof j.version !== 'string') { return false }
|
|
19
|
-
if (!isDependenciesJson(at('dependencies')(j))) { return false }
|
|
20
|
-
return true
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export type Package = {
|
|
24
|
-
readonly dependency: (localPackageId: string) => string | null
|
|
25
|
-
readonly file: (localFileId: string) => string | null
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* @note Current package has an empty string '' as a packageId.
|
|
30
|
-
*/
|
|
31
|
-
export type Get = (packageId: string) => Package | null
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import * as _ from './module.f.ts'
|
|
2
|
-
|
|
3
|
-
export default () => {
|
|
4
|
-
if (_.isPackageJson(null)) { throw 'error' }
|
|
5
|
-
if (_.isPackageJson({})) { throw 'error' }
|
|
6
|
-
if (_.isPackageJson({name:'x',version:12})) { throw 'error' }
|
|
7
|
-
if (!_.isPackageJson({name:'x',version:"12"})) { throw 'error' }
|
|
8
|
-
if (_.isPackageJson({version:"",dependencies:[]})) { throw 'error' }
|
|
9
|
-
if (!_.isPackageJson({name:'a', version: "", dependencies: {} })) { throw 'error' }
|
|
10
|
-
if (_.isPackageJson({name:'b', version: "", dependencies: { x: 12} })) { throw 'error' }
|
|
11
|
-
if (!_.isPackageJson({name:'c', version: "", dependencies: { x: "12" } })) { throw 'error' }
|
|
12
|
-
}
|
package/commonjs/path/README.md
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# Path
|
|
2
|
-
|
|
3
|
-
## Simplified Common.js
|
|
4
|
-
|
|
5
|
-
A path should be disambiguous.
|
|
6
|
-
|
|
7
|
-
Path limitations:
|
|
8
|
-
|
|
9
|
-
- Accepted file extensions: `.f.js`, `.json`.
|
|
10
|
-
- A file path should be fully specified. For example `../package/dependencies/test.f.js`.
|
|
11
|
-
- A package name can't contain `/`. For example
|
|
12
|
-
- `functionalscript/main.f.js` is allowed.
|
|
13
|
-
- `functionalscript/functionalscript/main.f.js` is not allowed.
|
|
14
|
-
|
|
15
|
-
`package.json` limitations:
|
|
16
|
-
|
|
17
|
-
- Only GitHub packages can be referenced. In the future, we may add generic Git repositories.
|