diff --git a/CHANGELOG.md b/CHANGELOG.md index 8abe41b5f6..ae0c324653 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,10 @@ - `rescript convert ` - Remove obsolete built-in project templates and the "rescript init" functionality. This will be replaced by the create-rescript-app project that is maintained separately. +#### :rocket: New Feature + +- Add extra variants for output filename suffixes in `bsconfig.json`: `.bs.mjs` and `.bs.cjs` are allowed https://github.com/rescript-lang/rescript-compiler/pull/5631 + # 10.1.0-alpha.2 #### :rocket: New Feature diff --git a/docs/docson/build-schema.json b/docs/docson/build-schema.json index eaca76b28f..dc163209f5 100644 --- a/docs/docson/build-schema.json +++ b/docs/docson/build-schema.json @@ -6,7 +6,7 @@ "description": "es6-global generate relative `require` paths instead of relying on NodeJS' module resolution. Default: commonjs." }, "suffix-spec": { - "enum": [".js", ".bs.js", ".mjs", ".cjs"], + "enum": [".js", ".mjs", ".cjs", ".bs.js", ".bs.mjs", ".bs.cjs"], "description": "suffix of generated js files, default to [.js] " }, "module-format-object": { diff --git a/jscomp/bsb/bsb_package_specs.ml b/jscomp/bsb/bsb_package_specs.ml index e9a180c6d9..eed738e2cc 100644 --- a/jscomp/bsb/bsb_package_specs.ml +++ b/jscomp/bsb/bsb_package_specs.ml @@ -188,7 +188,8 @@ let extract_bs_suffix_exn (map : json_map) : Ext_js_suffix.t = | Some (Str { str; loc }) -> let s = Ext_js_suffix.of_string str in if s = Unknown_extension then - Bsb_exception.errorf ~loc "expect .bs.js, .js, .cjs, .mjs here" + Bsb_exception.errorf ~loc + "expect .js, .mjs, .cjs or .bs.js, .bs.mjs, .bs.cjs here" else s | Some config -> Bsb_exception.config_error config diff --git a/jscomp/ext/ext_js_suffix.ml b/jscomp/ext/ext_js_suffix.ml index d11e2a9365..ab09d7ec79 100644 --- a/jscomp/ext/ext_js_suffix.ml +++ b/jscomp/ext/ext_js_suffix.ml @@ -1,17 +1,28 @@ -type t = Js | Bs_js | Mjs | Cjs | Unknown_extension +type t = + | Js + | Mjs + | Cjs + | Bs_js + | Bs_mjs + | Bs_cjs + | Unknown_extension let to_string (x : t) = match x with | Js -> Literals.suffix_js - | Bs_js -> Literals.suffix_bs_js | Mjs -> Literals.suffix_mjs | Cjs -> Literals.suffix_cjs + | Bs_js -> Literals.suffix_bs_js + | Bs_mjs -> Literals.suffix_bs_mjs + | Bs_cjs -> Literals.suffix_bs_cjs | Unknown_extension -> assert false let of_string (x : string) : t = match () with | () when x = Literals.suffix_js -> Js - | () when x = Literals.suffix_bs_js -> Bs_js | () when x = Literals.suffix_mjs -> Mjs | () when x = Literals.suffix_cjs -> Cjs + | () when x = Literals.suffix_bs_js -> Bs_js + | () when x = Literals.suffix_bs_mjs -> Bs_mjs + | () when x = Literals.suffix_bs_cjs -> Bs_cjs | _ -> Unknown_extension diff --git a/jscomp/ext/literals.ml b/jscomp/ext/literals.ml index 576016e450..85f85e0cde 100644 --- a/jscomp/ext/literals.ml +++ b/jscomp/ext/literals.ml @@ -123,8 +123,12 @@ let suffix_bs_js = ".bs.js" let suffix_mjs = ".mjs" +let suffix_bs_mjs = ".bs.mjs" + let suffix_cjs = ".cjs" +let suffix_bs_cjs = ".bs.cjs" + let suffix_gen_js = ".gen.js" let suffix_gen_tsx = ".gen.tsx" diff --git a/lib/4.06.1/bsb_helper.ml b/lib/4.06.1/bsb_helper.ml index bb10c421db..ed6e801359 100644 --- a/lib/4.06.1/bsb_helper.ml +++ b/lib/4.06.1/bsb_helper.ml @@ -1311,8 +1311,12 @@ let suffix_bs_js = ".bs.js" let suffix_mjs = ".mjs" +let suffix_bs_mjs = ".bs.mjs" + let suffix_cjs = ".cjs" +let suffix_bs_cjs = ".bs.cjs" + let suffix_gen_js = ".gen.js" let suffix_gen_tsx = ".gen.tsx" diff --git a/lib/4.06.1/rescript.ml b/lib/4.06.1/rescript.ml index c6973136e5..df3a112b63 100644 --- a/lib/4.06.1/rescript.ml +++ b/lib/4.06.1/rescript.ml @@ -5589,8 +5589,12 @@ let suffix_bs_js = ".bs.js" let suffix_mjs = ".mjs" +let suffix_bs_mjs = ".bs.mjs" + let suffix_cjs = ".cjs" +let suffix_bs_cjs = ".bs.cjs" + let suffix_gen_js = ".gen.js" let suffix_gen_tsx = ".gen.tsx" @@ -7094,22 +7098,33 @@ end module Ext_js_suffix = struct #1 "ext_js_suffix.ml" -type t = Js | Bs_js | Mjs | Cjs | Unknown_extension +type t = + | Js + | Mjs + | Cjs + | Bs_js + | Bs_mjs + | Bs_cjs + | Unknown_extension let to_string (x : t) = match x with | Js -> Literals.suffix_js - | Bs_js -> Literals.suffix_bs_js | Mjs -> Literals.suffix_mjs | Cjs -> Literals.suffix_cjs + | Bs_js -> Literals.suffix_bs_js + | Bs_mjs -> Literals.suffix_bs_mjs + | Bs_cjs -> Literals.suffix_bs_cjs | Unknown_extension -> assert false let of_string (x : string) : t = match () with | () when x = Literals.suffix_js -> Js - | () when x = Literals.suffix_bs_js -> Bs_js | () when x = Literals.suffix_mjs -> Mjs | () when x = Literals.suffix_cjs -> Cjs + | () when x = Literals.suffix_bs_js -> Bs_js + | () when x = Literals.suffix_bs_mjs -> Bs_mjs + | () when x = Literals.suffix_bs_cjs -> Bs_cjs | _ -> Unknown_extension end @@ -7849,7 +7864,8 @@ let extract_bs_suffix_exn (map : json_map) : Ext_js_suffix.t = | Some (Str { str; loc }) -> let s = Ext_js_suffix.of_string str in if s = Unknown_extension then - Bsb_exception.errorf ~loc "expect .bs.js, .js, .cjs, .mjs here" + Bsb_exception.errorf ~loc + "expect .js, .mjs, .cjs or .bs.js, .bs.mjs, .bs.cjs here" else s | Some config -> Bsb_exception.config_error config diff --git a/lib/4.06.1/unstable/all_ounit_tests.ml b/lib/4.06.1/unstable/all_ounit_tests.ml index 4b06aa4891..2524808d9f 100644 --- a/lib/4.06.1/unstable/all_ounit_tests.ml +++ b/lib/4.06.1/unstable/all_ounit_tests.ml @@ -5804,8 +5804,12 @@ let suffix_bs_js = ".bs.js" let suffix_mjs = ".mjs" +let suffix_bs_mjs = ".bs.mjs" + let suffix_cjs = ".cjs" +let suffix_bs_cjs = ".bs.cjs" + let suffix_gen_js = ".gen.js" let suffix_gen_tsx = ".gen.tsx" @@ -38344,22 +38348,33 @@ end module Ext_js_suffix = struct #1 "ext_js_suffix.ml" -type t = Js | Bs_js | Mjs | Cjs | Unknown_extension +type t = + | Js + | Mjs + | Cjs + | Bs_js + | Bs_mjs + | Bs_cjs + | Unknown_extension let to_string (x : t) = match x with | Js -> Literals.suffix_js - | Bs_js -> Literals.suffix_bs_js | Mjs -> Literals.suffix_mjs | Cjs -> Literals.suffix_cjs + | Bs_js -> Literals.suffix_bs_js + | Bs_mjs -> Literals.suffix_bs_mjs + | Bs_cjs -> Literals.suffix_bs_cjs | Unknown_extension -> assert false let of_string (x : string) : t = match () with | () when x = Literals.suffix_js -> Js - | () when x = Literals.suffix_bs_js -> Bs_js | () when x = Literals.suffix_mjs -> Mjs | () when x = Literals.suffix_cjs -> Cjs + | () when x = Literals.suffix_bs_js -> Bs_js + | () when x = Literals.suffix_bs_mjs -> Bs_mjs + | () when x = Literals.suffix_bs_cjs -> Bs_cjs | _ -> Unknown_extension end diff --git a/lib/4.06.1/unstable/js_compiler.ml b/lib/4.06.1/unstable/js_compiler.ml index bc691bc4ba..eccc9aa6ff 100644 --- a/lib/4.06.1/unstable/js_compiler.ml +++ b/lib/4.06.1/unstable/js_compiler.ml @@ -6500,8 +6500,12 @@ let suffix_bs_js = ".bs.js" let suffix_mjs = ".mjs" +let suffix_bs_mjs = ".bs.mjs" + let suffix_cjs = ".cjs" +let suffix_bs_cjs = ".bs.cjs" + let suffix_gen_js = ".gen.js" let suffix_gen_tsx = ".gen.tsx" @@ -46750,22 +46754,33 @@ end module Ext_js_suffix = struct #1 "ext_js_suffix.ml" -type t = Js | Bs_js | Mjs | Cjs | Unknown_extension +type t = + | Js + | Mjs + | Cjs + | Bs_js + | Bs_mjs + | Bs_cjs + | Unknown_extension let to_string (x : t) = match x with | Js -> Literals.suffix_js - | Bs_js -> Literals.suffix_bs_js | Mjs -> Literals.suffix_mjs | Cjs -> Literals.suffix_cjs + | Bs_js -> Literals.suffix_bs_js + | Bs_mjs -> Literals.suffix_bs_mjs + | Bs_cjs -> Literals.suffix_bs_cjs | Unknown_extension -> assert false let of_string (x : string) : t = match () with | () when x = Literals.suffix_js -> Js - | () when x = Literals.suffix_bs_js -> Bs_js | () when x = Literals.suffix_mjs -> Mjs | () when x = Literals.suffix_cjs -> Cjs + | () when x = Literals.suffix_bs_js -> Bs_js + | () when x = Literals.suffix_bs_mjs -> Bs_mjs + | () when x = Literals.suffix_bs_cjs -> Bs_cjs | _ -> Unknown_extension end diff --git a/lib/4.06.1/unstable/js_playground_compiler.ml b/lib/4.06.1/unstable/js_playground_compiler.ml index 1126b5794f..7c3b9bdcdb 100644 --- a/lib/4.06.1/unstable/js_playground_compiler.ml +++ b/lib/4.06.1/unstable/js_playground_compiler.ml @@ -6500,8 +6500,12 @@ let suffix_bs_js = ".bs.js" let suffix_mjs = ".mjs" +let suffix_bs_mjs = ".bs.mjs" + let suffix_cjs = ".cjs" +let suffix_bs_cjs = ".bs.cjs" + let suffix_gen_js = ".gen.js" let suffix_gen_tsx = ".gen.tsx" @@ -46750,22 +46754,33 @@ end module Ext_js_suffix = struct #1 "ext_js_suffix.ml" -type t = Js | Bs_js | Mjs | Cjs | Unknown_extension +type t = + | Js + | Mjs + | Cjs + | Bs_js + | Bs_mjs + | Bs_cjs + | Unknown_extension let to_string (x : t) = match x with | Js -> Literals.suffix_js - | Bs_js -> Literals.suffix_bs_js | Mjs -> Literals.suffix_mjs | Cjs -> Literals.suffix_cjs + | Bs_js -> Literals.suffix_bs_js + | Bs_mjs -> Literals.suffix_bs_mjs + | Bs_cjs -> Literals.suffix_bs_cjs | Unknown_extension -> assert false let of_string (x : string) : t = match () with | () when x = Literals.suffix_js -> Js - | () when x = Literals.suffix_bs_js -> Bs_js | () when x = Literals.suffix_mjs -> Mjs | () when x = Literals.suffix_cjs -> Cjs + | () when x = Literals.suffix_bs_js -> Bs_js + | () when x = Literals.suffix_bs_mjs -> Bs_mjs + | () when x = Literals.suffix_bs_cjs -> Bs_cjs | _ -> Unknown_extension end diff --git a/lib/4.06.1/whole_compiler.ml b/lib/4.06.1/whole_compiler.ml index efaaff440e..5ecb520959 100644 --- a/lib/4.06.1/whole_compiler.ml +++ b/lib/4.06.1/whole_compiler.ml @@ -180965,8 +180965,12 @@ let suffix_bs_js = ".bs.js" let suffix_mjs = ".mjs" +let suffix_bs_mjs = ".bs.mjs" + let suffix_cjs = ".cjs" +let suffix_bs_cjs = ".bs.cjs" + let suffix_gen_js = ".gen.js" let suffix_gen_tsx = ".gen.tsx" @@ -222827,22 +222831,33 @@ end module Ext_js_suffix = struct #1 "ext_js_suffix.ml" -type t = Js | Bs_js | Mjs | Cjs | Unknown_extension +type t = + | Js + | Mjs + | Cjs + | Bs_js + | Bs_mjs + | Bs_cjs + | Unknown_extension let to_string (x : t) = match x with | Js -> Literals.suffix_js - | Bs_js -> Literals.suffix_bs_js | Mjs -> Literals.suffix_mjs | Cjs -> Literals.suffix_cjs + | Bs_js -> Literals.suffix_bs_js + | Bs_mjs -> Literals.suffix_bs_mjs + | Bs_cjs -> Literals.suffix_bs_cjs | Unknown_extension -> assert false let of_string (x : string) : t = match () with | () when x = Literals.suffix_js -> Js - | () when x = Literals.suffix_bs_js -> Bs_js | () when x = Literals.suffix_mjs -> Mjs | () when x = Literals.suffix_cjs -> Cjs + | () when x = Literals.suffix_bs_js -> Bs_js + | () when x = Literals.suffix_bs_mjs -> Bs_mjs + | () when x = Literals.suffix_bs_cjs -> Bs_cjs | _ -> Unknown_extension end