Registry / testing / sirenlint

sirenlint

JSON →
library0.5.0jsnpmunverified

A lint tool for validating Siren hypermedia documents against the Siren specification (sirenspec.org). Version 0.5.0 is the latest stable release, but the project appears to be in maintenance mode with infrequent updates. It provides both a CLI for piping/reading Siren JSON files and a programmatic API. Key differentiators: focused solely on Siren validation (no generic JSON/HAL/Collection+JSON support), outputs structured error/warning objects with JSON path information. Alternatives include custom Siren validators or generic JSON schema validators.

npm install sirenlint
INSTALL
IMPORT
SIG · SIRENLINT
S
sirenlint
testingjavascriptv0.5.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

validate
const validate = require('sirenlint');
import validate from 'sirenlint';
Package uses CommonJS (require) and has no default export for ESM import. Use require or dynamic import().
ValidationError
const { ValidationError } = require('sirenlint');
import { ValidationError } from 'sirenlint';
ESM import does not work directly; must use destructuring from require.
ValidationWarning
const { ValidationWarning } = require('sirenlint');
import { ValidationWarning } from 'sirenlint';
Same as ValidationError; no ESM support.

Demonstrates programmatic validation of a Siren document, iterating over errors and warnings.

const fs = require('fs'); const validate = require('sirenlint'); const sirenJson = `{ "class": ["order"], "properties": { "orderNumber": 42 }, "entities": [], "links": [] }`; const results = validate(sirenJson); results.forEach(r => { if (r instanceof validate.ValidationError) { console.error('ERROR:', r.path, r.message); } else if (r instanceof validate.ValidationWarning) { console.warn('WARNING:', r.path, r.message); } });
sirenlint --version
Debug
Known issues
gotchaInput must be a string, not a parsed object. If you pass an object, validation may fail or produce unexpected results.
fix
Always pass JSON string (e.g., JSON.stringify(yourObject)) to validate().
affects: >=0.1.0
gotchaCLI always outputs to stdout regardless of errors; exit code is always 0 even with warnings/errors.
fix
Check output string for error count or parse the result programmatically; consider using library API for error handling.
affects: >=0.1.0
deprecatedPackage uses nomnom for CLI parsing; nomnom is deprecated and may have security issues.
fix
Use library API instead of CLI, or fork and replace nomnom with a modern alternative like yargs.
affects: >=0.1.0
gotchaValidation rules are hardcoded and not configurable; no way to suppress specific warnings or add custom rules.
fix
Accept the default validation set or use an alternative validator that supports rule customization.
affects: >=0.1.0
Errors
Common errors & fixes
TypeError: sirenlint is not a function
Using import or expecting a default export; sirenlint is a function via require, not a named export.
fix
Use const validate = require('sirenlint'); instead of import.
Cannot find module 'sirenlint'
Package not installed globally or locally; or using global CLI without installation.
fix
Run npm install sirenlint --save-dev (local) or npm install -g sirenlint (global).
undefined is not a valid Siren JSON
Passing undefined or null to validate().
fix
Ensure input is a valid JSON string before calling validate().
Upgrade
Version history
0.5.0latest on npm
Audit
Dependencies
nomnomrequiredCLI argument parsing
Agent activity
6 hits · last 30 days
node
6
Resources
sirenlint — npm install sirenlint · libregistry