Manifest
User guide
- Getting Started
Api
Concepts
Configurations
Configuring webhint
Connectors
Development flow integration
Extensions
Formatters
Hints
- Avoid CSS limits
- Avoid HTTP redirects
- axe accessibility check
- Babel configuration hint set
- Compatibility of CSS, HTML and JavaScript features
- Correct `Content-Type` header
- Correct manifest extension
- Correct viewport
- Detect CSS Reflows
- Disallowed HTTP headers
- External links disown opener
- Has web app manifest
- Highest document mode
- HTTP cache
- Leading '.' in `classList.add` or `classList.remove`
- Manifest has name
- Minify JavaScript
- Modern DOCTYPE
- No `createElement` with SVG
- No `P3P` headers
- No broken links
- No byte-order mark
- No Inline CSS Styles
- No protocol-relative URLs
- No small error pages
- No vulnerable libraries
- Nu HTML test
- Optimal compression
- Optimize images
- Performance budget
- Prefixed CSS first
- scoped-svg-styles
- Specify button type
- SSL server test
- TypeScript configuration hints set
- Unneeded HTTP headers
- Use `Strict-Transport-Security` header
- Use `X-Content-Type-Options` header
- Use Apple touch icon
- Use charset `utf-8`
- Use HTTPS
- Use subresource integrity
- Valid `Set-Cookie` header
- Valid `theme-color`
- Valid manifest
- webpack configuration hints set
Parsers
Server configurations
Troubleshoot
- Api
- Concepts
- Configurations
- Configuring webhint
- Connectors
- Development flow integration
- Extensions
- Formatters
- Hints
- Parsers
- Server configurations
- Troubleshoot
Manifest (@hint/parser-manifest
)
The manifest
parser detects if a web app manifest file was
specified, and if so, it will try to fetch it, parse and check if its
content is valid.
This package is installed automatically by webhint:
npm install hint --save-dev |
To use it, activate it via the .hintrc
configuration file:
{
"connector": {...},
"formatters": [...],
"hints": {
...
},
"parsers": ["manifest"],
...
} |
Note: The recommended way of running webhint is as a devDependency
of
your project.
Events emitted
The following events are emitted by the parser
:
fetch::start::manifest
Event is of type FetchStart
and is emitted when the
parser starts downloading the web app manifest file.
fetch::end::manifest
Event is of type FetchEnd
and is emitted when the parser
successfully downloaded the web app manifest file.
fetch::error::manifest
Event is of type FetchError
and is emitted when the
parser encounters a problem trying to fetch the web app manifest file.
parse::end::manifest
Event is emitted when the parser successfully completed parsing the web app manifest file.
Format:
export type ManifestParsed = FetchEnd & {
/** The content of manifest parsed */
parsedContent: Manifest;
}; |
parse::error::manifest::json
Event is emitted when the content of the web app manifest file is not valid JSON.
Format:
export type ManifestInvalidJSON = ErrorEvent & {
/** The parse JSON error. */
error: Error;
}; |
parse::error::manifest::schema
Event is emitted when the content of the web app manifest file is not valid according to the schema.
Format:
export type ManifestInvalidSchema = ErrorEvent & {
/** The parse errors as returned by ajv. */
errors: ajv.ErrorObject[];
/** The errors in a more human readable format. */
prettifiedErrors: string[];
}; |
Types
If you need to import any type or enum defined in this parser, you just need to import them as follows:
import { TypeOrEnumYouWantToUse } from '@hint/parser-manifest'; |