diff --git a/package.json b/package.json index 172147a..d1d020a 100644 --- a/package.json +++ b/package.json @@ -60,6 +60,7 @@ "@typescript-eslint/eslint-plugin-tslint": "latest", "@typescript-eslint/parser": "latest", "blanket": "latest", + "boolbase": "^1.0.0", "cheerio": "^1.0.0-rc.12", "cross-env": "^7.0.3", "eslint": "^8.23.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a0b92fc..d0d166e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,19 +21,22 @@ devDependencies: version: 1.2.0 '@types/node': specifier: latest - version: 20.5.0 + version: 20.6.1 '@typescript-eslint/eslint-plugin': specifier: latest - version: 6.4.0(@typescript-eslint/parser@6.4.0)(eslint@8.23.1)(typescript@5.1.6) + version: 6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.23.1)(typescript@5.2.2) '@typescript-eslint/eslint-plugin-tslint': specifier: latest - version: 6.4.0(eslint@8.23.1)(tslint@6.1.3)(typescript@5.1.6) + version: 6.7.0(eslint@8.23.1)(tslint@6.1.3)(typescript@5.2.2) '@typescript-eslint/parser': specifier: latest - version: 6.4.0(eslint@8.23.1)(typescript@5.1.6) + version: 6.7.0(eslint@8.23.1)(typescript@5.2.2) blanket: specifier: latest version: 1.2.3 + boolbase: + specifier: ^1.0.0 + version: 1.0.0 cheerio: specifier: ^1.0.0-rc.12 version: 1.0.0-rc.12 @@ -48,7 +51,7 @@ devDependencies: version: 9.0.0(eslint@8.23.1) eslint-plugin-import: specifier: latest - version: 2.28.0(@typescript-eslint/parser@6.4.0)(eslint@8.23.1) + version: 2.28.1(@typescript-eslint/parser@6.7.0)(eslint@8.23.1) high5: specifier: ^1.0.0 version: 1.0.0 @@ -108,10 +111,10 @@ devDependencies: version: 0.2.5 ts-node: specifier: ^10.9.1 - version: 10.9.1(@types/node@20.5.0)(typescript@5.1.6) + version: 10.9.1(@types/node@20.6.1)(typescript@5.2.2) typescript: specifier: latest - version: 5.1.6 + version: 5.2.2 packages: @@ -344,7 +347,7 @@ packages: dependencies: '@types/http-cache-semantics': 4.0.1 '@types/keyv': 3.1.4 - '@types/node': 20.5.0 + '@types/node': 20.6.1 '@types/responselike': 1.0.0 dev: true @@ -374,15 +377,15 @@ packages: /@types/keyv@3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 20.5.0 + '@types/node': 20.6.1 dev: true /@types/minimist@1.2.2: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true - /@types/node@20.5.0: - resolution: {integrity: sha512-Mgq7eCtoTjT89FqNoTzzXg2XvCi5VMhRV6+I2aYanc6kQCBImeNaAYRs/DyoVqk1YEUJK5gN9VO7HRIdz4Wo3Q==} + /@types/node@20.6.1: + resolution: {integrity: sha512-4LcJvuXQlv4lTHnxwyHQZ3uR9Zw2j7m1C9DfuwoTFQQP4Pmu04O6IfLYgMmHoOCt0nosItLLZAH+sOrRE0Bo8g==} dev: true /@types/normalize-package-data@2.4.1: @@ -392,31 +395,31 @@ packages: /@types/responselike@1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: - '@types/node': 20.5.0 + '@types/node': 20.6.1 dev: true /@types/semver@7.5.0: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@typescript-eslint/eslint-plugin-tslint@6.4.0(eslint@8.23.1)(tslint@6.1.3)(typescript@5.1.6): - resolution: {integrity: sha512-qLVvVpLH2Cin5+KMMwlzF98P6DNkcErcECBQbQ95tn9Mc8CM8xxOfCwfvXC9/rPAQd1cvk/U7Ki8cHN8sEt5OA==} + /@typescript-eslint/eslint-plugin-tslint@6.7.0(eslint@8.23.1)(tslint@6.1.3)(typescript@5.2.2): + resolution: {integrity: sha512-8S9eA4DLbovlNAjYH/bY6DsGRZpnZI6Jx0NWJGV/zPg5Kc36Idm/EMehhF5nvqKuvdC88fwOLEFWaTBso1whlA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 tslint: ^5.0.0 || ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/utils': 6.4.0(eslint@8.23.1)(typescript@5.1.6) + '@typescript-eslint/utils': 6.7.0(eslint@8.23.1)(typescript@5.2.2) eslint: 8.23.1 - tslint: 6.1.3(typescript@5.1.6) - typescript: 5.1.6 + tslint: 6.1.3(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/eslint-plugin@6.4.0(@typescript-eslint/parser@6.4.0)(eslint@8.23.1)(typescript@5.1.6): - resolution: {integrity: sha512-62o2Hmc7Gs3p8SLfbXcipjWAa6qk2wZGChXG2JbBtYpwSRmti/9KHLqfbLs9uDigOexG+3PaQ9G2g3201FWLKg==} + /@typescript-eslint/eslint-plugin@6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.23.1)(typescript@5.2.2): + resolution: {integrity: sha512-gUqtknHm0TDs1LhY12K2NA3Rmlmp88jK9Tx8vGZMfHeNMLE3GH2e9TRub+y+SOjuYgtOmok+wt1AyDPZqxbNag==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -427,25 +430,25 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.4.0(eslint@8.23.1)(typescript@5.1.6) - '@typescript-eslint/scope-manager': 6.4.0 - '@typescript-eslint/type-utils': 6.4.0(eslint@8.23.1)(typescript@5.1.6) - '@typescript-eslint/utils': 6.4.0(eslint@8.23.1)(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.4.0 + '@typescript-eslint/parser': 6.7.0(eslint@8.23.1)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.7.0 + '@typescript-eslint/type-utils': 6.7.0(eslint@8.23.1)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.0(eslint@8.23.1)(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.7.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.23.1 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.1(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.4.0(eslint@8.23.1)(typescript@5.1.6): - resolution: {integrity: sha512-I1Ah1irl033uxjxO9Xql7+biL3YD7w9IU8zF+xlzD/YxY6a4b7DYA08PXUUCbm2sEljwJF6ERFy2kTGAGcNilg==} + /@typescript-eslint/parser@6.7.0(eslint@8.23.1)(typescript@5.2.2): + resolution: {integrity: sha512-jZKYwqNpNm5kzPVP5z1JXAuxjtl2uG+5NpaMocFPTNC2EdYIgbXIPImObOkhbONxtFTTdoZstLZefbaK+wXZng==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -454,27 +457,27 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.4.0 - '@typescript-eslint/types': 6.4.0 - '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.4.0 + '@typescript-eslint/scope-manager': 6.7.0 + '@typescript-eslint/types': 6.7.0 + '@typescript-eslint/typescript-estree': 6.7.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.7.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.23.1 - typescript: 5.1.6 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@6.4.0: - resolution: {integrity: sha512-TUS7vaKkPWDVvl7GDNHFQMsMruD+zhkd3SdVW0d7b+7Zo+bd/hXJQ8nsiUZMi1jloWo6c9qt3B7Sqo+flC1nig==} + /@typescript-eslint/scope-manager@6.7.0: + resolution: {integrity: sha512-lAT1Uau20lQyjoLUQ5FUMSX/dS07qux9rYd5FGzKz/Kf8W8ccuvMyldb8hadHdK/qOI7aikvQWqulnEq2nCEYA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.4.0 - '@typescript-eslint/visitor-keys': 6.4.0 + '@typescript-eslint/types': 6.7.0 + '@typescript-eslint/visitor-keys': 6.7.0 dev: true - /@typescript-eslint/type-utils@6.4.0(eslint@8.23.1)(typescript@5.1.6): - resolution: {integrity: sha512-TvqrUFFyGY0cX3WgDHcdl2/mMCWCDv/0thTtx/ODMY1QhEiyFtv/OlLaNIiYLwRpAxAtOLOY9SUf1H3Q3dlwAg==} + /@typescript-eslint/type-utils@6.7.0(eslint@8.23.1)(typescript@5.2.2): + resolution: {integrity: sha512-f/QabJgDAlpSz3qduCyQT0Fw7hHpmhOzY/Rv6zO3yO+HVIdPfIWhrQoAyG+uZVtWAIS85zAyzgAFfyEr+MgBpg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -483,23 +486,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.1.6) - '@typescript-eslint/utils': 6.4.0(eslint@8.23.1)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.7.0(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.0(eslint@8.23.1)(typescript@5.2.2) debug: 4.3.4(supports-color@8.1.1) eslint: 8.23.1 - ts-api-utils: 1.0.1(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.1(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.4.0: - resolution: {integrity: sha512-+FV9kVFrS7w78YtzkIsNSoYsnOtrYVnKWSTVXoL1761CsCRv5wpDOINgsXpxD67YCLZtVQekDDyaxfjVWUJmmg==} + /@typescript-eslint/types@6.7.0: + resolution: {integrity: sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.4.0(typescript@5.1.6): - resolution: {integrity: sha512-iDPJArf/K2sxvjOR6skeUCNgHR/tCQXBsa+ee1/clRKr3olZjZ/dSkXPZjG6YkPtnW6p5D1egeEPMCW6Gn4yLA==} + /@typescript-eslint/typescript-estree@6.7.0(typescript@5.2.2): + resolution: {integrity: sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -507,20 +510,20 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.4.0 - '@typescript-eslint/visitor-keys': 6.4.0 + '@typescript-eslint/types': 6.7.0 + '@typescript-eslint/visitor-keys': 6.7.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.1(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.4.0(eslint@8.23.1)(typescript@5.1.6): - resolution: {integrity: sha512-BvvwryBQpECPGo8PwF/y/q+yacg8Hn/2XS+DqL/oRsOPK+RPt29h5Ui5dqOKHDlbXrAeHUTnyG3wZA0KTDxRZw==} + /@typescript-eslint/utils@6.7.0(eslint@8.23.1)(typescript@5.2.2): + resolution: {integrity: sha512-MfCq3cM0vh2slSikQYqK2Gq52gvOhe57vD2RM3V4gQRZYX4rDPnKLu5p6cm89+LJiGlwEXU8hkYxhqqEC/V3qA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -528,9 +531,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.23.1) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 6.4.0 - '@typescript-eslint/types': 6.4.0 - '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.1.6) + '@typescript-eslint/scope-manager': 6.7.0 + '@typescript-eslint/types': 6.7.0 + '@typescript-eslint/typescript-estree': 6.7.0(typescript@5.2.2) eslint: 8.23.1 semver: 7.5.4 transitivePeerDependencies: @@ -538,11 +541,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.4.0: - resolution: {integrity: sha512-yJSfyT+uJm+JRDWYRYdCm2i+pmvXJSMtPR9Cq5/XQs4QIgNoLcoRtDdzsLbLsFM/c6um6ohQkg/MLxWvoIndJA==} + /@typescript-eslint/visitor-keys@6.7.0: + resolution: {integrity: sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/types': 6.7.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1850,7 +1853,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.4.0)(eslint-import-resolver-node@0.3.9)(eslint@8.23.1): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.7.0)(eslint-import-resolver-node@0.3.9)(eslint@8.23.1): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1871,7 +1874,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.4.0(eslint@8.23.1)(typescript@5.1.6) + '@typescript-eslint/parser': 6.7.0(eslint@8.23.1)(typescript@5.2.2) debug: 3.2.7 eslint: 8.23.1 eslint-import-resolver-node: 0.3.9 @@ -1879,8 +1882,8 @@ packages: - supports-color dev: true - /eslint-plugin-import@2.28.0(@typescript-eslint/parser@6.4.0)(eslint@8.23.1): - resolution: {integrity: sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==} + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.7.0)(eslint@8.23.1): + resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -1889,7 +1892,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.4.0(eslint@8.23.1)(typescript@5.1.6) + '@typescript-eslint/parser': 6.7.0(eslint@8.23.1)(typescript@5.2.2) array-includes: 3.1.6 array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 @@ -1898,7 +1901,7 @@ packages: doctrine: 2.1.0 eslint: 8.23.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.4.0)(eslint-import-resolver-node@0.3.9)(eslint@8.23.1) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.0)(eslint-import-resolver-node@0.3.9)(eslint@8.23.1) has: 1.0.3 is-core-module: 2.13.0 is-glob: 4.0.3 @@ -1906,7 +1909,6 @@ packages: object.fromentries: 2.0.6 object.groupby: 1.0.0 object.values: 1.1.6 - resolve: 1.22.4 semver: 6.3.1 tsconfig-paths: 3.14.2 transitivePeerDependencies: @@ -4972,16 +4974,16 @@ packages: engines: {node: '>=14.16'} dev: true - /ts-api-utils@1.0.1(typescript@5.1.6): + /ts-api-utils@1.0.1(typescript@5.2.2): resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.1.6 + typescript: 5.2.2 dev: true - /ts-node@10.9.1(@types/node@20.5.0)(typescript@5.1.6): + /ts-node@10.9.1(@types/node@20.6.1)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -5000,14 +5002,14 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.5.0 + '@types/node': 20.6.1 acorn: 8.10.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.1.6 + typescript: 5.2.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -5029,7 +5031,7 @@ packages: resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} dev: true - /tslint@6.1.3(typescript@5.1.6): + /tslint@6.1.3(typescript@5.2.2): resolution: {integrity: sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==} engines: {node: '>=4.8.0'} deprecated: TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information. @@ -5049,17 +5051,17 @@ packages: resolve: 1.22.4 semver: 5.7.2 tslib: 1.14.1 - tsutils: 2.29.0(typescript@5.1.6) - typescript: 5.1.6 + tsutils: 2.29.0(typescript@5.2.2) + typescript: 5.2.2 dev: true - /tsutils@2.29.0(typescript@5.1.6): + /tsutils@2.29.0(typescript@5.2.2): resolution: {integrity: sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==} peerDependencies: typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev' dependencies: tslib: 1.14.1 - typescript: 5.1.6 + typescript: 5.2.2 dev: true /type-check@0.4.0: @@ -5174,8 +5176,8 @@ packages: types-json: 1.2.2 dev: true - /typescript@5.1.6: - resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} hasBin: true dev: true diff --git a/src/nodes/html.ts b/src/nodes/html.ts index 20a86e0..c8eebe8 100644 --- a/src/nodes/html.ts +++ b/src/nodes/html.ts @@ -996,11 +996,9 @@ export function base_parse(data: string, options = {} as Partial) { style: true, pre: true, }; - const element_names = Object.keys(elements).filter((name) => { - return Boolean(elements[name]); - }); + const element_names = Object.keys(elements); const kBlockTextElements = element_names.map((it) => new RegExp(`^${it}$`, 'i')); - const kIgnoreElements = element_names.filter((it) => elements[it]).map((it) => new RegExp(`^${it}$`, 'i')); + const kIgnoreElements = element_names.filter((it) => Boolean(elements[it])).map((it) => new RegExp(`^${it}$`, 'i')); function element_should_be_ignore(tag: string) { return kIgnoreElements.some((it) => it.test(tag)); diff --git a/test/tests/issues/242.js b/test/tests/issues/242.js index ab221be..7c4fd67 100644 --- a/test/tests/issues/242.js +++ b/test/tests/issues/242.js @@ -16,14 +16,32 @@ describe('issue 242', function () { `; const root = parse(html, { blockTextElements: { - script: true, - noscript: true, - style: true, - pre: false } }); const list = root.getElementsByTagName("code"); const [code] = list; code.text.should.eql('test'); }); + it(`do not block text element`, function () { + const htmlString = "sample text inside tags " + + const root = parse(htmlString, { + blockTextElements: { + script: false + } + }); + + root.text.should.eql('sample text inside tags '); + }); + it(`block text element`, function () { + const htmlString = "sample text inside tags " + + const root = parse(htmlString, { + blockTextElements: { + script: true + } + }); + + root.text.should.eql('sample text inside tags text inside script'); + }); });