Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@enkidevs/curriculum-ast-validators

Package Overview
Dependencies
Maintainers
13
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@enkidevs/curriculum-ast-validators

Validators for Enki Curriculum AST

  • 2.1.2
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
62
increased by129.63%
Maintainers
13
Weekly downloads
 
Created
Source

Enki Curriculum AST Validators

Validates Enki Curriculum AST.

See Enki curriculum processors for more details.

Rules

Headline

There can only be 1 Headline node per Insight. This is checked by the headline validator.

YAML

There can only be 1 YAML metadata node per Insight. This is checked by the yaml validator.

Insight Section

The section name must be one of the following:

  • Content
  • Footnotes
  • Revision
  • Practice
  • Quiz

Insight Question Gap

The insight question must have at least 1 question gap.

Insight Question Answers

The insight question must have answers and the number of question gaps must match the number of correct answers

API

const { contentTypes } = require('@enkidevs/curriculum-helpers');
const { getParser } = require('@enkidevs/curriculum-parser-markdown');
const {
  getValidator,
  getSafeValidator,
  validate,
  validateSafe,
} = require('@enkidevs/curriculum-ast-validators');

const ast = getParser(contentTypes.INSIGHT).parseSync('# Missing YAML config');

// safely validate any insight property
const error = getSafeValidator(contentTypes.INSIGHT).yaml(ast);
console.error(`${error.message}\n\n`);
// "Must have exactly 1 yaml configuration but found 0 instead"

// safely validate an entire insight
const errors = validateSafe(contentTypes.INSIGHT)(ast);
console.error(`[${errors.map(e => e.message)}]\n\n`);
// ["Must have exactly 1 yaml configuration but found 0 instead"]

// strictly validate any insight property
try {
  getValidator(contentTypes.INSIGHT).yaml(ast);
} catch (e) {
  console.error(`${e.message}\n\n`);
  // "Must have exactly 1 yaml configuration but found 0 instead"
}

// strictly validate an entire insight
try {
  validate(contentTypes.INSIGHT)(ast);
} catch (e) {
  console.error(`${e.message}\n\n`);
  // "Must have exactly 1 yaml configuration but found 0 instead"
}

Keywords

FAQs

Package last updated on 15 May 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc