/**
* String module.
* @namespace lib.string
* @author Taka Okunishi
*
*/
var prototype = require('./_prototype.js');
/**
* Define an object property getter to access prototype property.
* @private
*/
function getPrototypeProperty (key) {
return {
enumerable: true,
get: function () {
return prototype[key];
}
};
}
// Export prototype properties with lazy loading.
Object.defineProperties(exports, {
_patterns: getPrototypeProperty('_patterns'),
camelize: getPrototypeProperty('camelize'),
capitalize: getPrototypeProperty('capitalize'),
decapitalize: getPrototypeProperty('decapitalize'),
isString: getPrototypeProperty('isString'),
sprintf: getPrototypeProperty('sprintf'),
toHankaku: getPrototypeProperty('toHankaku'),
toHiragana: getPrototypeProperty('toHiragana'),
toKatakana: getPrototypeProperty('toKatakana'),
toZenkaku: getPrototypeProperty('toZenkaku'),
underscorize: getPrototypeProperty('underscorize')
});
/**
* Define an object property getter with require function.
* @private
*/
function getRequire (moduleName) {
return {
enumerable: true,
get: function () {
return require(moduleName);
}
};
}
// Export modules with lazy loading.
Object.defineProperties(exports, {
padZero: getRequire('./pad_zero'),
pluralize: getRequire('./pluralize')
});