Wondering what’s next for npm?Check out our public roadmap! »

    utils-fs-read-ini

    1.0.0 • Public • Published

    INI

    NPM version Build Status Coverage Status Dependencies

    Reads the entire contents of an INI file.

    Installation

    $ npm install utils-fs-read-ini

    Usage

    var read = require( 'utils-fs-read-ini' );

    read( path, [ options,] clbk )

    Reads the entire contents of an INI file.

    read( '/path/to/data.ini', onData );
     
    function onData( error, data ) {
        if ( error ) {
            console.error( error );
        } else {
            console.log( data );
        }
    }

    The function accepts the same options as properties#parse, except

    • path is always true.
    • sections is always true.
    • strict is always true.
    • separators is always '='.
    • comments, by default, begin with ';'.
    var opts = {
        'comments': [ ';', '#' ]
    };
     
    read( '/path/to/data.ini', opts, onData );
     
    function onData( error, data ) {
        if ( error ) {
            console.error( error );
        } else {
            console.log( data );
        }
    }

    read.sync( path[, options] )

    Synchronously reads the contents of an entire INI file.

    var out = read.sync( '/path/to/data.ini' );
    if ( out instanceof Error ) {
        throw out;
    }
    console.log( out );

    The function accepts the same options as fs.readFileSync() as well as utils-ini-parse options.

    Examples

    var path = require( 'path' ),
        read = require( 'utils-fs-read-ini' );
     
    var file = path.join( __dirname, 'config.ini' );
     
    /**
    * INI reviver.
    *
    @param {String} key - key
    @param {String} value - value
    @param {String} section - section
    @returns {*} revived value
    */
    function reviver( key, value ) {
        /* jshint validthis:true */
        var vals;
     
        // Do not split section lines...
        if ( this.isSection ) {
            return this.assert();
        }
        // Split comma-delimited strings...
        if ( typeof value === 'string' ){
            vals = value.split( ',' );
            return ( vals.length === 1 ) ? value : vals;
        }
        // Do not split the rest of the lines:
        return this.assert();
    }
     
    // Sync:
    var data = read.sync( file, {
        'reviver': reviver
    });
    // returns <object>
     
    console.log( data instanceof Error );
    // returns false
     
    data = read.sync( 'beepboop' );
    // returns <error>
     
    console.log( data instanceof Error );
    // returns true
     
     
    // Async:
    read( file, {
        'reviver': reviver
    }, onRead );
    read( 'beepboop', onRead );
     
    function onRead( error, config ) {
        if ( error ) {
            if ( error.code === 'ENOENT' ) {
                console.error( 'INI file does not exist.' );
            } else {
                throw error;
            }
        } else {
            console.log( 'Port: %s.', config.server.port );
        }
    }

    To run the example code from the top-level application directory,

    $ node ./examples/index.js

    Tests

    Unit

    Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:

    $ make test

    All new feature development should have corresponding unit tests to validate correct functionality.

    Test Coverage

    This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:

    $ make test-cov

    Istanbul creates a ./reports/coverage directory. To access an HTML version of the report,

    $ make view-cov

    License

    MIT license.

    Copyright

    Copyright © 2015. Athan Reines.

    Install

    npm i utils-fs-read-ini

    DownloadsWeekly Downloads

    7

    Version

    1.0.0

    License

    MIT

    Last publish

    Collaborators

    • avatar