diff --git a/package.json b/package.json index 5086bb8..f840fab 100644 --- a/package.json +++ b/package.json @@ -7,11 +7,12 @@ "browser": "dist/lucia.min.js", "types": "dist/types/index.d.ts", "scripts": { - "dev": "npx rollup -c -w --environment BUILD:development", - "build": "npx del-cli dist/ && npx rollup -c --environment BUILD:production", + "dev": "npx esbuild src/browser.ts --bundle --watch --sourcemap --outfile=dist/lucia.js", + "build": "npx del-cli dist/ && npx rollup -c", "test": "npx jest --coverage --silent", "cleanup": "npx prettier -w src", - "coverage": "cat ./coverage/lcov.info | coveralls" + "coverage": "cat ./coverage/lcov.info | coveralls", + "prepublishOnly": "npm run build" }, "repository": { "type": "git", @@ -53,6 +54,7 @@ "@testing-library/dom": "^7.28.1", "coveralls": "^3.1.0", "del-cli": "^3.0.1", + "esbuild": "^0.10.2", "jest": "^26.6.1", "prettier": "^2.1.2", "rollup": "2.42.4", diff --git a/rollup.config.js b/rollup.config.js index fae4dce..fd39459 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,6 +1,6 @@ -import commonjs from '@rollup/plugin-commonjs'; -import resolve from '@rollup/plugin-node-resolve'; import typescript from 'rollup-plugin-typescript2'; +import resolve from '@rollup/plugin-node-resolve'; +import commonjs from '@rollup/plugin-commonjs'; import { terser } from 'rollup-plugin-terser'; import babel from '@rollup/plugin-babel'; @@ -12,7 +12,7 @@ const legacy = () => { }); }; -const build = (input, config) => ({ +const generateConfig = (input, config) => ({ input, external: [], plugins: [ @@ -28,7 +28,7 @@ const build = (input, config) => ({ onwarn: () => {}, }); -export const buildAll = (input, config) => { +export const build = (input, config) => { const buildOutput = []; // Development build @@ -50,53 +50,45 @@ export const buildAll = (input, config) => { strict: true, }); - return build(input, { + return generateConfig(input, { output: buildOutput, legacy: config.legacy, target: config.target, }); }; -const development = buildAll('./src/browser.ts', { - output: ['dist/lucia.js', 'dist/lucia.min.js'], - format: 'iife', - target: 'es2018', -}); - -const production = [ - buildAll('./src/browser.ts', { +export default [ + build('./src/browser.ts', { output: ['dist/lucia.js', 'dist/lucia.min.js'], format: 'iife', target: 'es2018', }), - buildAll('./src/browser.ts', { + build('./src/browser.ts', { output: ['dist/legacy/lucia.js', 'dist/legacy/lucia.min.js'], format: 'iife', target: 'es5', legacy: true, }), - buildAll('./src/index.ts', { + build('./src/index.ts', { output: ['dist/lucia.esm.js', 'dist/lucia.esm.min.js'], format: 'esm', target: 'es2018', }), - buildAll('./src/index.ts', { + build('./src/index.ts', { output: ['dist/legacy/lucia.esm.js', 'dist/legacy/lucia.esm.min.js'], format: 'esm', target: 'es5', legacy: true, }), - buildAll('./src/index.ts', { + build('./src/index.ts', { output: ['dist/lucia.cjs.js', 'dist/lucia.cjs.min.js'], format: 'cjs', target: 'es2018', }), - buildAll('./src/index.ts', { + build('./src/index.ts', { output: ['dist/legacy/lucia.cjs.js', 'dist/legacy/lucia.cjs.min.js'], format: 'cjs', target: 'es5', legacy: true, }), ]; - -export default process.env.BUILD === 'development' ? development : production; diff --git a/src/browser.ts b/src/browser.ts index 8645cb2..6426043 100644 --- a/src/browser.ts +++ b/src/browser.ts @@ -3,7 +3,7 @@ import * as Lucia from './index'; if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', () => { // @ts-expect-error - const customLuciaInit = window.customLuciaInit; + const customLuciaInit = window.LuciaInit; if (customLuciaInit) { customLuciaInit(Lucia.init); diff --git a/src/core/reactive.ts b/src/core/reactive.ts index 8c0540f..dd4dd09 100644 --- a/src/core/reactive.ts +++ b/src/core/reactive.ts @@ -26,7 +26,7 @@ export const reactive = ( } }, set(target: UnknownKV, key: string, value: unknown): boolean { - // Do not allow function mutation + // Do not allow function or special property mutation if (typeof state[key] === 'function' || key.startsWith('$')) return false; // Currently double renderes - bad perf diff --git a/yarn.lock b/yarn.lock index 09840ee..4a9af5f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1166,9 +1166,9 @@ "@sinonjs/commons" "^1.7.0" "@testing-library/dom@^7.28.1": - version "7.30.0" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.30.0.tgz#53697851f7708a1448cc30b74a2ea056dd709cd6" - integrity sha512-v4GzWtltaiDE0yRikLlcLAfEiiK8+ptu6OuuIebm9GdC2XlZTNDPGEfM2UkEtnH7hr9TRq2sivT5EA9P1Oy7bw== + version "7.30.1" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.30.1.tgz#07b6f3ccd7f1f1e34ab0406932073e2971817f3d" + integrity sha512-RQUvqqq2lxTCOffhSNxpX/9fCoR+nwuQPmG5uhuuEH5KBAzNf2bK3OzBoWjm5zKM78SLjnGRAKt8hRjQA4E46A== dependencies: "@babel/code-frame" "^7.10.4" "@babel/runtime" "^7.12.5" @@ -2125,6 +2125,11 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +esbuild@^0.10.2: + version "0.10.2" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.10.2.tgz#caa65a8f3096d547d89159918039df6c5c6c90be" + integrity sha512-/5vsZD7wTJJHC3yNXLUjXNvUDwqwNoIMvFvLd9tcDQ9el5l13pspYm3yufavjIeYvNtAbo+6N/6uoWx9dGA6ug== + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"