Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var regex = /\{([a-zA-Z\.0-9]*)\}/mg;
- var getObject = function (obj, str) {
- var parts = str.split('.');
- for (var i = 0, l = parts.length; i < l; ++i) {
- if (!obj[parts[i]] || obj[parts[i]] === null) {
- return null;
- }
- obj = obj[parts[i]];
- }
- return obj;
- };
- module.exports = function (template, obj) {
- if (arguments.length === 1) {
- return template;
- } else if (arguments.length === 2) {
- if (arguments[1] == null) {
- return template;
- } else if (typeof arguments[1] === 'object') {
- var obj = arguments[1];
- } else if (typeof arguments[1] === 'Array') {
- var obj = arguments[1];
- } else {
- var obj = [arguments[1]];
- }
- } else if (arguments.length > 1) {
- var obj = Array.slice.call(arguments, 1);
- } else {
- return template;
- }
- return template.replace(regex, function (match, name) {
- return getObject(obj, name) || match;
- });
- };
Add Comment
Please, Sign In to add comment