dm
Version:
Dependency Injection Manager
53 lines (48 loc) • 1.29 kB
JavaScript
var Template = require("../template"),
_ = require("../../../utils"),
ServiceTemplate;
/**
* ServiceTemplate
*
* @class ServiceTemplate
* @extends Template
* @author Sergey Kamardin <s.kamardin@tcsbank.ru>
*/
ServiceTemplate = Template.extend(
/**
* @lends ServiceTemplate.prototype
*/
{
define: function(match) {
var name, property, args;
name = match[1];
property = match[2];
if ((args = match[3])) {
try {
args = JSON.parse(args);
} catch (err) {
throw new Error("Could not parse arguments for service '" + name + "'");
}
}
return {
name: name,
property: property,
args: args
};
}
},
{
/**
* Template for checking reference to the service.
*
* Could be applied to string in format:
* @<service>[:<method>[\[<argument-1>,[<argument-n>]\]]]
*
* @type {RegExp}
* @private
* @static
*/
REGEXP: /^@([a-zA-Z_$][0-9a-zA-Z_$\.\-]*)(?::([^\[\]]+)(\[.*\])?)?$/i
}
);
module.exports = ServiceTemplate;