app-init

Creates a directory (if not already existing) on the local filesystem for storing end user data and customizeable app config.

Usage no npm install needed!

<script type="module">
  import appInit from 'https://cdn.skypack.dev/app-init';
</script>

README

App Init

Creates a directory (if not already existing) on the local filesystem for storing end user data and customizeable app config.

use cases:

  • you want to expose some configuration values to the end user
  • you want to make it easy for users to find and make backups of key application data (ie- a database)

app-init, by default, will put these files in a hidden folder in the user's home directory (ex: ~/.coolApp).

Usage

var appInit = require('app-init')
appInit('coolApp', function(path, config) {
    console.log(path) // > /home/steve/.coolApp
    console.log(config) // > node-config object
})

callback returns a path to your shiny new application folder and a config object that lives in said application directory. The directory will be a hidden folder in user's home (ex: '~/.coolApp' ).

Options

Provide an object as the first param to specify a different application directory (provide also the appName):

appInit({ appName: 'coolApp', path: '/var/etc/coolApp }, callback)

Features

Mirrored config

To expose configuration to the new user-friendly application folder, create a config directory in the root of your application itself (ie- your node repository) along with a file with the config valus you want to expose. For example:

~/myNodeApp/config/default.json

{
  "db_path" : "db"
}

This part uses node-config so theorectically you can use any of their supported formats, but that's not supported yet in this module - just use json and make sure the basename of your file is "default"

When a user runs your app for the first time, app-init (when invoked) will mirror this default config file into the new user-friendly application folder as "local.json".