@itrocks/framework
Version:
RAD framework for intuitive web application development, blending data and domain-driven design with modular architecture
35 lines • 1.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseDecorator = parseDecorator;
const class_type_1 = require("@itrocks/class-type");
const class_view_1 = require("@itrocks/class-view");
const class_view_2 = require("@itrocks/class-view");
const property_view_1 = require("@itrocks/property-view");
const reflect_1 = require("@itrocks/reflect");
const reflect_2 = require("@itrocks/reflect");
const rename_1 = require("@itrocks/rename");
const route_1 = require("@itrocks/route");
const translate_1 = require("@itrocks/translate");
function parseDecorator(variable, data) {
if ((typeof data !== 'function') && (typeof data !== 'object')) {
console.error('Bad data for variable', variable, 'data', data);
}
switch (variable) {
case '@display':
if (data instanceof reflect_2.ReflectProperty)
return (0, translate_1.tr)((0, property_view_1.displayOf)(data.class.object ?? data.class.type, data.name));
if (data instanceof reflect_1.ReflectClass)
return (0, translate_1.tr)((0, class_view_1.displayOf)(data.type));
if (typeof data === 'object')
return (0, class_view_1.displayOf)(data);
return data;
case '@output':
return new rename_1.Str((0, class_view_2.trOutputOf)(data));
case '@route':
return (0, route_1.routeOf)(data);
case '@typeRoute':
return (0, route_1.routeOf)((0, class_type_1.typeOf)(data));
}
return '?';
}
//# sourceMappingURL=parseDecorator.js.map