From ff58ce46e3b289df701684a471218282a411706a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20De=20Boey?= Date: Thu, 31 Aug 2023 02:03:49 +0200 Subject: [PATCH] feat: move to ESM --- .eslintrc.js => .eslintrc.cjs | 6 +++--- .eslintrc.repo.js => .eslintrc.repo.cjs | 2 +- cypress/{.eslintrc.js => .eslintrc.cjs} | 0 mocks/index.js | 4 ++-- package.json | 10 +++++----- postcss.config.js => postcss.config.cjs | 0 remix.config.js | 3 +-- remix.init/index.js | 2 +- tsconfig.json | 2 +- 9 files changed, 14 insertions(+), 15 deletions(-) rename .eslintrc.js => .eslintrc.cjs (68%) rename .eslintrc.repo.js => .eslintrc.repo.cjs (96%) rename cypress/{.eslintrc.js => .eslintrc.cjs} (100%) rename postcss.config.js => postcss.config.cjs (100%) diff --git a/.eslintrc.js b/.eslintrc.cjs similarity index 68% rename from .eslintrc.js rename to .eslintrc.cjs index 3693886e..f48cd643 100644 --- a/.eslintrc.js +++ b/.eslintrc.cjs @@ -11,9 +11,9 @@ module.exports = { "cypress/globals": true, }, plugins: ["cypress"], - // we're using vitest which has a very similar API to jest - // (so the linting plugins work nicely), but it means we have to explicitly - // set the jest version. + // We're using vitest which has a very similar API to jest + // (so the linting plugins work nicely), but it means we + // have to set the jest version explicitly. settings: { jest: { version: 28, diff --git a/.eslintrc.repo.js b/.eslintrc.repo.cjs similarity index 96% rename from .eslintrc.repo.js rename to .eslintrc.repo.cjs index 67f48962..a3796fa2 100644 --- a/.eslintrc.repo.js +++ b/.eslintrc.repo.cjs @@ -6,7 +6,7 @@ const WARN = 1; /** @type {import('eslint').Linter.Config} */ module.exports = { extends: [ - "./.eslintrc.js", + "./.eslintrc.cjs", "@remix-run/eslint-config/internal", "plugin:markdown/recommended", ], diff --git a/cypress/.eslintrc.js b/cypress/.eslintrc.cjs similarity index 100% rename from cypress/.eslintrc.js rename to cypress/.eslintrc.cjs diff --git a/mocks/index.js b/mocks/index.js index 41246682..9c4e4a7e 100644 --- a/mocks/index.js +++ b/mocks/index.js @@ -1,5 +1,5 @@ -const { rest } = require("msw"); -const { setupServer } = require("msw/node"); +import { rest } from "msw"; +import { setupServer } from "msw/node"; // put one-off handlers that don't really need an entire file to themselves here const miscHandlers = [ diff --git a/package.json b/package.json index b0991eb8..2824abcd 100644 --- a/package.json +++ b/package.json @@ -2,17 +2,18 @@ "name": "indie-stack-template", "private": true, "sideEffects": false, + "type": "module", "scripts": { "build": "remix build", "dev": "remix dev -c \"npm run dev:serve\"", - "dev:serve": "binode --require ./mocks -- @remix-run/serve:remix-serve ./build/index.js", + "dev:serve": "NODE_OPTIONS=\"--require ./mocks\" remix-serve ./build/index.js", "format": "prettier --write .", "format:repo": "npm run format && npm run lint:repo -- --fix", "lint": "eslint --cache --cache-location ./node_modules/.cache/eslint .", - "lint:repo": "npm run lint -- --config .eslintrc.repo.js", + "lint:repo": "npm run lint -- --config .eslintrc.repo.cjs", "setup": "prisma generate && prisma migrate deploy && prisma db seed", "start": "remix-serve ./build/index.js", - "start:mocks": "binode --require ./mocks -- @remix-run/serve:remix-serve ./build/index.js", + "start:mocks": "NODE_OPTIONS=\"--require ./mocks\" remix-serve ./build/index.js", "test": "vitest", "test:e2e:dev": "start-server-and-test dev http://localhost:3000 \"npx cypress open\"", "pretest:e2e:run": "npm run build", @@ -52,7 +53,6 @@ "@vitejs/plugin-react": "^4.0.4", "@vitest/coverage-v8": "^0.34.2", "autoprefixer": "^10.4.15", - "binode": "^1.0.5", "cookie": "^0.5.0", "cross-env": "^7.0.3", "cypress": "12.17.3", @@ -81,6 +81,6 @@ "node": ">=18.0.0" }, "prisma": { - "seed": "ts-node --require tsconfig-paths/register prisma/seed.ts" + "seed": "ts-node --esm --require tsconfig-paths/register prisma/seed.ts" } } diff --git a/postcss.config.js b/postcss.config.cjs similarity index 100% rename from postcss.config.js rename to postcss.config.cjs diff --git a/remix.config.js b/remix.config.js index 29582b29..4047ae45 100644 --- a/remix.config.js +++ b/remix.config.js @@ -1,6 +1,5 @@ /** @type {import('@remix-run/dev').AppConfig} */ -module.exports = { +export default { cacheDirectory: "./node_modules/.cache/remix", ignoredRouteFiles: ["**/.*", "**/*.test.{ts,tsx}"], - serverModuleFormat: "cjs", }; diff --git a/remix.init/index.js b/remix.init/index.js index 25e92ac4..2798924a 100644 --- a/remix.init/index.js +++ b/remix.init/index.js @@ -190,7 +190,7 @@ const main = async ({ packageManager, rootDirectory }) => { fs.rm(path.join(rootDirectory, ".github", "workflows", "no-response.yml")), fs.rm(path.join(rootDirectory, ".github", "dependabot.yml")), fs.rm(path.join(rootDirectory, ".github", "PULL_REQUEST_TEMPLATE.md")), - fs.rm(path.join(rootDirectory, ".eslintrc.repo.js")), + fs.rm(path.join(rootDirectory, ".eslintrc.repo.cjs")), fs.rm(path.join(rootDirectory, "LICENSE.md")), ]); diff --git a/tsconfig.json b/tsconfig.json index c0a761dd..17bce856 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,7 +7,7 @@ "isolatedModules": true, "esModuleInterop": true, "jsx": "react-jsx", - "module": "CommonJS", + "module": "ES2020", "moduleResolution": "node", "resolveJsonModule": true, "target": "ES2020",