diff --git a/.editorconfig b/.editorconfig index 0024e9d8..992c49f2 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,10 +7,14 @@ charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true -[{*.json,.*rc,*.yml}] +[{*.json,.*rc}] indent_style = space indent_size = 2 insert_final_newline = false +[*.yml] +indent_style = space +indent_size = 2 + [*.md] trim_trailing_whitespace = false diff --git a/.oxfmtrc.json b/.oxfmtrc.json new file mode 100644 index 00000000..16281fab --- /dev/null +++ b/.oxfmtrc.json @@ -0,0 +1,9 @@ +{ + "$schema": "./node_modules/oxfmt/configuration_schema.json", + "printWidth": 80, + "trailingComma": "none", + "singleQuote": true, + "useTabs": true, + "tabWidth": 2, + "ignorePatterns": ["**/*.json", "**/*.html", "**/*.md", "**/*.yml"] +} diff --git a/CHANGELOG.md b/CHANGELOG.md index 04b40ebc..721931e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -297,7 +297,6 @@ * [#270](https://github.com/preactjs/preact-render-to-string/pull/270) [`5c6877d`](https://github.com/preactjs/preact-render-to-string/commit/5c6877d13d60b4cdd87632ac3052b006207568ff) Thanks [@developit](https://github.com/developit)! - improve unmount option hook call performance - [#278](https://github.com/preactjs/preact-render-to-string/pull/278) [`8cf7cef`](https://github.com/preactjs/preact-render-to-string/commit/8cf7cef0e96b3e48ffea5fcf4f76db6410de8346) Thanks [@JoviDeCroock](https://github.com/JoviDeCroock)! - Improve performance by - - storing the void_elements in a Set - hoisting the `x-link` regex - remove case-insensitive from regexes and calling `.toLowerCase()` instead diff --git a/package-lock.json b/package-lock.json index 2e3224e4..50320102 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "preact-render-to-string", - "version": "6.6.4", + "version": "6.6.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "preact-render-to-string", - "version": "6.6.4", + "version": "6.6.6", "license": "MIT", "devDependencies": { "@babel/plugin-transform-react-jsx": "^7.12.12", @@ -22,9 +22,9 @@ "husky": "^4.3.6", "lint-staged": "^10.5.3", "microbundle": "^0.15.1", + "oxfmt": "^0.41.0", "oxlint": "^1.3.0", "preact": "^10.24.0", - "prettier": "^2.2.1", "pretty-format": "^3.8.0", "rollup": "^4.44.1", "typescript": "^5.0.0", @@ -52,7 +52,6 @@ "version": "7.12.10", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/generator": "^7.12.10", @@ -2430,6 +2429,329 @@ "node": ">= 8" } }, + "node_modules/@oxfmt/binding-android-arm-eabi": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm-eabi/-/binding-android-arm-eabi-0.41.0.tgz", + "integrity": "sha512-REfrqeMKGkfMP+m/ScX4f5jJBSmVNYcpoDF8vP8f8eYPDuPGZmzp56NIUsYmx3h7f6NzC6cE3gqh8GDWrJHCKw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-android-arm64": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm64/-/binding-android-arm64-0.41.0.tgz", + "integrity": "sha512-s0b1dxNgb2KomspFV2LfogC2XtSJB42POXF4bMCLJyvQmAGos4ZtjGPfQreToQEaY0FQFjz3030ggI36rF1q5g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-darwin-arm64": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-arm64/-/binding-darwin-arm64-0.41.0.tgz", + "integrity": "sha512-EGXGualADbv/ZmamE7/2DbsrYmjoPlAmHEpTL4vapLF4EfVD6fr8/uQDFnPJkUBjiSWFJZtFNsGeN1B6V3owmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-darwin-x64": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-x64/-/binding-darwin-x64-0.41.0.tgz", + "integrity": "sha512-WxySJEvdQQYMmyvISH3qDpTvoS0ebnIP63IMxLLWowJyPp/AAH0hdWtlo+iGNK5y3eVfa5jZguwNaQkDKWpGSw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-freebsd-x64": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-freebsd-x64/-/binding-freebsd-x64-0.41.0.tgz", + "integrity": "sha512-Y2kzMkv3U3oyuYaR4wTfGjOTYTXiFC/hXmG0yVASKkbh02BJkvD98Ij8bIevr45hNZ0DmZEgqiXF+9buD4yMYQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-arm-gnueabihf": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.41.0.tgz", + "integrity": "sha512-ptazDjdUyhket01IjPTT6ULS1KFuBfTUU97osTP96X5y/0oso+AgAaJzuH81oP0+XXyrWIHbRzozSAuQm4p48g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-arm-musleabihf": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.41.0.tgz", + "integrity": "sha512-UkoL2OKxFD+56bPEBcdGn+4juTW4HRv/T6w1dIDLnvKKWr6DbarB/mtHXlADKlFiJubJz8pRkttOR7qjYR6lTA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-arm64-gnu": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.41.0.tgz", + "integrity": "sha512-gofu0PuumSOHYczD8p62CPY4UF6ee+rSLZJdUXkpwxg6pILiwSDBIouPskjF/5nF3A7QZTz2O9KFNkNxxFN9tA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-arm64-musl": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.41.0.tgz", + "integrity": "sha512-VfVZxL0+6RU86T8F8vKiDBa+iHsr8PAjQmKGBzSCAX70b6x+UOMFl+2dNihmKmUwqkCazCPfYjt6SuAPOeQJ3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-ppc64-gnu": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.41.0.tgz", + "integrity": "sha512-bwzokz2eGvdfJbc0i+zXMJ4BBjQPqg13jyWpEEZDOrBCQ91r8KeY2Mi2kUeuMTZNFXju+jcAbAbpyJxRGla0eg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-riscv64-gnu": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.41.0.tgz", + "integrity": "sha512-POLM//PCH9uqDeNDwWL3b3DkMmI3oI2cU6hwc2lnztD1o7dzrQs3R9nq555BZ6wI7t2lyhT9CS+CRaz5X0XqLA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-riscv64-musl": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.41.0.tgz", + "integrity": "sha512-NNK7PzhFqLUwx/G12Xtm6scGv7UITvyGdAR5Y+TlqsG+essnuRWR4jRNODWRjzLZod0T3SayRbnkSIWMBov33w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-s390x-gnu": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.41.0.tgz", + "integrity": "sha512-qVf/zDC5cN9eKe4qI/O/m445er1IRl6swsSl7jHkqmOSVfknwCe5JXitYjZca+V/cNJSU/xPlC5EFMabMMFDpw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-x64-gnu": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.41.0.tgz", + "integrity": "sha512-ojxYWu7vUb6ysYqVCPHuAPVZHAI40gfZ0PDtZAMwVmh2f0V8ExpPIKoAKr7/8sNbAXJBBpZhs2coypIo2jJX4w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-x64-musl": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-musl/-/binding-linux-x64-musl-0.41.0.tgz", + "integrity": "sha512-O2exZLBxoCMIv2vlvcbkdedazJPTdG0VSup+0QUCfYQtx751zCZNboX2ZUOiQ/gDTdhtXvSiot0h6GEGkOyalA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-openharmony-arm64": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-openharmony-arm64/-/binding-openharmony-arm64-0.41.0.tgz", + "integrity": "sha512-N+31/VoL+z+NNBt8viy3I4NaIdPbiYeOnB884LKqvXldaE2dRztdPv3q5ipfZYv0RwFp7JfqS4I27K/DSHCakg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-win32-arm64-msvc": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.41.0.tgz", + "integrity": "sha512-Z7NAtu/RN8kjCQ1y5oDD0nTAeRswh3GJ93qwcW51srmidP7XPBmZbLlwERu1W5veCevQJtPS9xmkpcDTYsGIwQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-win32-ia32-msvc": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.41.0.tgz", + "integrity": "sha512-uNxxP3l4bJ6VyzIeRqCmBU2Q0SkCFgIhvx9/9dJ9V8t/v+jP1IBsuaLwCXGR8JPHtkj4tFp+RHtUmU2ZYAUpMA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-win32-x64-msvc": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.41.0.tgz", + "integrity": "sha512-49ZSpbZ1noozyPapE8SUOSm3IN0Ze4b5nkO+4+7fq6oEYQQJFhE0saj5k/Gg4oewVPdjn0L3ZFeWk2Vehjcw7A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, "node_modules/@oxlint/darwin-arm64": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@oxlint/darwin-arm64/-/darwin-arm64-1.3.0.tgz", @@ -3601,7 +3923,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", @@ -5099,7 +5420,6 @@ "version": "2.3.6", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-colors": "^4.1.1" }, @@ -7820,7 +8140,6 @@ "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", "dev": true, "license": "MIT", - "peer": true, "bin": { "rollup": "dist/bin/rollup" }, @@ -8237,6 +8556,56 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/oxfmt": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/oxfmt/-/oxfmt-0.41.0.tgz", + "integrity": "sha512-sKLdJZdQ3bw6x9qKiT7+eID4MNEXlDHf5ZacfIircrq6Qwjk0L6t2/JQlZZrVHTXJawK3KaMuBoJnEJPcqCEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinypool": "2.1.0" + }, + "bin": { + "oxfmt": "bin/oxfmt" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxfmt/binding-android-arm-eabi": "0.41.0", + "@oxfmt/binding-android-arm64": "0.41.0", + "@oxfmt/binding-darwin-arm64": "0.41.0", + "@oxfmt/binding-darwin-x64": "0.41.0", + "@oxfmt/binding-freebsd-x64": "0.41.0", + "@oxfmt/binding-linux-arm-gnueabihf": "0.41.0", + "@oxfmt/binding-linux-arm-musleabihf": "0.41.0", + "@oxfmt/binding-linux-arm64-gnu": "0.41.0", + "@oxfmt/binding-linux-arm64-musl": "0.41.0", + "@oxfmt/binding-linux-ppc64-gnu": "0.41.0", + "@oxfmt/binding-linux-riscv64-gnu": "0.41.0", + "@oxfmt/binding-linux-riscv64-musl": "0.41.0", + "@oxfmt/binding-linux-s390x-gnu": "0.41.0", + "@oxfmt/binding-linux-x64-gnu": "0.41.0", + "@oxfmt/binding-linux-x64-musl": "0.41.0", + "@oxfmt/binding-openharmony-arm64": "0.41.0", + "@oxfmt/binding-win32-arm64-msvc": "0.41.0", + "@oxfmt/binding-win32-ia32-msvc": "0.41.0", + "@oxfmt/binding-win32-x64-msvc": "0.41.0" + } + }, + "node_modules/oxfmt/node_modules/tinypool": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-2.1.0.tgz", + "integrity": "sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.0.0 || >=22.0.0" + } + }, "node_modules/oxlint": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.3.0.tgz", @@ -8538,7 +8907,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -11041,7 +11409,6 @@ "resolved": "https://registry.npmjs.org/preact/-/preact-10.27.0.tgz", "integrity": "sha512-/DTYoB6mwwgPytiqQTh/7SFRL98ZdiD8Sk8zIUVOxtwq4oWcwrcd1uno9fE/zZmUaUrFNYzbH14CPebOz9tZQw==", "dev": true, - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" @@ -11118,17 +11485,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/prettier": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/pretty-bytes": { "version": "5.5.0", "dev": true, @@ -11495,7 +11851,6 @@ "integrity": "sha512-x8H8aPvD+xbl0Do8oez5f5o8eMS3trfCghc4HhLAnCkj7Vl0d1JWGs0UF/D886zLW2rOj2QymV/JcSSsw+XDNg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -13131,7 +13486,6 @@ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -13499,7 +13853,6 @@ "version": "5.0.2", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -13713,7 +14066,6 @@ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -13994,7 +14346,6 @@ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -14008,7 +14359,6 @@ "integrity": "sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.6", diff --git a/package.json b/package.json index 6d24d8a8..6a16d8a2 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "test": "oxlint && tsc && npm run test:vitest:run && npm run bench", "test:vitest": "vitest", "test:vitest:run": "vitest run", - "format": "prettier src/**/*.{d.ts,js} test/**/*.{js,jsx} --write", + "format": "oxfmt --write .", "prepublishOnly": "npm run build", "release": "npm run build && git commit -am $npm_package_version && git tag $npm_package_version && git push && git push --tags && npm publish" }, @@ -123,22 +123,16 @@ "microbundle": "^0.15.1", "oxlint": "^1.3.0", "preact": "^10.24.0", - "prettier": "^2.2.1", + "oxfmt": "^0.41.0", "pretty-format": "^3.8.0", "rollup": "^4.44.1", "typescript": "^5.0.0", "vitest": "^3.2.4", "web-streams-polyfill": "^3.2.1" }, - "prettier": { - "singleQuote": true, - "trailingComma": "none", - "useTabs": true, - "tabWidth": 2 - }, "lint-staged": { "**/*.{js,jsx,ts,tsx,yml}": [ - "prettier --write" + "oxfmt --write" ] }, "husky": { diff --git a/src/index.js b/src/index.js index 090c9dd6..8437d7e1 100644 --- a/src/index.js +++ b/src/index.js @@ -159,7 +159,10 @@ export async function renderToStringAsync(vnode, context) { * @param {Record} context */ function renderClassComponent(vnode, context) { - let type = /** @type {import("preact").ComponentClass} */ (vnode.type); + let type = + /** @type {import("preact").ComponentClass} */ ( + vnode.type + ); let isMounting = true; let c; diff --git a/src/lib/util.js b/src/lib/util.js index 4be4e192..933c392c 100644 --- a/src/lib/util.js +++ b/src/lib/util.js @@ -1,11 +1,14 @@ import { DIRTY, BITS } from './constants'; -export const VOID_ELEMENTS = /^(?:area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/; +export const VOID_ELEMENTS = + /^(?:area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/; // oxlint-disable-next-line no-control-regex export const UNSAFE_NAME = /[\s\n\\/='"\0<>]/; export const NAMESPACE_REPLACE_REGEX = /^(xlink|xmlns|xml)([A-Z])/; -export const HTML_LOWER_CASE = /^(?:accessK|auto[A-Z]|cell|ch|col|cont|cross|dateT|encT|form[A-Z]|frame|hrefL|inputM|maxL|minL|noV|playsI|popoverT|readO|rowS|src[A-Z]|tabI|useM|item[A-Z])/; -export const SVG_CAMEL_CASE = /^ac|^ali|arabic|basel|cap|clipPath$|clipRule$|color|dominant|enable|fill|flood|font|glyph[^R]|horiz|image|letter|lighting|marker[^WUH]|overline|panose|pointe|paint|rendering|shape|stop|strikethrough|stroke|text[^L]|transform|underline|unicode|units|^v[^i]|^w|^xH/; +export const HTML_LOWER_CASE = + /^(?:accessK|auto[A-Z]|cell|ch|col|cont|cross|dateT|encT|form[A-Z]|frame|hrefL|inputM|maxL|minL|noV|playsI|popoverT|readO|rowS|src[A-Z]|tabI|useM|item[A-Z])/; +export const SVG_CAMEL_CASE = + /^ac|^ali|arabic|basel|cap|clipPath$|clipRule$|color|dominant|enable|fill|flood|font|glyph[^R]|horiz|image|letter|lighting|marker[^WUH]|overline|panose|pointe|paint|rendering|shape|stop|strikethrough|stroke|text[^L]|transform|underline|unicode|units|^v[^i]|^w|^xH/; // Boolean DOM properties that translate to enumerated ('true'/'false') attributes export const HTML_ENUMERATED = new Set(['draggable', 'spellcheck']); @@ -130,7 +133,7 @@ export function styleObjToCss(s) { prop[0] == '-' ? prop : JS_TO_CSS[prop] || - (JS_TO_CSS[prop] = prop.replace(CSS_REGEX, '-$&').toLowerCase()); + (JS_TO_CSS[prop] = prop.replace(CSS_REGEX, '-$&').toLowerCase()); let suffix = ';'; if ( diff --git a/src/pretty.js b/src/pretty.js index fe630744..dc2aa2ad 100644 --- a/src/pretty.js +++ b/src/pretty.js @@ -208,8 +208,8 @@ function _renderToStringPretty( c._nextState !== c.state ? c._nextState : c.__s !== c.state - ? c.__s - : c.state; + ? c.__s + : c.state; } if (renderHook) renderHook(vnode); @@ -401,8 +401,8 @@ function _renderToStringPretty( nodeName === 'svg' ? true : nodeName === 'foreignObject' - ? false - : isSvgMode, + ? false + : isSvgMode, ret = _renderToStringPretty( child, context, diff --git a/test/compat/async.test.jsx b/test/compat/async.test.jsx index 0dd1ae95..615c6fdf 100644 --- a/test/compat/async.test.jsx +++ b/test/compat/async.test.jsx @@ -50,14 +50,10 @@ describe('Async renderToString', () => { }); it('should render JSX with nested suspended components', async () => { - const { - Suspender: SuspenderOne, - suspended: suspendedOne - } = createSuspender(); - const { - Suspender: SuspenderTwo, - suspended: suspendedTwo - } = createSuspender(); + const { Suspender: SuspenderOne, suspended: suspendedOne } = + createSuspender(); + const { Suspender: SuspenderTwo, suspended: suspendedTwo } = + createSuspender(); const promise = renderToStringAsync(
    @@ -84,14 +80,10 @@ describe('Async renderToString', () => { }); it('should render JSX with nested suspense boundaries', async () => { - const { - Suspender: SuspenderOne, - suspended: suspendedOne - } = createSuspender(); - const { - Suspender: SuspenderTwo, - suspended: suspendedTwo - } = createSuspender(); + const { Suspender: SuspenderOne, suspended: suspendedOne } = + createSuspender(); + const { Suspender: SuspenderTwo, suspended: suspendedTwo } = + createSuspender(); const promise = renderToStringAsync(
      @@ -120,18 +112,12 @@ describe('Async renderToString', () => { }); it('should render JSX with nested suspense boundaries containing multiple suspending components', async () => { - const { - Suspender: SuspenderOne, - suspended: suspendedOne - } = createSuspender(); - const { - Suspender: SuspenderTwo, - suspended: suspendedTwo - } = createSuspender(); - const { - Suspender: SuspenderThree, - suspended: suspendedThree - } = createSuspender('three'); + const { Suspender: SuspenderOne, suspended: suspendedOne } = + createSuspender(); + const { Suspender: SuspenderTwo, suspended: suspendedTwo } = + createSuspender(); + const { Suspender: SuspenderThree, suspended: suspendedThree } = + createSuspender('three'); const promise = renderToStringAsync(
        @@ -165,18 +151,12 @@ describe('Async renderToString', () => { }); it('should render JSX with deeply nested suspense boundaries', async () => { - const { - Suspender: SuspenderOne, - suspended: suspendedOne - } = createSuspender(); - const { - Suspender: SuspenderTwo, - suspended: suspendedTwo - } = createSuspender(); - const { - Suspender: SuspenderThree, - suspended: suspendedThree - } = createSuspender(); + const { Suspender: SuspenderOne, suspended: suspendedOne } = + createSuspender(); + const { Suspender: SuspenderTwo, suspended: suspendedTwo } = + createSuspender(); + const { Suspender: SuspenderThree, suspended: suspendedThree } = + createSuspender(); const promise = renderToStringAsync(
          @@ -212,18 +192,12 @@ describe('Async renderToString', () => { }); it('should render JSX with multiple suspended direct children within a single suspense boundary', async () => { - const { - Suspender: SuspenderOne, - suspended: suspendedOne - } = createSuspender(); - const { - Suspender: SuspenderTwo, - suspended: suspendedTwo - } = createSuspender(); - const { - Suspender: SuspenderThree, - suspended: suspendedThree - } = createSuspender(); + const { Suspender: SuspenderOne, suspended: suspendedOne } = + createSuspender(); + const { Suspender: SuspenderTwo, suspended: suspendedTwo } = + createSuspender(); + const { Suspender: SuspenderThree, suspended: suspendedThree } = + createSuspender(); const promise = renderToStringAsync(
            @@ -255,18 +229,12 @@ describe('Async renderToString', () => { }); it('should render JSX with multiple suspended direct children within a single suspense boundary that resolve one-after-another', async () => { - const { - Suspender: SuspenderOne, - suspended: suspendedOne - } = createSuspender(); - const { - Suspender: SuspenderTwo, - suspended: suspendedTwo - } = createSuspender(); - const { - Suspender: SuspenderThree, - suspended: suspendedThree - } = createSuspender(); + const { Suspender: SuspenderOne, suspended: suspendedOne } = + createSuspender(); + const { Suspender: SuspenderTwo, suspended: suspendedTwo } = + createSuspender(); + const { Suspender: SuspenderThree, suspended: suspendedThree } = + createSuspender(); const promise = renderToStringAsync(
              diff --git a/test/render.test.jsx b/test/render.test.jsx index 39ce2f72..0122d4e5 100644 --- a/test/render.test.jsx +++ b/test/render.test.jsx @@ -726,16 +726,12 @@ describe('render', () => { render(); - expect( - Inner.prototype.render - ).toHaveBeenCalledWith( + expect(Inner.prototype.render).toHaveBeenCalledWith( expect.objectContaining({}), expect.objectContaining({}), { outerContext } ); - expect( - InnerMost.prototype.render - ).toHaveBeenCalledWith( + expect(InnerMost.prototype.render).toHaveBeenCalledWith( expect.objectContaining({}), expect.objectContaining({}), { outerContext, innerContext }