JSON schema based Node.js library and CLI tool to parse and validate analytics.txt files.
The package is published to npm:
npm i @offen/analyticstxt-parser -S
and provides a library and an analyticstxt
CLI tool.
For information on how to use the CLI, refer to the help
subcommand:
analyticstxt help
The following functions are exported by this module:
Validate the given content of an analytics.txt file. Returns null
in case validation passes or an error in case it fails. If no draftName
is given, the default will be used (which is the latest published I-D).
const fs = require('fs')
const { validate } = require('@offen/analyticstxt-parser')
const content = fs.readFileSync('./analytics.txt', 'utf-8')
const error = validate(content)
if (error) {
// given file is not valid
}
This function is also available as the throwing version mustValidate
.
Parse the given content of an analytics.txt file into its JavaScript Object representation. Returns an Array [result, error]
where either can be null
. If lax: true
is given, the result will not be validated against the latest schema (or the given draftName
).
const fs = require('fs')
const { parse } = require('@offen/analyticstxt-parser')
const content = fs.readFileSync('./analytics.txt', 'utf-8')
const [result, error] = parse(content)
if (error) {
// handle error
}
// process result
This function is also available as the throwing version mustParse
.
Serialize the given JavaScript Object representation into an analytics.txt file. Returns an Array [result, error]
where either can be null
. If lax: true
is given, the source will not be validated against the latest schema (or the given draftName
).
const fs = require('fs')
const { serialize } = require('@offen/analyticstxt-parser')
const source = generateSourceSomehow()
const [result, error] = serialize(source)
if (error) {
// handle error
}
fs.writeFileSync('./analytics.txt', result, 'utf-8')
This function is also available as the throwing version mustSerialize
.
Explain the given analytics.txt file in human readable prose.
By default, a Markdown document is returned.
Pass a custom format
function to change this behavior.
const fs = require('fs')
const { explain } = require('@offen/analyticstxt-parser')
const content = fs.readFileSync('./analytics.txt', 'utf-8')
const [explanation, error] = explain(content)
if (error) {
// given file is not valid
}
This function is also available as the throwing version mustExplain
.
In addition to the three base methods, the JSON schema used for validating is exported as schema
, its current draft name as defaultVersion
.