diff --git a/.config/vite.umd.config.js b/.config/vite.umd.config.js new file mode 100644 index 000000000..e6942d61b --- /dev/null +++ b/.config/vite.umd.config.js @@ -0,0 +1,34 @@ +import fs from 'fs' +import path from 'path' + +import { defineConfig } from 'vite' +import dts from 'vite-plugin-dts' +import tsconfigPaths from 'vite-tsconfig-paths' + +import baseConfig from './vite.config.base' + +const PWD = process.env.PWD + +export default defineConfig({ + plugins: [ + tsconfigPaths(), + dts({ + exclude: ['**/*.spec.ts', '**/*.test.ts', '**/tests/**'], + afterBuild: () => { + const types = fs.readdirSync(path.join(PWD, 'umd/src')) + types.forEach((file) => { + fs.renameSync(path.join(PWD, 'umd/src', file), path.join(PWD, 'umd', file)) + }) + fs.rmdirSync(path.join(PWD, 'umd/src')) + } + }) + ], + build: { + ...(baseConfig.build || {}), + outDir: 'umd', + lib: { + ...(baseConfig.build?.lib || {}), + formats: ['umd'] + } + } +}) diff --git a/.gitignore b/.gitignore index c307b8bea..19e8b26d4 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ logs/ # Directories coverage/ dist/ +umd/ lib/ node_modules/ tmp/ diff --git a/package.json b/package.json index bd2bbcd67..c88d1c056 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "build:docs": "pnpm run build --filter=@nhost/docs", "dev": "turbo run dev --filter=!@nhost/docs --filter=!@nhost-examples/* --filter=!@nhost/docgen --no-deps --include-dependencies", "clean:all": "pnpm clean && rm -rf ./{{packages,examples}/*,docs}/{.nhost,node_modules} node_modules", - "clean": "rm -rf ./{{packages,examples}/*,docs}/{dist,.next,.turbo,coverage}", + "clean": "rm -rf ./{{packages,examples}/*,docs}/{dist,umd,.next,.turbo,coverage}", "ci": "turbo run build test --concurrency=4 --filter=!@nhost/docs --filter=!@nhost-examples/* && pnpm run lint", "ci:version": "changeset version && pnpm install --frozen-lockfile false", "coverage": "pnpm run test --coverage", diff --git a/packages/apollo/package.json b/packages/apollo/package.json index 65fb2c4dc..5e0e58687 100644 --- a/packages/apollo/package.json +++ b/packages/apollo/package.json @@ -27,6 +27,7 @@ "source": "src/index.ts", "files": [ "dist", + "umd", "README.md" ], "exports": { @@ -40,7 +41,9 @@ }, "scripts": { "dev": "vite build --config ./vite.config.dev.js", - "build": "vite build", + "build": "run-p build:esm-cjs build:umd", + "build:esm-cjs": "vite build", + "build:umd": "vite build --config ../../vite.umd.config.js", "test": "pnpm jest --runInBand --config ../../jest.config.base.js", "prettier": "prettier --check src/", "prettier:fix": "prettier --write src/", diff --git a/packages/apollo/vite.config.dev.js b/packages/apollo/vite.config.dev.js index 95d34a241..5062442cc 100644 --- a/packages/apollo/vite.config.dev.js +++ b/packages/apollo/vite.config.dev.js @@ -4,6 +4,7 @@ import viteConfig from './vite.config' export default defineConfig({ ...viteConfig, + mode: 'development', build: { ...viteConfig.build, watch: { diff --git a/packages/apollo/vite.config.js b/packages/apollo/vite.config.js index cbc6f0a05..41e850358 100644 --- a/packages/apollo/vite.config.js +++ b/packages/apollo/vite.config.js @@ -9,9 +9,8 @@ const deps = [...Object.keys(Object.assign({}, pkg.peerDependencies, pkg.depende export default defineConfig({ ...baseConfig, build: { - ...baseConfig.build, + ...(baseConfig.build || {}), rollupOptions: { - ...baseConfig.rollupOptions, external: (id) => deps.some((dep) => id.startsWith(dep)) } } diff --git a/packages/core/package.json b/packages/core/package.json index 7ede44f67..4731e9651 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -26,6 +26,7 @@ "source": "src/index.ts", "files": [ "dist", + "umd", "README.md" ], "exports": { @@ -39,7 +40,9 @@ }, "scripts": { "dev": "vite build --config ./vite.config.dev.js", - "build": "vite build", + "build": "run-p build:esm-cjs build:umd", + "build:esm-cjs": "vite build", + "build:umd": "vite build --config ../../vite.umd.config.js", "test": "pnpm jest --runInBand --config ../../jest.config.base.js", "prettier": "prettier --check src/", "prettier:fix": "prettier --write src/", diff --git a/packages/core/vite.config.dev.js b/packages/core/vite.config.dev.js index 95d34a241..5062442cc 100644 --- a/packages/core/vite.config.dev.js +++ b/packages/core/vite.config.dev.js @@ -4,6 +4,7 @@ import viteConfig from './vite.config' export default defineConfig({ ...viteConfig, + mode: 'development', build: { ...viteConfig.build, watch: { diff --git a/packages/core/vite.config.js b/packages/core/vite.config.js index eacd065c0..41e850358 100644 --- a/packages/core/vite.config.js +++ b/packages/core/vite.config.js @@ -9,9 +9,8 @@ const deps = [...Object.keys(Object.assign({}, pkg.peerDependencies, pkg.depende export default defineConfig({ ...baseConfig, build: { - ...baseConfig.build, + ...(baseConfig.build || {}), rollupOptions: { - ...baseConfig.build?.rollupOptions, external: (id) => deps.some((dep) => id.startsWith(dep)) } } diff --git a/packages/hasura-auth-js/package.json b/packages/hasura-auth-js/package.json index a5baf4363..4cf808535 100644 --- a/packages/hasura-auth-js/package.json +++ b/packages/hasura-auth-js/package.json @@ -25,6 +25,7 @@ "source": "src/index.ts", "files": [ "dist", + "umd", "README.md" ], "exports": { @@ -38,7 +39,9 @@ }, "scripts": { "dev": "vite build --config ./vite.config.dev.js", - "build": "vite build", + "build": "run-p build:esm-cjs build:umd", + "build:esm-cjs": "vite build", + "build:umd": "vite build --config ../../vite.umd.config.js", "test": "pnpm jest --runInBand --config ../../jest.config.base.js", "prettier": "prettier --check src/", "prettier:fix": "prettier --write src/", diff --git a/packages/hasura-auth-js/vite.config.dev.js b/packages/hasura-auth-js/vite.config.dev.js index 95d34a241..5062442cc 100644 --- a/packages/hasura-auth-js/vite.config.dev.js +++ b/packages/hasura-auth-js/vite.config.dev.js @@ -4,6 +4,7 @@ import viteConfig from './vite.config' export default defineConfig({ ...viteConfig, + mode: 'development', build: { ...viteConfig.build, watch: { diff --git a/packages/hasura-auth-js/vite.config.js b/packages/hasura-auth-js/vite.config.js index eacd065c0..41e850358 100644 --- a/packages/hasura-auth-js/vite.config.js +++ b/packages/hasura-auth-js/vite.config.js @@ -9,9 +9,8 @@ const deps = [...Object.keys(Object.assign({}, pkg.peerDependencies, pkg.depende export default defineConfig({ ...baseConfig, build: { - ...baseConfig.build, + ...(baseConfig.build || {}), rollupOptions: { - ...baseConfig.build?.rollupOptions, external: (id) => deps.some((dep) => id.startsWith(dep)) } } diff --git a/packages/hasura-storage-js/package.json b/packages/hasura-storage-js/package.json index 21404613f..017d79275 100644 --- a/packages/hasura-storage-js/package.json +++ b/packages/hasura-storage-js/package.json @@ -23,6 +23,7 @@ "source": "src/index.ts", "files": [ "dist", + "umd", "README.md" ], "exports": { @@ -36,7 +37,9 @@ }, "scripts": { "dev": "vite build --config ./vite.config.dev.js", - "build": "vite build", + "build": "run-p build:esm-cjs build:umd", + "build:esm-cjs": "vite build", + "build:umd": "vite build --config ../../vite.umd.config.js", "test": "pnpm jest --runInBand --config ../../jest.config.base.js", "prettier": "prettier --check src/", "prettier:fix": "prettier --write src/", diff --git a/packages/hasura-storage-js/vite.config.dev.js b/packages/hasura-storage-js/vite.config.dev.js index 95d34a241..5062442cc 100644 --- a/packages/hasura-storage-js/vite.config.dev.js +++ b/packages/hasura-storage-js/vite.config.dev.js @@ -4,6 +4,7 @@ import viteConfig from './vite.config' export default defineConfig({ ...viteConfig, + mode: 'development', build: { ...viteConfig.build, watch: { diff --git a/packages/hasura-storage-js/vite.config.js b/packages/hasura-storage-js/vite.config.js index eacd065c0..41e850358 100644 --- a/packages/hasura-storage-js/vite.config.js +++ b/packages/hasura-storage-js/vite.config.js @@ -9,9 +9,8 @@ const deps = [...Object.keys(Object.assign({}, pkg.peerDependencies, pkg.depende export default defineConfig({ ...baseConfig, build: { - ...baseConfig.build, + ...(baseConfig.build || {}), rollupOptions: { - ...baseConfig.build?.rollupOptions, external: (id) => deps.some((dep) => id.startsWith(dep)) } } diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index 916f7bbe8..bcce5e591 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -23,25 +23,13 @@ "type": "git", "url": "https://github.com/nhost/nhost.git" }, - "scripts": { - "dev": "vite build --config ./vite.config.dev.js", - "build": "vite build", - "test": "pnpm jest --runInBand --config ../../jest.config.base.js", - "prettier": "prettier --check src/", - "prettier:fix": "prettier --write src/", - "lint": "eslint . --ext .ts,.tsx", - "lint:fix": "eslint . --ext .ts,.tsx --fix", - "verify": "run-p prettier lint", - "verify:fix": "run-p prettier:fix lint:fix", - "typedoc": "typedoc --options ./nextjs.typedoc.json", - "docgen": "pnpm typedoc && docgen --config ./nextjs.docgen.json" - }, "main": "dist/index.cjs.js", "module": "dist/index.es.js", "types": "dist/index.d.ts", "source": "src/index.ts", "files": [ "dist", + "umd", "README.md" ], "exports": { @@ -53,6 +41,21 @@ "publishConfig": { "access": "public" }, + "scripts": { + "dev": "vite build --config ./vite.config.dev.js", + "build": "run-p build:esm-cjs build:umd", + "build:esm-cjs": "vite build", + "build:umd": "vite build --config ../../vite.umd.config.js", + "test": "pnpm jest --runInBand --config ../../jest.config.base.js", + "prettier": "prettier --check src/", + "prettier:fix": "prettier --write src/", + "lint": "eslint . --ext .ts,.tsx", + "lint:fix": "eslint . --ext .ts,.tsx --fix", + "verify": "run-p prettier lint", + "verify:fix": "run-p prettier:fix lint:fix", + "typedoc": "typedoc --options ./nextjs.typedoc.json", + "docgen": "pnpm typedoc && docgen --config ./nextjs.docgen.json" + }, "dependencies": { "@nhost/core": "*", "@nhost/nhost-js": "*", diff --git a/packages/nextjs/vite.config.dev.js b/packages/nextjs/vite.config.dev.js index 95d34a241..5062442cc 100644 --- a/packages/nextjs/vite.config.dev.js +++ b/packages/nextjs/vite.config.dev.js @@ -4,6 +4,7 @@ import viteConfig from './vite.config' export default defineConfig({ ...viteConfig, + mode: 'development', build: { ...viteConfig.build, watch: { diff --git a/packages/nextjs/vite.config.js b/packages/nextjs/vite.config.js index eacd065c0..08464c9fe 100644 --- a/packages/nextjs/vite.config.js +++ b/packages/nextjs/vite.config.js @@ -11,8 +11,12 @@ export default defineConfig({ build: { ...baseConfig.build, rollupOptions: { - ...baseConfig.build?.rollupOptions, - external: (id) => deps.some((dep) => id.startsWith(dep)) + external: (id) => deps.some((dep) => id.startsWith(dep)), + output: { + globals: { + react: 'React' + } + } } } }) diff --git a/packages/nhost-js/package.json b/packages/nhost-js/package.json index 261e88c88..fc4acc57b 100644 --- a/packages/nhost-js/package.json +++ b/packages/nhost-js/package.json @@ -26,6 +26,7 @@ "source": "src/index.ts", "files": [ "dist", + "umd", "README.md" ], "exports": { @@ -39,7 +40,9 @@ }, "scripts": { "dev": "vite build --config ./vite.config.dev.js", - "build": "vite build", + "build": "run-p build:esm-cjs build:umd", + "build:esm-cjs": "vite build", + "build:umd": "vite build --config ../../vite.umd.config.js", "test": "pnpm jest --runInBand --config ../../jest.config.base.js", "prettier": "prettier --check src/", "prettier:fix": "prettier --write src/", diff --git a/packages/nhost-js/vite.config.dev.js b/packages/nhost-js/vite.config.dev.js index 95d34a241..5062442cc 100644 --- a/packages/nhost-js/vite.config.dev.js +++ b/packages/nhost-js/vite.config.dev.js @@ -4,6 +4,7 @@ import viteConfig from './vite.config' export default defineConfig({ ...viteConfig, + mode: 'development', build: { ...viteConfig.build, watch: { diff --git a/packages/nhost-js/vite.config.js b/packages/nhost-js/vite.config.js index eacd065c0..41e850358 100644 --- a/packages/nhost-js/vite.config.js +++ b/packages/nhost-js/vite.config.js @@ -9,9 +9,8 @@ const deps = [...Object.keys(Object.assign({}, pkg.peerDependencies, pkg.depende export default defineConfig({ ...baseConfig, build: { - ...baseConfig.build, + ...(baseConfig.build || {}), rollupOptions: { - ...baseConfig.build?.rollupOptions, external: (id) => deps.some((dep) => id.startsWith(dep)) } } diff --git a/packages/react-apollo/package.json b/packages/react-apollo/package.json index aff8d468c..9c8d97ab9 100644 --- a/packages/react-apollo/package.json +++ b/packages/react-apollo/package.json @@ -28,6 +28,7 @@ "source": "src/index.ts", "files": [ "dist", + "umd", "README.md" ], "exports": { @@ -41,7 +42,9 @@ }, "scripts": { "dev": "vite build --config ./vite.config.dev.js", - "build": "vite build", + "build": "run-p build:esm-cjs build:umd", + "build:esm-cjs": "vite build", + "build:umd": "vite build --config ../../vite.umd.config.js", "test": "pnpm jest --runInBand --config ../../jest.config.base.js", "prettier": "prettier --check src/", "prettier:fix": "prettier --write src/", diff --git a/packages/react-apollo/vite.config.dev.js b/packages/react-apollo/vite.config.dev.js index 95d34a241..5062442cc 100644 --- a/packages/react-apollo/vite.config.dev.js +++ b/packages/react-apollo/vite.config.dev.js @@ -4,6 +4,7 @@ import viteConfig from './vite.config' export default defineConfig({ ...viteConfig, + mode: 'development', build: { ...viteConfig.build, watch: { diff --git a/packages/react-apollo/vite.config.js b/packages/react-apollo/vite.config.js index eacd065c0..08464c9fe 100644 --- a/packages/react-apollo/vite.config.js +++ b/packages/react-apollo/vite.config.js @@ -11,8 +11,12 @@ export default defineConfig({ build: { ...baseConfig.build, rollupOptions: { - ...baseConfig.build?.rollupOptions, - external: (id) => deps.some((dep) => id.startsWith(dep)) + external: (id) => deps.some((dep) => id.startsWith(dep)), + output: { + globals: { + react: 'React' + } + } } } }) diff --git a/packages/react-auth/package.json b/packages/react-auth/package.json index 75aa38503..e7347c067 100644 --- a/packages/react-auth/package.json +++ b/packages/react-auth/package.json @@ -27,6 +27,7 @@ "source": "src/index.tsx", "files": [ "dist", + "umd", "README.md" ], "exports": { @@ -40,7 +41,9 @@ }, "scripts": { "dev": "vite build --config ./vite.config.dev.js", - "build": "vite build", + "build": "run-p build:esm-cjs build:umd", + "build:esm-cjs": "vite build", + "build:umd": "vite build --config ../../vite.umd.config.js", "test": "pnpm jest --runInBand --config ../../jest.config.base.js", "prettier": "prettier --check src/", "prettier:fix": "prettier --write src/", diff --git a/packages/react-auth/vite.config.dev.js b/packages/react-auth/vite.config.dev.js index 95d34a241..5062442cc 100644 --- a/packages/react-auth/vite.config.dev.js +++ b/packages/react-auth/vite.config.dev.js @@ -4,6 +4,7 @@ import viteConfig from './vite.config' export default defineConfig({ ...viteConfig, + mode: 'development', build: { ...viteConfig.build, watch: { diff --git a/packages/react-auth/vite.config.js b/packages/react-auth/vite.config.js index eacd065c0..08464c9fe 100644 --- a/packages/react-auth/vite.config.js +++ b/packages/react-auth/vite.config.js @@ -11,8 +11,12 @@ export default defineConfig({ build: { ...baseConfig.build, rollupOptions: { - ...baseConfig.build?.rollupOptions, - external: (id) => deps.some((dep) => id.startsWith(dep)) + external: (id) => deps.some((dep) => id.startsWith(dep)), + output: { + globals: { + react: 'React' + } + } } } }) diff --git a/packages/react/package.json b/packages/react/package.json index a5af49996..4230c5bab 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -27,6 +27,7 @@ "source": "src/index.ts", "files": [ "dist", + "umd", "README.md" ], "exports": { @@ -40,7 +41,9 @@ }, "scripts": { "dev": "vite build --config ./vite.config.dev.js", - "build": "vite build", + "build": "run-p build:esm-cjs build:umd", + "build:esm-cjs": "vite build", + "build:umd": "vite build --config ../../vite.umd.config.js", "test": "pnpm jest --runInBand --config ../../jest.config.base.js", "prettier": "prettier --check src/", "prettier:fix": "prettier --write src/", diff --git a/packages/react/vite.config.dev.js b/packages/react/vite.config.dev.js index 95d34a241..5062442cc 100644 --- a/packages/react/vite.config.dev.js +++ b/packages/react/vite.config.dev.js @@ -4,6 +4,7 @@ import viteConfig from './vite.config' export default defineConfig({ ...viteConfig, + mode: 'development', build: { ...viteConfig.build, watch: { diff --git a/packages/react/vite.config.js b/packages/react/vite.config.js index eacd065c0..08464c9fe 100644 --- a/packages/react/vite.config.js +++ b/packages/react/vite.config.js @@ -11,8 +11,12 @@ export default defineConfig({ build: { ...baseConfig.build, rollupOptions: { - ...baseConfig.build?.rollupOptions, - external: (id) => deps.some((dep) => id.startsWith(dep)) + external: (id) => deps.some((dep) => id.startsWith(dep)), + output: { + globals: { + react: 'React' + } + } } } })