chore(deps): update dependency html-validate to v9
This MR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
html-validate (source) | devDependencies | major | 8.29.0 -> 9.1.0 |
Release Notes
html-validate/html-validate (html-validate)
v9.1.0
Features
- deps: update dependency ignore to v7 (43ae9ac)
Bug Fixes
- use jest worker for
toMatchCodeframe
(3c29ad5)
v9.0.1
Bug Fixes
- fix
validateMultipleFiles
incorrectly using sync API (0c26918)
v9.0.0
ESM support has finally landed in HTML-Validate V9!
- Configuration files (using
.htmlvalidate.mjs
or when"type"
is"module"
inpackage.json
). - Plugins, element metadata, shared configurations and transformers can be written natively in ESM.
This release is primarly breaking for API uses but some configuration changes might be required (see below).
For API users the TL;DR version is most functions can return a Promise
so make sure to await
it.
⚠ BREAKING CHANGES
-
meta: The deprecated metadata property expressions have been removed and can be replaced with callback functions. This gives greater control for the metadata author, provides better IDE support and is more reusable when querying the metadata directly.
-
api:
Config.merge(..)
will return aPromise
when used with an async loader or resolver. -
config: This change affects all users. The following deprecated configuration presets has been removed:
htmlvalidate:recommended
htmlvalidate:document
html-validate:a17y
-
cli: CLI uses ESM (with
esmResolver
). For most part this shouldn't affect anything but in some cases you might need slight configuration migration. See Migration Guide for details.
refactor(cli): use ESM in CLI
- deps: Requires NodeJS v18 or later.
-
api: The deprecated
tag:open
andtag:close
events has been removed, usetag:begin
andtag:end
instead. -
api: The
Config.resolve()
method can return aPromise
if any underlying loader or resolver has returned aPromise
.
It is recommended to assume it returns a Promise
and always await
the
result:
-const resolved = config.resolve();
+const resolved = await config.resolve();
If you need synchronous code ensure the configuration, the loader and the
resolver all returns synchronous results, e.g. the staticResolver
with
synchronous code.
-
api: The
HtmlValidate.getConfigurationSchema()
method is now async and returns aPromise
. If you use this method you need to await the result:
-const schema = htmlvalidate.getConfigurationSchema();
+const schema = await htmlvalidate.getConfigurationSchema();
-
api: If you are writing your own transformers they may now
optionally return a
Promise
. If you are usingtest-utils
to write unit tests you must now resolve the promise.
import { transformSource } from "html-validate/test-utils";
-const result = transformSource(transformer, source);
+const result = await transformSource(transformer, source);
This is no matter if your transformer is actually async or not.
-
api: The
CLI.isIgnored(..)
method has been removed from the public API. There is no replacement. If you need this method open an issue describing the use-case. -
api: If you are using the
CLI
class most methods are now async and returnsPromise
. There is no synchronous version of these API calls. -
api:
Config.fromFile(..)
andConfig.fromObject(..)
will return a Promise when used with an async loader or resolver. -
api:
ConfigLoader
methods can optionally return aPromise
for async operation. For most use-cases this will not require any changes. -
api: The
ConfigLoader.globalConfig
property has been replaced withConfigLoader.getGlobalConfig()
(async) andConfigLoader.getGlobalConfigSync()
(sync). -
api: The redundant and deprecated
Config.init()
method has been removed.
Remove any calls to the method:
const config = Config.fromObject({ /* ... */ });
-config.init();
Features
-
api:
CLI.isIgnored()
made private (9e3679a) -
api:
CLI
methods async and return Promise (677c73e) -
api:
Config.fromFile
andConfig.fromObject
can returnPromise
(b126361) -
api:
Config.merge(..)
can returnPromise
(cccb313) -
api:
Config.resolve()
can returnPromise
(09159f3) -
api:
ConfigLoader
s can optionally returnPromise
for async operation (6041581) -
api:
FileSystemConfigLoader
usesesmResolver
by default (dd4cfb1) -
api:
HtmlValidate.getConfigurationSchema()
returns promise (f10ec1a) - api: allow transformers to return single source (fd126da)
-
api: new
esmResolver
usingimport(..)
(available for both nodejs and browser) (81b4777), closes #230 -
api: remove deprecated
Config.init()
(0bd8ab7) -
api: remove deprecated
tag:open
andtag:close
events (88ac65e) -
api: replace
ConfigLoader.globalConfig
withConfigLoader.getGlobalConfig()
(a64935a) -
api: resolvers may optionally return
Promise
for async operation (fe3c6a6) -
api: transformers may optionally return
Promise
for async operation (823da19) -
cli: cli uses esm (with
esmResolver
) (3e4759e) - config: remove deprecated configuration presets (dbf5cf4)
-
config: support
.htmlvalidate.mjs
configuration files (0ffd9b5), closes #125 - deps: require node 18 or later (d4f3bcb)
- meta: remove deprecated property expressions (a77043c)
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.