diff --git a/.gitignore b/.gitignore index b512c09..f06235c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -node_modules \ No newline at end of file +node_modules +dist diff --git a/build.js b/build.js new file mode 100644 index 0000000..411d2a7 --- /dev/null +++ b/build.js @@ -0,0 +1,29 @@ +const build = require("esbuild"); + +build + .build({ + entryPoints: ["index.js"], + bundle: true, + minify: true, + loader: { + ".js": "ts" + }, + format: "esm", + external: ["react", "react-dom"], + outfile: "dist/index.mjs" + }) + .catch(() => process.exit(1)); + +build + .build({ + entryPoints: ["index.js"], + bundle: true, + minify: true, + loader: { + ".js": "ts" + }, + format: "cjs", + external: ["react", "react-dom"], + outfile: "dist/index.js" + }) + .catch(() => process.exit(1)); diff --git a/package-lock.json b/package-lock.json index c5127e4..fa0f50f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "0.0.6", "license": "ISC", "devDependencies": { + "esbuild": "^0.12.6", "eslint": "^7.27.0", "eslint-config-prettier": "^8.3.0", "next": "^10.0.3", @@ -1434,6 +1435,16 @@ "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", "dev": true }, + "node_modules/esbuild": { + "version": "0.12.6", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.6.tgz", + "integrity": "sha512-RDvVLvAjsq/kIZJoneMiUOH7EE7t2QaW7T3Q7EdQij14+bZbDq5sndb0tTanmHIFSqZVMBMMyqzVHkS3dJobeA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + } + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -5968,6 +5979,12 @@ "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", "dev": true }, + "esbuild": { + "version": "0.12.6", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.6.tgz", + "integrity": "sha512-RDvVLvAjsq/kIZJoneMiUOH7EE7t2QaW7T3Q7EdQij14+bZbDq5sndb0tTanmHIFSqZVMBMMyqzVHkS3dJobeA==", + "dev": true + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", diff --git a/package.json b/package.json index 97fcb23..1222ec6 100644 --- a/package.json +++ b/package.json @@ -10,23 +10,27 @@ "license": "ISC", "version": "0.0.6", "description": "React Query wrapper for NextAuth.js session management", - "main": "index.js", - "types": "./index.d.ts", + "type": "commonjs", "keywords": [ "next-auth", "react-query" ], + "main": "dist/index.js", "exports": { ".": { - "import": "./index.js", - "default": "./index.js" + "require": "dist/index.js", + "default": "dist/index.mjs" } }, + "module": "dist/index.mjs", + "types": "./index.d.ts", "files": [ "index.js", - "index.d.ts" + "index.d.js", + "dist/*" ], "scripts": { + "build": "node build.js", "test:ci": "npm run lint", "lint": "eslint .", "lint:fix": "eslint . --fix" @@ -38,6 +42,7 @@ "react-query": "^3.13.11" }, "devDependencies": { + "esbuild": "^0.12.6", "eslint": "^7.27.0", "eslint-config-prettier": "^8.3.0", "next": "^10.0.3", @@ -48,19 +53,19 @@ }, "eslintConfig": { "extends": [ - "eslint:recommended", + "eslint:recommended", "prettier" ], - "parserOptions": { - "ecmaVersion": 2020, - "sourceType": "module" - }, + "parserOptions": { + "ecmaVersion": 2020, + "sourceType": "module" + }, "ignorePatterns": [ "node_modules", "index.d.ts" ], - "globals": { - "fetch": "readonly" - } + "globals": { + "fetch": "readonly" + } } }