tv4-file-loader
v1.0.4
Published
Adds loading schemas from a single file or a directory functionality to the tv4 schema validator.
Readme
tv4 File Loader
Adds loading schemas from a single file or a directory functionality to the tv4 schema validator.
Overview
Simplifies the process of adding all schemas from a folder or a single file by attaching the loadSchemaFileAsync() and loadSchemaFolderAsync functions to tv4.
Installation
Use npm to install this package easily.
$ npm install --save tv4-file-loaderAlternately you may edit your package.json and add this to your dependencies object:
{
...
"dependencies": {
...
"tv4-file-loader": "*"
...
}
...
}Functions attached to tv4
promise = loadSchemaFileAsync(schemaPath, relativeTo)
Loads a schema from a file. Returns an empty promise when it has finished loading the schema.
schemaPathis the path to the desired schema on the filesystem.relativeTothis property is used to create the schema name. For example if your schema was inmy-schemas/hello.jsonbut you wanted to reference it ashello.jsonyou could passrelativeTo asmy-schemas`.
promise = loadSchemaFolderAsync(startPath)
Loads a directory of schemas. Returns an empty promise when it has finished loading the schemas in the folder.
startPathis the folder containing the schemas that will be loaded.
Usage
First, require tv4.
var tv4;
tv4 = require("tv4");Then, require the tv4-file-loader module and pass the newly created tv4 into it. The tv4-file-loader factory returns the tv4 instance for convenience.
tv4 = require("tv4-file-loader")(tv4);Voila! Now you have the loadSchemaFileAsync() and loadSchemaFolderAsync() functions available to you through tv4. You can use them like so:
tv4.loadSchemaFileAsync(`${__dirname}/schemas/example-schema.json`, ".");
tv4.loadSchemaFolderAsync(`${__dirname}/anotherSchemaFolder/`);Since both function return promises, they are able to be .then()ed.
tv.loadSchemaFolderAsync("./testSchemaFolder/").then(() => {
console.log("Yay, our schemas from ./testSchemaFolder/ have been loaded!");
});License
This software is licensed under a MIT license that contains additional non-advertising and patent-related clauses. Read full license terms
