sbis3-node-ws
Version:
Модуль позволяет использовать ядро интерфейсного фреймворка sbis3-ws(`core.js`) и модуль работы с данными (`Source.js`) в приложении на nodejs.
38 lines • 1.55 kB
JavaScript
define('js!Core/tmpl/js/astModules/template', ['js!Core/tmpl/js/helpers/State', 'js!Core/tmpl/js/helpers/entityHelpers', 'js!Core/tmpl/js/helpers/errorHandling'], function templateLoader(State, entityHelpers, errorHandling) {
'use strict';
var templateM = {
parse: function templateParse(tag) {
function templateAST() {
var unState = State.make();
this.traversingAST(tag.children).when(
function partialTraversing(modAST) {
unState.keep(modAST);
},
function brokenTraverse(reason) {
errorHandling(reason, this.filename);
}
);
return unState.promise;
}
function resolveStatement() {
var requestState = State.make(),
name;
try {
name = tag.attribs.name.trim();
} catch (e) {
errorHandling("Something wrong with name attribute in ws-template tag", this.filename);
}
if (tag.children === undefined || tag.children.length === 0) {
errorHandling("There is got to be a children in ws-template tag", this.filename);
}
this.includeStack[name] = templateAST.call(this);
requestState.keep(entityHelpers.createDataRequest(name));
return requestState.promise;
}
return function templateResolve() {
return resolveStatement.call(this);
};
}
};
return templateM;
});