diff --git a/.babelrc.esm.json b/.babelrc.esm.json index a3dc2fc..0fad572 100644 --- a/.babelrc.esm.json +++ b/.babelrc.esm.json @@ -10,6 +10,7 @@ ], "plugins": [ ["@babel/plugin-proposal-class-properties"], - ["@babel/plugin-transform-react-jsx", { "pragma": "h" }] + ["@babel/plugin-transform-react-jsx", { "pragma": "h" }], + ["./add-extensions", { "extension": "mjs" }] ] } diff --git a/add-extensions.js b/add-extensions.js new file mode 100644 index 0000000..5b7dfea --- /dev/null +++ b/add-extensions.js @@ -0,0 +1,22 @@ +module.exports = function (babel, opts) { + return { + visitor: { + ExportAllDeclaration: (path) => { + const { node } = path + if (node.source && node.source.extra && node.source.extra.rawValue.startsWith('./')) { + node.source = babel.types.stringLiteral( + node.source.extra && node.source.extra.rawValue + '.' + opts.extension + ) + } + }, + ImportDeclaration: (path) => { + const { node } = path + if (node.source && node.source.extra && node.source.extra.rawValue.startsWith('./')) { + node.source = babel.types.stringLiteral( + node.source.extra && node.source.extra.rawValue + '.' + opts.extension + ) + } + } + } + } +} diff --git a/package.json b/package.json index 19ae4a5..63418bf 100644 --- a/package.json +++ b/package.json @@ -3,18 +3,18 @@ "version": "0.0.0-semantically-released", "description": "Simple and complete Preact DOM testing utilities that encourage good testing practices.", "main": "dist/cjs/index.js", - "module": "dist/esm/index.js", + "module": "dist/esm/index.mjs", "types": "types/index.d.ts", "exports": { ".": { "types": "./types/index.d.ts", - "browser": "./dist/esm/index.js", + "browser": "./dist/esm/index.mjs", "import": "./dist/esm/index.mjs", "require": "./dist/cjs/index.js" }, "./pure": { "types": "./pure.d.ts", - "browser": "./dist/esm/pure.js", + "browser": "./dist/esm/pure.mjs", "import": "./dist/esm/pure.mjs", "require": "./dist/cjs/pure.js" } @@ -55,10 +55,9 @@ "toc": "doctoc README.md", "lint": "eslint src/**/*.js --fix", "clean": "rimraf dist", - "build": "npm run build:cjs && npm run build:esm && npm run copy:mjs", + "build": "npm run build:cjs && npm run build:esm", "build:cjs": "babel src --out-dir dist/cjs --config-file ./.babelrc --ignore '**/__tests__/**,**/__mocks__/**'", - "build:esm": "babel src --no-babelrc --out-dir dist/esm --config-file ./.babelrc.esm.json --ignore '**/__tests__/**,**/__mocks__/**'", - "copy:mjs": "cp ./dist/esm/fire-event.js ./dist/esm/fire-event.mjs && cp ./dist/esm/pure.js ./dist/esm/pure.mjs && cp ./dist/esm/index.js ./dist/esm/index.mjs", + "build:esm": "babel src --no-babelrc --out-file-extension .mjs --out-dir dist/esm --config-file ./.babelrc.esm.json --ignore '**/__tests__/**,**/__mocks__/**'", "test": "jest src/__tests__ ", "test:watch": "npm test --watch", "test:update": "npm test --updateSnapshot --coverage",