From 17197dc980178f2e9349325ddcc1667e8a0f949a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sta=C5=9B=20Ma=C5=82olepszy?= Date: Mon, 20 Apr 2020 16:19:47 +0200 Subject: [PATCH 1/3] Rename index.js to index.cj; use conditional exports for Node 14 --- fluent-bundle/.gitignore | 2 +- fluent-bundle/makefile | 6 +++--- fluent-bundle/package.json | 8 ++++++-- fluent-dedent/.gitignore | 2 +- fluent-dedent/makefile | 6 +++--- fluent-dedent/package.json | 8 ++++++-- fluent-dom/.gitignore | 2 +- fluent-dom/makefile | 6 +++--- fluent-dom/package.json | 8 ++++++-- fluent-gecko/package.json | 3 --- fluent-langneg/.gitignore | 2 +- fluent-langneg/makefile | 6 +++--- fluent-langneg/package.json | 8 ++++++-- fluent-react/.gitignore | 2 +- fluent-react/makefile | 6 +++--- fluent-react/package.json | 8 ++++++-- fluent-sequence/.gitignore | 2 +- fluent-sequence/makefile | 6 +++--- fluent-sequence/package.json | 8 ++++++-- fluent-syntax/.gitignore | 2 +- fluent-syntax/makefile | 6 +++--- fluent-syntax/package.json | 8 ++++++-- 22 files changed, 70 insertions(+), 45 deletions(-) diff --git a/fluent-bundle/.gitignore b/fluent-bundle/.gitignore index 0bd1f3fc5..eb0b8a6be 100644 --- a/fluent-bundle/.gitignore +++ b/fluent-bundle/.gitignore @@ -1,2 +1,2 @@ esm/ -/index.js +/index.cjs diff --git a/fluent-bundle/makefile b/fluent-bundle/makefile index 834d83239..f30fe53d0 100644 --- a/fluent-bundle/makefile +++ b/fluent-bundle/makefile @@ -24,9 +24,9 @@ test: esm/.compiled test/**/*_test.js .PHONY: build -build: index.js +build: index.cjs -index.js: esm/.compiled +index.cjs: esm/.compiled @rollup $(CURDIR)/esm/index.js \ --banner "/* $(PACKAGE)@$(VERSION) */" \ --amd.id $(PACKAGE) \ @@ -47,7 +47,7 @@ html: clean: @rm -f esm/*.js esm/*.d.ts esm/.compiled - @rm -f index.js + @rm -f index.cjs @rm -rf .nyc_output coverage @echo -e " $(OK) clean" diff --git a/fluent-bundle/package.json b/fluent-bundle/package.json index a611521bc..f06df8fa2 100644 --- a/fluent-bundle/package.json +++ b/fluent-bundle/package.json @@ -15,8 +15,12 @@ "email": "stas@mozilla.com" } ], - "type": "commonjs", - "main": "./index.js", + "type": "module", + "main": "./index.cjs", + "exports": { + "import": "./esm/index.js", + "require": "./index.cjs" + }, "module": "./esm/index.js", "types": "./esm/index.d.ts", "repository": { diff --git a/fluent-dedent/.gitignore b/fluent-dedent/.gitignore index 0bd1f3fc5..eb0b8a6be 100644 --- a/fluent-dedent/.gitignore +++ b/fluent-dedent/.gitignore @@ -1,2 +1,2 @@ esm/ -/index.js +/index.cjs diff --git a/fluent-dedent/makefile b/fluent-dedent/makefile index 0c064efcf..3fb8b4c16 100644 --- a/fluent-dedent/makefile +++ b/fluent-dedent/makefile @@ -24,9 +24,9 @@ test: esm/.compiled test/**/*_test.js .PHONY: build -build: index.js +build: index.cjs -index.js: esm/.compiled +index.cjs: esm/.compiled @rollup $(CURDIR)/esm/index.js \ --banner "/* $(PACKAGE)@$(VERSION) */" \ --amd.id $(PACKAGE) \ @@ -47,6 +47,6 @@ html: clean: @rm -f esm/*.js esm/*.d.ts esm/.compiled - @rm -f index.js + @rm -f index.cjs @rm -rf .nyc_output coverage @echo -e " $(OK) clean" diff --git a/fluent-dedent/package.json b/fluent-dedent/package.json index eabfa1957..0a2ab1f52 100644 --- a/fluent-dedent/package.json +++ b/fluent-dedent/package.json @@ -11,8 +11,12 @@ "email": "stas@mozilla.com" } ], - "type": "commonjs", - "main": "./index.js", + "type": "module", + "main": "./index.cjs", + "exports": { + "import": "./esm/index.js", + "require": "./index.cjs" + }, "module": "./esm/index.js", "types": "./esm/index.d.ts", "repository": { diff --git a/fluent-dom/.gitignore b/fluent-dom/.gitignore index 0bd1f3fc5..eb0b8a6be 100644 --- a/fluent-dom/.gitignore +++ b/fluent-dom/.gitignore @@ -1,2 +1,2 @@ esm/ -/index.js +/index.cjs diff --git a/fluent-dom/makefile b/fluent-dom/makefile index 7c10690db..071597e05 100644 --- a/fluent-dom/makefile +++ b/fluent-dom/makefile @@ -26,9 +26,9 @@ test: esm/.compiled test/**/*_test.js .PHONY: build -build: index.js +build: index.cjs -index.js: esm/.compiled +index.cjs: esm/.compiled @rollup $(CURDIR)/esm/index.js \ --banner "/* $(PACKAGE)@$(VERSION) */" \ --amd.id $(PACKAGE) \ @@ -50,6 +50,6 @@ html: clean: @rm -f esm/*.js esm/*.d.ts esm/.compiled - @rm -f index.js + @rm -f index.cjs @rm -rf .nyc_output coverage @echo -e " $(OK) clean" diff --git a/fluent-dom/package.json b/fluent-dom/package.json index 70996b96b..8b991c1b0 100644 --- a/fluent-dom/package.json +++ b/fluent-dom/package.json @@ -18,8 +18,12 @@ "email": "stas@mozilla.com" } ], - "type": "commonjs", - "main": "./index.js", + "type": "module", + "main": "./index.cjs", + "exports": { + "import": "./esm/index.js", + "require": "./index.cjs" + }, "module": "./esm/index.js", "types": "./esm/index.d.ts", "keywords": [ diff --git a/fluent-gecko/package.json b/fluent-gecko/package.json index 8ee2c8ee5..31d1be5fa 100644 --- a/fluent-gecko/package.json +++ b/fluent-gecko/package.json @@ -16,9 +16,6 @@ "email": "stas@mozilla.com" } ], - "directories": { - "lib": "./src" - }, "repository": { "type": "git", "url": "https://github.com/projectfluent/fluent.js.git" diff --git a/fluent-langneg/.gitignore b/fluent-langneg/.gitignore index 0bd1f3fc5..eb0b8a6be 100644 --- a/fluent-langneg/.gitignore +++ b/fluent-langneg/.gitignore @@ -1,2 +1,2 @@ esm/ -/index.js +/index.cjs diff --git a/fluent-langneg/makefile b/fluent-langneg/makefile index 48a044ab9..9e8bc0152 100644 --- a/fluent-langneg/makefile +++ b/fluent-langneg/makefile @@ -24,9 +24,9 @@ test: esm/.compiled test/**/*_test.js .PHONY: build -build: index.js +build: index.cjs -index.js: $(SOURCES) +index.cjs: $(SOURCES) @rollup $(CURDIR)/esm/index.js \ --banner "/* $(PACKAGE)@$(VERSION) */" \ --amd.id $(PACKAGE) \ @@ -47,6 +47,6 @@ html: clean: @rm -f esm/*.js esm/*.d.ts esm/.compiled - @rm -f index.js + @rm -f index.cjs @rm -rf .nyc_output coverage @echo -e " $(OK) clean" diff --git a/fluent-langneg/package.json b/fluent-langneg/package.json index 171f0835e..6e46e5072 100644 --- a/fluent-langneg/package.json +++ b/fluent-langneg/package.json @@ -15,8 +15,12 @@ "email": "stas@mozilla.com" } ], - "type": "commonjs", - "main": "./index.js", + "type": "module", + "main": "./index.cjs", + "exports": { + "import": "./esm/index.js", + "require": "./index.cjs" + }, "module": "./esm/index.js", "types": "./esm/index.d.ts", "repository": { diff --git a/fluent-react/.gitignore b/fluent-react/.gitignore index 0bd1f3fc5..eb0b8a6be 100644 --- a/fluent-react/.gitignore +++ b/fluent-react/.gitignore @@ -1,2 +1,2 @@ esm/ -/index.js +/index.cjs diff --git a/fluent-react/makefile b/fluent-react/makefile index 53c099bae..8def47176 100644 --- a/fluent-react/makefile +++ b/fluent-react/makefile @@ -21,9 +21,9 @@ test: esm/.compiled @jest --collect-coverage .PHONY: build -build: index.js +build: index.cjs -index.js: esm/.compiled +index.cjs: esm/.compiled @rollup $(CURDIR)/esm/index.js \ --banner "/* $(PACKAGE)@$(VERSION) */" \ --amd.id $(PACKAGE) \ @@ -45,6 +45,6 @@ html: clean: @rm -f esm/*.js esm/*.d.ts esm/.compiled - @rm -f index.js + @rm -f index.cjs @rm -rf .nyc_output coverage @echo -e " $(OK) clean" diff --git a/fluent-react/package.json b/fluent-react/package.json index d78cdb27d..06fe9dfb6 100644 --- a/fluent-react/package.json +++ b/fluent-react/package.json @@ -15,8 +15,12 @@ "email": "stas@mozilla.com" } ], - "type": "commonjs", - "main": "./index.js", + "type": "module", + "main": "./index.cjs", + "exports": { + "import": "./esm/index.js", + "require": "./index.cjs" + }, "module": "./esm/index.js", "types": "./esm/index.d.ts", "repository": { diff --git a/fluent-sequence/.gitignore b/fluent-sequence/.gitignore index 0bd1f3fc5..eb0b8a6be 100644 --- a/fluent-sequence/.gitignore +++ b/fluent-sequence/.gitignore @@ -1,2 +1,2 @@ esm/ -/index.js +/index.cjs diff --git a/fluent-sequence/makefile b/fluent-sequence/makefile index f3ab1795e..f24fb9583 100644 --- a/fluent-sequence/makefile +++ b/fluent-sequence/makefile @@ -24,9 +24,9 @@ test: esm/.compiled test/**/*_test.js .PHONY: build -build: index.js +build: index.cjs -index.js: esm/.compiled +index.cjs: esm/.compiled @rollup $(CURDIR)/esm/index.js \ --banner "/* $(PACKAGE)@$(VERSION) */" \ --amd.id $(PACKAGE) \ @@ -47,6 +47,6 @@ html: clean: @rm -f esm/*.js esm/*.d.ts esm/.compiled - @rm -f index.js + @rm -f index.cjs @rm -rf .nyc_output coverage @echo -e " $(OK) clean" diff --git a/fluent-sequence/package.json b/fluent-sequence/package.json index 4cde69d05..267184fe3 100644 --- a/fluent-sequence/package.json +++ b/fluent-sequence/package.json @@ -15,8 +15,12 @@ "email": "stas@mozilla.com" } ], - "type": "commonjs", - "main": "./index.js", + "type": "module", + "main": "./index.cjs", + "exports": { + "import": "./esm/index.js", + "require": "./index.cjs" + }, "module": "./esm/index.js", "types": "./esm/index.d.ts", "repository": { diff --git a/fluent-syntax/.gitignore b/fluent-syntax/.gitignore index 0bd1f3fc5..eb0b8a6be 100644 --- a/fluent-syntax/.gitignore +++ b/fluent-syntax/.gitignore @@ -1,2 +1,2 @@ esm/ -/index.js +/index.cjs diff --git a/fluent-syntax/makefile b/fluent-syntax/makefile index adb8bc751..9c231385d 100644 --- a/fluent-syntax/makefile +++ b/fluent-syntax/makefile @@ -24,9 +24,9 @@ test: esm/.compiled test/**/*_test.js .PHONY: build -build: index.js +build: index.cjs -index.js: esm/.compiled +index.cjs: esm/.compiled @rollup $(CURDIR)/esm/index.js \ --banner "/* $(PACKAGE)@$(VERSION) */" \ --amd.id $(PACKAGE) \ @@ -47,7 +47,7 @@ html: clean: @rm -f esm/*.js esm/*.d.ts esm/.compiled - @rm -f index.js + @rm -f index.cjs @rm -rf .nyc_output coverage @echo -e " $(OK) clean" diff --git a/fluent-syntax/package.json b/fluent-syntax/package.json index e9407f29b..199f9426b 100644 --- a/fluent-syntax/package.json +++ b/fluent-syntax/package.json @@ -15,8 +15,12 @@ "email": "stas@mozilla.com" } ], - "type": "commonjs", - "main": "./index.js", + "type": "module", + "main": "./index.cjs", + "exports": { + "import": "./esm/index.js", + "require": "./index.cjs" + }, "module": "./esm/index.js", "types": "./esm/index.d.ts", "repository": { From cee398272f5e95bbc7a773d05043f3e6f4e287ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sta=C5=9B=20Ma=C5=82olepszy?= Date: Mon, 20 Apr 2020 16:52:41 +0200 Subject: [PATCH 2/3] Declare test files as CommonJS --- fluent-langneg/test/package.json | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 fluent-langneg/test/package.json diff --git a/fluent-langneg/test/package.json b/fluent-langneg/test/package.json new file mode 100644 index 000000000..1cd945a3b --- /dev/null +++ b/fluent-langneg/test/package.json @@ -0,0 +1,3 @@ +{ + "type": "commonjs" +} From f1ed99475eb0212d441fe9b1dfd65d1497859526 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sta=C5=9B=20Ma=C5=82olepszy?= Date: Mon, 4 May 2020 12:59:57 +0200 Subject: [PATCH 3/3] WIP wrap_as_esm in @fluent/syntax --- fluent-syntax/.gitignore | 1 + fluent-syntax/makefile | 6 +++++- fluent-syntax/package.json | 2 +- wrap_as_esm.cjs | 9 +++++++++ 4 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 wrap_as_esm.cjs diff --git a/fluent-syntax/.gitignore b/fluent-syntax/.gitignore index eb0b8a6be..8a0eaabb6 100644 --- a/fluent-syntax/.gitignore +++ b/fluent-syntax/.gitignore @@ -1,2 +1,3 @@ esm/ /index.cjs +/wrapper.mjs diff --git a/fluent-syntax/makefile b/fluent-syntax/makefile index 9c231385d..b2bd70eff 100644 --- a/fluent-syntax/makefile +++ b/fluent-syntax/makefile @@ -24,7 +24,7 @@ test: esm/.compiled test/**/*_test.js .PHONY: build -build: index.cjs +build: index.cjs wrapper.mjs index.cjs: esm/.compiled @rollup $(CURDIR)/esm/index.js \ @@ -35,6 +35,10 @@ index.cjs: esm/.compiled --output.file $@ @echo -e " $(OK) $@ built" +wrapper.mjs: index.cjs + @node ../wrap_as_esm.cjs $< > $@ + @echo -e " $(OK) $@ built" + html: @typedoc src \ --out ../html/syntax \ diff --git a/fluent-syntax/package.json b/fluent-syntax/package.json index 199f9426b..b4e9e2d89 100644 --- a/fluent-syntax/package.json +++ b/fluent-syntax/package.json @@ -18,7 +18,7 @@ "type": "module", "main": "./index.cjs", "exports": { - "import": "./esm/index.js", + "import": "./wrapper.mjs", "require": "./index.cjs" }, "module": "./esm/index.js", diff --git a/wrap_as_esm.cjs b/wrap_as_esm.cjs new file mode 100644 index 000000000..9ad3efddf --- /dev/null +++ b/wrap_as_esm.cjs @@ -0,0 +1,9 @@ +const path = require("path"); +const index_cjs= process.argv[2]; +const cjs = require(path.join(process.cwd(), index_cjs)); + +let wrapper = `import cjs from "./index.cjs";`; +for (let name in cjs) { + wrapper += `\nexport const ${name} = cjs.${name};` +} +console.log(wrapper);