Octra libraries - v2.0.0
    Preparing search index...

    Module @octra/json-sets - v1.0.1

    @octra/json-sets npm

    This library allows to define sets using JSON. JSONSetValidator parses an array of objects and validates it using a JSON definition. You can extend from JSONSetValidator and create your own validator for specific object.

    • Easy select statements syntax:
      • "select": "x": Select exact x items
      • "select": "> x": Select more than x items
      • "select": "< x": Select less than x items
      • "select": ">= x": Select min. x items
      • "select": "<= x": Select max. x items
    • Combine statements using common logic: and, or operators.
    • Calculate all possible solution with a given set of objects
    • Get List of failed statements on error

    You can clone this repository and try the following example running npm run start:json-sets-demo.

    import { FileSetValidator } from '@octra/json-sets';

    const validator = new FileSetValidator({
    name: 'one audio file and one text file',
    description: 'root description',
    combine: {
    type: 'and',
    expressions: [
    {
    select: '2',
    name: 'audiofile',
    description: 'Two are audiofiles',
    with: {
    mimeType: ['audio/wav', 'audio/ogg'],
    },
    },
    {
    select: '1',
    name: 'textfile',
    description: 'One is a text file',
    with: {
    mimeType: ['application/json'],
    },
    },
    ],
    },
    });

    validator.validate([
    {
    name: 'a.wav',
    size: 1000,
    type: 'audio/wav',
    },
    {
    name: 'b.ogg',
    size: 1000,
    type: 'audio/ogg',
    },
    {
    name: 'c.json',
    size: 1000,
    type: 'application/json',
    },
    {
    name: 'd.json',
    size: 1000,
    type: 'application/json',
    },
    ]);
    console.log(`TREE__________`);
    console.log(validator.decisionTree.output());
    console.log('ERRORS');
    console.log(validator.decisionTree._errors);
    npm install --save @octra/json-sets
    

    You have two options to install this package und use it as UMD:

    a) Install via NPM and reference local files (no internet connection needed om production).

    <script type="application/javascript" src="node_modules/@octra/json-sets/index.umd.js"></script>
    

    b) Reference remote file (internet connection needed on production).

    <script type="application/javascript" src="https://unpkg.com/@octra/json-sets/index.umd.js"></script>
    

    See full example here

    Import the classes and functions from @octra/json-sets. For example

    import { JsonSetValidator } from '@octra/json-sets';
    

    All functions and classes are available via global scope OctraJSONSets. For example:

    /*
    make sure that you have injected the umd bundle as described before.
    */
    const validator = new OctraJSONSets.JSONSetValidator();

    You can find more information about classes and functions of @octra/json-sets here.

    Go to changelog

    Classes

    DecisionTreeCombination
    DecisionTreeExpression
    DecisionTreeNode
    FileSetValidator
    IFile
    JSONSet
    JSONSetBlueprint
    JSONSetCombination
    JSONSetFileBlueprint
    JSONSetFileConditions
    JSONSetResult
    JSONSetStatement
    JSONSetValidationError
    JsonSetValidator
    PossibleSolution

    Interfaces

    AudioFileMetaData

    Type Aliases

    JSONSetExpression