2.10.1 • Published 1 year ago
@ampproject/toolbox-validator-rules v2.10.1
AMP-Toolbox Validator Rules
Queries published AMP Validator rules and extracts information about required markup and attributes for all AMP formats.
Usage
Install via:
$ npm install @ampproject/toolbox-validator-rulesIncluding the Module
ES Module (Browser)
import validatorRules from '@ampproject/toolbox-validator-rules';CommonJs (Node)
const validatorRules = require('@ampproject/toolbox-validator-rules');Using the module
// Loads the validator rules remotely with default options
const rules = await validatorRules.fetch();
// The raw unprocessed rules
console.log(rules.raw);
// All tags, combined with their respective attribute lists
console.log(rules.tags);
// All extensions
console.log(rules.extensions);
// Get all tag names used in AMP for Email
// The supported formats are AMP, AMP4EMAIL, AMP4ADS and ACTIONS
const tags = rules.getTagsForFormat('AMP4EMAIL');
// Display their names
console.log(tags.map(tag => tag.tagName));
// Get information about an extension
const ext = rules.getExtension('AMP4EMAIL', 'amp-carousel');
// Display supported versions
console.log(ext.versions);Format of rules
The rules used closely follow the proto definitions from validator.proto.
Specifically:
- The
rawproperty is unprocessed ValidatorRules, the same format used byhttps://cdn.ampproject.org/v0/validator.json - The result of
getTagsForFormatand thetagsproperty is a list of TagSpec - The result of
getExtensionis ExtensionSpec with thehtmlFormatfield fromTagSpec - The
extensionsproperty a list of ExtensionSpec with thehtmlFormatfield fromTagSpec - The
errorsproperty combines ErrorFormat and ErrorSpecificity
Options
fetch optionally accepts an options object allowing you to customize its
behaviour.
The following options are supported:
noCache: true to always fetch latest rules (by default, subsequent calls tofetchreuse the same result).rules: object to use locally specified rules instead of fetching them from the AMP CDN.url: override the URL where validator rules are fetched from.source: one of'local'(load rules from local file named "validator.json"),'remote'(fetch rules from CDN) or'auto'which is the default (tries looking for the local file first, then tries to fetch from CDN).
Example:
validatorRules.fetch({
noCache: true,
source: 'remote'
});2.10.1
1 year ago
2.10.0
1 year ago
2.9.0
3 years ago
3.0.0-canary.2
4 years ago
2.8.0
4 years ago
2.8.0-canary.9
5 years ago
2.8.0-canary.0
5 years ago
2.7.4
5 years ago
2.7.2
5 years ago
2.7.1
5 years ago
2.7.1-alpha.0
5 years ago
2.5.4
5 years ago
2.3.0
6 years ago
2.2.0
6 years ago
2.1.0
6 years ago
2.0.0
6 years ago
2.0.0-alpha.0
6 years ago
1.1.1
6 years ago
1.1.0
6 years ago
1.1.0-beta.1
6 years ago
1.1.0-beta.0
6 years ago
1.0.1
6 years ago
1.0.0
6 years ago
1.0.0-beta.9
6 years ago
1.0.0-beta.8
6 years ago
1.0.0-beta.7
6 years ago
1.0.0-beta.6
6 years ago
1.0.0-beta.5
6 years ago
1.0.0-beta.4
6 years ago