Socket
Socket
Sign inDemoInstall

manis

Package Overview
Dependencies
5
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    manis

Find and read your configuration files recursively


Version published
Weekly downloads
388
increased by42.12%
Maintainers
1
Install size
772 kB
Created
Weekly downloads
 

Readme

Source

Manis

For build system plugins that need to fetch relative config files (like .fecsrc).

Build Status NPM version Coverage Status DevDependencies

Install

npm install manis

Usage

Using strip-json-comments

var Manis = require('manis');
var stripJSONComments = require('strip-json-comments');

var loader = function (text) {
    return JSON.parse(stripJSONComments(text));
};

var manis = new Manis({
    files: [
        {
            // just for example, it should be loaded as yaml in fact.
            name: '.eslintrc',
            get: function (json) {
                return {eslint: json};
            }
        },
        '.fecsrc',
        {
            name: 'package.json',
            get: function (json) {
                return json.fecs || {};
            }
        }
    ],
    loader: loader
});

var options = manis.from('path/to/file.js');

// do something cool with options
NOTICE: the default loader strip comment after manis@0.3.0.

Loading .yml with js-yaml

var yaml = require('js-yaml');

var Manis = require('manis');

var loader = function (text) {
    return yaml.load(text);
};

var manis = new Manis('.travis.yml', {loader: loader});

var options = manis.from('path/to/file.js');

// do something cool with options
NOTICE: the default loader used js-yaml to load YAML and JSON content after manis@0.3.0.

With defaults

var Manis = require('manis');

var manis = new Manis({
    files: [
        '.fecsrc',
        {
            name: 'package.json',
            get: 'fecs'
        }
    ]
});

manis.setDefault('default/path/to/config/fecs.json');

var options = manis.from('path/to/file.js');

// do something cool with options

User config

var Manis = require('manis');

var manis = new Manis({
    files: [
        '.fecsrc',
        {
            name: 'package.json',
            get: 'fecs'
        }
    ]
});

manis.setDefault('default/path/to/config/fecs.json');

// will find `~/.fecsrc`
manis.setUserConfig();

var options = manis.from('path/to/file.js');

// do something cool with options

Within a gulp plugin

var Manis = require('manis');
var map = require('map-stream');

module.exports = function MyGulpPlugin(options) {
    var manis = new Manis('.fecsrc', options);

    return map(function (file, cb) {

        // get the options for this file specifically
        var options = manis.from(file.path);

        // do something cool

        // send the file along
        cb(null, file);

    });
};

API

new Manis(string fileName[, Object options]);

new Manis(string[] fileNames[, Object options]);

new Manis(Object[] finderOptioins[, Object options]);

new Manis(Object options);

void Manis#setDefault(Object defaultValue);

void Manis#setDefault(string filePath[, Object finderOptions]);

void Manis#setUserConfig();

void Manis#setUserConfig(Object userConfig);

void Manis#setUserConfig(string userConfigPathOrName[, Object finderOptions]);

Object Manis#from(string path);

Manis.yaml;

Alias for js-yaml module.

Object Manis.loader;

The default loader, parse JSON or YAML content with js-yaml.

Object Manis#from(string path);

options
  • files, Array or string, items could be string or Object.

  • loader, Function,parser for config content.

  • lookup, Boolean, Find all up-level config files. default is true.

  • merge, Boolean, Merge all config objects. default is true.

  • cache, Boolean, Cache config files. default is true.

  • rootName, String, The name of flag when enableRoot set to true. default is 'root'.

  • enableRoot, Boolean, Enable the root flag to stop lookup in up-level directory. default is false.

  • stopper, Function, the predicate for stopping search. default is null.

finderOptions
  • name, string, the file name to be searched.

  • loader, Funtion, the same as options.loader above;

  • stopper, Function, the predicate for stopping search.

  • get, string or Function, the field name to retrieve from config object.

  • cache, Boolean, Cache config files. default is true.

Keywords

FAQs

Last updated on 15 May 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc