What is yaml-lint?
The 'yaml-lint' npm package is a tool for validating YAML files. It checks for syntax errors and ensures that the YAML content is properly formatted. This is particularly useful for developers who work with YAML configuration files and need to ensure their correctness.
What are yaml-lint's main functionalities?
Linting YAML files
This feature allows you to lint a YAML string to check for syntax errors. If the YAML content is valid, it will log 'YAML is valid'. If there are any errors, it will catch them and log 'YAML is invalid' along with the error details.
const yamlLint = require('yaml-lint');
const yamlContent = `
foo: bar
baz: qux
`;
yamlLint.lint(yamlContent)
.then(() => {
console.log('YAML is valid');
})
.catch((error) => {
console.error('YAML is invalid:', error);
});
Linting YAML files from the filesystem
This feature allows you to lint a YAML file from the filesystem. It reads the file content and checks for syntax errors. If the file is valid, it will log 'YAML file is valid'. If there are any errors, it will catch them and log 'YAML file is invalid' along with the error details.
const yamlLint = require('yaml-lint');
const fs = require('fs');
const yamlFilePath = 'path/to/your/file.yaml';
fs.readFile(yamlFilePath, 'utf8', (err, data) => {
if (err) throw err;
yamlLint.lint(data)
.then(() => {
console.log('YAML file is valid');
})
.catch((error) => {
console.error('YAML file is invalid:', error);
});
});
Other packages similar to yaml-lint
js-yaml
The 'js-yaml' package is a YAML parser and dumper for JavaScript. It can parse YAML strings into JavaScript objects and serialize JavaScript objects into YAML strings. Unlike 'yaml-lint', 'js-yaml' focuses more on parsing and serializing YAML rather than just linting.
yaml
The 'yaml' package is another YAML parser and stringifier for JavaScript. It provides a comprehensive set of features for working with YAML, including parsing, stringifying, and schema validation. It offers more advanced features compared to 'yaml-lint', which is primarily focused on linting.
yaml-js
The 'yaml-js' package is a pure JavaScript YAML parser and serializer. It provides basic functionality for parsing and serializing YAML, similar to 'js-yaml' and 'yaml'. It is less focused on linting and more on general YAML manipulation.
YAML Lint
A simple (CLI) tool to lint YAML files
Usage
npm install --save-dev yaml-lint
const yamlLint = require('yaml-lint');
yamlLint
.lint('test: 123')
.then(() => {
console.log('Valid YAML file.');
})
.catch((error) => {
console.error('Invalid YAML file.', error);
});
CLI
npm install -g yaml-lint
yamllint test.yaml
Options
YAML Lint is configured using the following options via a configuration file, environment variables, and/or command-line arguments.
First of all, YAML Lint looks for a JSON file called .yaml-lint.json
within the current working directory.
{
"schema": "CORE_SCHEMA",
"ignore": "dir/*.yaml"
}
Afterwards, YAML Lint will take environment variables into account.
YAMLLINT_SCHEMA=CORE_SCHEMA YAMLLINT_IGNORE=dir/*.yaml yamllint
Concluding, YAML Lint will take command-line arguments into account.
yamllint --schema=CORE_SCHEMA --ignore=dir/*.yaml
(All options are merged into a single configuration using the hierarchy described above.)
schema
(string)
Specifies a schema to use
ignore
(string or array of strings)
Specifies one or multiple glob patterns to ignore
yamllint **/*.(yaml|yml) --ignore=foobar.yml --ignore=dir/*.yaml
Changelog
- 1.7.0
- Fix glob pattern to enforce forward slashes to prevent Windows issues
- Run tests on different operating systems in CI
- 1.6.0
- Implement support for multi-document sources
- 1.5.0
- 1.4.0
- Display all failing files instead of only the first best one
- 1.3.0
- Migrate to TypeScript and update dependencies
- 1.2.4
- Fix paths for ignored patterns
- 1.2.3
- Remove
nocase
rule to prevent problems on Windows
- 1.2.2
- Fix CLI support relative paths
- 1.2.1
- 1.2.0
- Add documentation regarding how to specify options
- Update dependencies
- Support ignoring specific files
- 1.1.0
- Update dependencies
- Migrate syntax to ES2015+
- 1.0.0
- Update dependencies
- Enable tests for Node.js 8
- Remove support for Node.js 0.x
- 0.0.4
- Print file names when logging YAML errors while using the CLI
- 0.0.3
- Implement check for empty file selections while using the CLI
- 0.0.2
- Prettier error messages within CLI
- Add shebang for CLI
- 0.0.1
License
Copyright (c) 2022 Thomas Rasshofer
Licensed under the MIT license.
See LICENSE for more info.
Contributors