swint-helper v1.2.11
swint-helper
Helper functions and classes for Swint
Installation
$ npm install --save swint-helper
API
.defaultize(defVal, tgtVal)
Filling default value to an JavaScript object.
If tgtVal
doesn't have the key -> It is filled from defVal
, recursively.
If tgtVal
doesn't have enough values at the Array -> It is filed from defVal
, recursively.
Examples
var def,
tgt;
def = {
a: 1,
b: 'aaa',
c: [1, 2, 3]
};
tgt = {
b: 'bbb',
c: [4]
};
defaultize(def, tgt);
// tgt ==> { a: 1, b: 'bbb', c: [4, 2, 3] }
.validate(ruleVal, tgtVal)
Recursively looks through an object to see if its values match the rules
Rules
undefined
: Can be any type0
: Has to be a Number''
: Has to be a String'aaa\bbbb\bccc'
: Has to be enum('aaa', 'bbb', 'ccc')new Date(0)
: Has to be a Date{}
: Has to be an object[0]
: Has to be an Array of Numbers['']
: Has to be an Array of Strings[new Date(0)]
: Has to be an Array of Dates[[0]]
: Has to be an Array of Arrays of Numbers{ a: 0 }
: Has to be an Object with key of a: Number
Examples
var r = {
a: 0,
b: '',
c: {
d: [0],
e: undefined
}
},
t = {
a: 100,
b: 'Monday',
c: {
d: [1,2,3],
e: 'Friday'
}
};
var o = validate(r, t);
// o ==> [ true, [] ]
If the target didn't match the target, it will return false and a path to the failing entry:
var r = {
a: 0,
b: '',
c: {
d: [0],
e: undefined
}
},
t = {
a: 100,
b: 'Monday',
c: {
d: ['a', 'b', 'c'],
e: 'Friday'
}
};
var o = validate(r, t);
// o ==> [ false, [ 'c', 'd', 0 ] ]
.print([level], msg1, [msg2, ...])
Prints messages and associated levels
Levels
- 0(
print.RAW
) : RAW - 1(
print.DEBUG
) : DEBUG(default) - 2(
print.INFO
) : INFO - 3(
print.WARN
) : WARNING - 4(
print.ERROR
) : ERROR
Examples
print(0, 'Raw message');
print(print.RAW, 'Raw message');
// ==> Raw message
print(1, 'Debug message');
print(print.DEBUG, 'Debug message');
// ==> DEBUG/2015-05-07T13:55:35.612Z)
// Debug message
print(2, 'Info message');
print(print.INFO, 'Info message');
// ==> INFO /2015-05-07T13:55:35.612Z)
// Info message
print(3, 'Warning message');
print(print.WARN, 'Warning message');
// ==> WARN /2015-05-07T13:55:35.612Z)
// Warning message
print(4, 'Error message');
print(print.ERROR, 'Error message');
// ==> ERROR/2015-05-07T13:55:35.612Z)
// Error message
// Setting the printLevel sets a minimum requirement for the levels
global.swintVar.printLevel = 3;
print(0, 'Raw message'); // Would not print
print(1, 'Debug message'); // Would not print
print(2, 'Info message'); // Would not print
print(3, 'Warning message'); // Would print
print(4, 'Error message'); // Would print
.walk(options)
Walks directory and returns the list of file. The dir should be a full path.
Options
The whitelist precedes blacklist.
dir
:String
, default:path.dirname(require.main.filename)
ext
:String
, default:'*'
whitelist
:function(fullPath)
, default: passblacklist
:function(fullPath)
, default: extension, starting with_
baseOrderRule
:Boolean
, default:true
, whether using baseOrderRuleorderRule
:function(a, b)
, default: ...head
:String
, default:'Intro'
tail
:String
, default:'Outro'
Example
var list = walk({
dir: path.join(__dirname, 'myDir'),
ext: 'js'
});
.concat(fileList)
Concatenating file contents on the fileList and returns string
Example
var str = concat([
path.join(__dirname, 'aaa.txt'),
path.join(__dirname, 'bbb.txt'),
path.join(__dirname, 'ccc.txt')
]);
.createHash(options)
Creates key-secret SHA-256 hash pair based on the salt. This pair can be verified the check-hash
middleware from swint-middleware
.
Options
key
:Number
, default: 15secret
:Number
, default: 25salt
:String
, default:SwintIsForTwins
Example
var hashPair = createHash({
salt: 'ItIsSalty'
});
// hashPair.key, hashPair.secret is generated
.traverseWithQuery(struct, query)
Traverses through a structure by following a list of keys/indexs.
Example
var s = { a: [1, 2, { b: 'ccc' } ] },
s2 = { a: { b: 'ccc2' } };
var o = traverseWithQuery(s, ['a', 2, 'b']),
o2 = traverseWithQuery(s2, 'a.b');
// o ==> 'ccc'
// o2 ==> 'ccc2'
5 years ago
6 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago