/pack-rat/003_pack_rat/pack-rat/bower_components/moment/src/lib/locale/set.js |
@@ -0,0 +1,49 @@ |
import isFunction from '../utils/is-function'; |
import extend from '../utils/extend'; |
import isObject from '../utils/is-object'; |
import hasOwnProp from '../utils/has-own-prop'; |
|
export function set (config) { |
var prop, i; |
for (i in config) { |
prop = config[i]; |
if (isFunction(prop)) { |
this[i] = prop; |
} else { |
this['_' + i] = prop; |
} |
} |
this._config = config; |
// Lenient ordinal parsing accepts just a number in addition to |
// number + (possibly) stuff coming from _dayOfMonthOrdinalParse. |
// TODO: Remove "ordinalParse" fallback in next major release. |
this._dayOfMonthOrdinalParseLenient = new RegExp( |
(this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + |
'|' + (/\d{1,2}/).source); |
} |
|
export function mergeConfigs(parentConfig, childConfig) { |
var res = extend({}, parentConfig), prop; |
for (prop in childConfig) { |
if (hasOwnProp(childConfig, prop)) { |
if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { |
res[prop] = {}; |
extend(res[prop], parentConfig[prop]); |
extend(res[prop], childConfig[prop]); |
} else if (childConfig[prop] != null) { |
res[prop] = childConfig[prop]; |
} else { |
delete res[prop]; |
} |
} |
} |
for (prop in parentConfig) { |
if (hasOwnProp(parentConfig, prop) && |
!hasOwnProp(childConfig, prop) && |
isObject(parentConfig[prop])) { |
// make sure changes to properties don't modify parent config |
res[prop] = extend({}, res[prop]); |
} |
} |
return res; |
} |