node-package-configurator

Receives a JSON Schema, deploys an HTML form and saves it locally.

Usage no npm install needed!

<script type="module">
  import nodePackageConfigurator from 'https://cdn.skypack.dev/node-package-configurator';
</script>

README

Node Package Configurator

npm Build Status Dependency Status XO code style

demo

Node Package Configurator (npc) generates a dynamic web form out of a JSON schema. The user fills the forms, npc resolves the JSON schema into a JSON object, and saves the result locally for persistent storage.

On Windows, npc saves the config file in the user App Data. Example: C:\users\vmorneau\App Data\yourModuleName
On MacOS, npc saves the file in the library preference folder. Example: ~/Library/Preferences/yourModuleName
On Linux, npc saves the file in the root folder. Example: ~/yourModuleName

You can retrieve this file (your project configuration) at any time.

Install

npm install node-package-configurator

Usage

Launch the form

const npc = require('node-package-configurator');
const schema = require('path_to_your_json_schema');

npc.init({
    modules: ["my-module"],
    logo: "url",
    project: "my-project",
    jsonSchema: schema
});

Getting the config

const npc = require('node-package-configurator');

npc.getConfig({
    modules: ["my-module"],
    project: "my-project"
});

Options

Name Type Default Description
module array List of module names, in order of priority.
logo string URL to your project logo (optional)
project string Name of the project
jsonSchema object JSON Schema to use in the form

Methods

Name Type Returns Description
init function Initializes the HTML form
getConfig function object Returns the configuration object of the given project
getProjects function array Returns an array of available project names
getFile function object Returns a file for your npm module from the file system (AppData for Windows, root otherwise)
setFile function object Writes a file for your npm module in the file system (AppData for Windows, root otherwise)

Changelog

See changelog.

Special thanks to

Brutusin json-forms

License

MIT © Vincent Morneau