UNPKG

sbis3-node-ws

Version:

Модуль позволяет использовать ядро интерфейсного фреймворка sbis3-ws(`core.js`) и модуль работы с данными (`Source.js`) в приложении на nodejs.

105 lines (87 loc) 3.32 kB
(function(){ "use strict"; var global = (function(){ return this || (0,eval)('this'); }()), define = global.define || (global.requirejs && global.requirejs.define); define("is-api", function() { var api = {}; api.normalize = function(name, normalize) { var f = api.parse(name); f.feature = normalize(f.feature); if (f.yesModuleId) f.yesModuleId = normalize(f.yesModuleId); if (f.noModuleId) f.noModuleId = normalize(f.noModuleId); //reconstruct if (f.type == 'lookup') return f.feature; if (!f.yesBuild) f.yesModuleId = '[' + f.yesModuleId + ']'; if (!f.noBuild) f.noModuleId = '[' + f.noModuleId + ']'; if (f.type == 'load_if_not') return '~' + f.feature + '?' + f.yesModuleId + (f.noModuleId ? ':' + f.noModuleId : ''); if (f.type == 'load_if') return f.feature + '?' + f.yesModuleId + (f.noModuleId ? ':' + f.noModuleId : ''); } /* * Breakdown 'is' call into an object: * { * feature: 'featureId', * type: 'load_if' / 'load_if_not' / 'lookup' * yesModuleId: 'moduleId' * noModuleId: 'moduleId' * yesBuild: true / false * noBuild: true / false * } */ api.parse = function(f) { var feature = f.substr(0, f.indexOf('?')); var actions = f.substr(feature.length + 1, f.length - feature.length - 1); var yesModuleId = actions.substr(0, actions.indexOf(':')); if (actions.substr(yesModuleId.length + 1, 2) == '//') yesModuleId = actions.substr(0, actions.indexOf(':', yesModuleId.length + 1)); var noModuleId = actions.substr(yesModuleId.length + 1, actions.length - yesModuleId.length - 1); if (yesModuleId == '') { yesModuleId = actions; noModuleId = null; } var yesBuild = true; var noBuild = true; if (yesModuleId && yesModuleId.substr(0, 1) == '[' && yesModuleId.substr(yesModuleId.length - 1, 1) == ']') { yesModuleId = yesModuleId.substr(1, yesModuleId.length - 2); yesBuild = false; } if (noModuleId && noModuleId.substr(0, 1) == '[' && noModuleId.substr(noModuleId.length - 1, 1) == ']') { noModuleId = noModuleId.substr(1, noModuleId.length - 2); noBuild = false; } //is!feature if (feature == '') return { feature: f, type: 'lookup' } //is!feature?moduleId if (feature.substr(0, 1) == '~') return { feature: feature.substr(1, f.length - 1), type: 'load_if_not', yesModuleId: yesModuleId, noModuleId: noModuleId, yesBuild: yesBuild, noBuild: noBuild }; //is!~feature?moduleId else return { feature: feature, type: 'load_if', yesModuleId: yesModuleId, noModuleId: noModuleId, yesBuild: yesBuild, noBuild: noBuild }; } return api; }); })();