3.1.5 • Published 5 years ago

ezzy-config-setup v3.1.5

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

ezzy-config-setup

Greenkeeper badge Build Status Coverage Status

Changes a number of arguments into a readable configuration object. The arguments can have different organization, position, type, etc, which turn into different properties.

 // Example usage by simply passing arguments
 configSetup(arguments, ["method:string"], ["config:object", "callback"]);
 // Example usage with a default configuration
 configSetup(
   defaultConfig,
   arguments,
   ["method:string"],
   ["config:object", "callback"]
 );

Example Implementation

 
 function MyClass() {
   this.config = configSetup(
     
     // default configuration properties
     {
       booleanProp: true,
       arrayProp: [ 1, 2, 3 ],
       objectProp: { a:null, b:null }
     },

     // arguments passed to the constructor
     arguments,

     // if there's only 1 object argument, it extends 'this' object
     ['this:object'],

     // or it can look for type and override specific properties
     ['arrayProp:array'],
     ['booleanProp:boolean'],

     // with 2 arguments, it overrides different properties
     // based on type
     ['booleanProp:boolean', 'arrayProp:array'],
     ['arrayProp:boolean', 'objectProp:object'],
     ['objectProp:object', 'arrayProp:array'],

     // or has the ability to distinguish between positional arguments
     ['booleanProp:boolean', 'arrayProp:array', 'objectProp:object'],
     ['objectProp:object', 'booleanProp:boolean', 'arrayProp:array'],
     ['arrayProp:array', 'objectProp:object', 'booleanProp:boolean']

   );

 // Therefore...

 // single boolean argument
 var myClass1 = new MyClass(false);
 myClass1.config.booleanProp = false;
 myClass1.config.arrayProp = [1,2,3];

 // single array argument
 var myClass2 = new MyClass([]);
 myClass2.config.booleanProp = true;
 myClass2.config.arrayProp = [];

 // multiple positioned arguments
 var myClass3 = new MyClass({}, false, []);
 myClass3.config.booleanProp = false;
 myClass3.config.arrayProp = [];
 myClass3.config.objectProp = {};

 // and now shuffled around
 var myClass4 = new MyClass([], {}, false);
 myClass4.config.booleanProp = false;
 myClass4.config.arrayProp = [];
 myClass4.config.objectProp = {};

 // Cool, huh?!
 // Now we have achieved what Java already had for centuries.
3.1.5

5 years ago

3.1.4

5 years ago

3.1.3

5 years ago

3.1.2

5 years ago

3.1.0

5 years ago

3.0.4

5 years ago

3.0.3

5 years ago

3.0.2

5 years ago

3.0.1

5 years ago

3.0.0

5 years ago

0.1.18

6 years ago

0.1.17

6 years ago

0.1.16

7 years ago

0.1.15

7 years ago

0.1.14

7 years ago

0.1.13

7 years ago

0.1.12

7 years ago

0.1.11

7 years ago

0.1.10

7 years ago

0.1.0

7 years ago