Skip to content

Tiny helper to create const in js, just like react/lib/keyMirror, but support nested object and more features.

Notifications You must be signed in to change notification settings

apolkingg8/KeyMirrorNested

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Key Mirror Nested

Tiny helper to create const in js, just like react/lib/keyMirror, but support nested object and more features.

Install

npm install key-mirror-nested --save

Usage

var keyMirror = require('key-mirror-nested');

var options = {
    connChar: '.',
    // connect char, default use '.'
    custFunc: function(oldVal, newVal) {
        return newVal;
    }
    // cust const val before replace
};

var OUTPUT_OBJ = keyMirror(inputObj, options);

Example

var keyMirror = require('key-mirror-nested');

var DUMMY_CONST = {
    ACTIONS: {
        LOGIN: {
            SUCCESS: null, 
            ERROR: undefined
        },
        SOME_OTHER_ACTION: ''
    },
    EVENTS: {
        A: 123,
        B: 456
    },
    SOME_OTHER: 789
};

console.log(keyMirror(DUMMY_CONST));
/*
=>
{ 
    ACTIONS: { 
        LOGIN: { 
            SUCCESS: 'ACTIONS.LOGIN.SUCCESS',
            ERROR: 'ACTIONS.LOGIN.ERROR' 
        },
        SOME_OTHER_ACTION: 'ACTIONS.SOME_OTHER_ACTION' 
    },
    EVENTS: { 
        A: 'EVENTS.A', 
        B: 'EVENTS.B' 
    },
    SOME_OTHER: 'SOME_OTHER' 
}
*/

with options:

var keyMirror = require('key-mirror-nested');

var DUMMY_CONST = {
    ACTIONS: {
        LOGIN: {
            SUCCESS: null,
            ERROR: undefined
        },
        ACTIONB: ''
    },
    EVENTS: {
        A: 123,
        B: 456
    },
    SOMEOTHER: 789
};

console.log(keyMirror(DUMMY_CONST, {
    connChar: '_',
    custFunc: function(oldVal, newVal) {

        // you can do something with const val here
        if(typeof(oldVal) === "number") {
            newVal = newVal + '_' + oldVal
        }

        return newVal;
    }
}));

/*
=>
{ 
    ACTIONS: { 
        LOGIN: { 
            SUCCESS: 'ACTIONS_LOGIN_SUCCESS',
            ERROR: 'ACTIONS_LOGIN_ERROR' 
        },
        ACTIONB: 'ACTIONS_ACTIONB' 
    },
    EVENTS: { 
        A: 'EVENTS_A_123', 
        B: 'EVENTS_B_456' 
    },
    SOMEOTHER: 'SOMEOTHER_789' 
}
*/

License

MIT

About

Tiny helper to create const in js, just like react/lib/keyMirror, but support nested object and more features.

Resources

Stars

Watchers

Forks

Packages

No packages published