tv4-file-loader
v1.0.4
Published
Adds loading schemas from a single file or a directory functionality to the tv4 schema validator.
Downloads
34
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-loader
Alternately 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.
schemaPath
is the path to the desired schema on the filesystem.relativeTo
this property is used to create the schema name. For example if your schema was inmy-schemas/hello.json
but you wanted to reference it ashello.json
you could passrelativeTo as
my-schemas`.
promise = loadSchemaFolderAsync(startPath)
Loads a directory of schemas. Returns an empty promise when it has finished loading the schemas in the folder.
startPath
is 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