Adds loading schemas from a single file or a directory functionality to the tv4 schema validator.
Simplifies the process of adding all schemas from a folder or a single file by attaching the loadSchemaFileAsync() and loadSchemaFolderAsync functions to tv4.
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": "*"
...
}
...
}
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`.
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.
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!");
});
This software is licensed under a MIT license that contains additional non-advertising and patent-related clauses. Read full license terms