UNPKG

@itrocks/framework

Version:

RAD framework for intuitive web application development, blending data and domain-driven design with modular architecture

152 lines 8.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.bind = bind; const lazy_loading_1 = require("@itrocks/lazy-loading"); (0, lazy_loading_1.initLazyLoading)(); const action_1 = require("@itrocks/action"); const app_dir_1 = require("@itrocks/app-dir"); const class_file_1 = require("@itrocks/class-file"); const class_type_1 = require("@itrocks/class-type"); const class_type_2 = require("@itrocks/class-type"); const class_view_1 = require("@itrocks/class-view"); const class_view_2 = require("@itrocks/class-view"); const collection_1 = require("@itrocks/collection"); const composition_1 = require("@itrocks/composition"); const config_1 = require("@itrocks/config"); const core_transformers_1 = require("@itrocks/core-transformers"); const core_transformers_2 = require("@itrocks/core-transformers"); const property_1 = require("@itrocks/decorator/property"); const file_1 = require("@itrocks/file"); const lazy_loading_2 = require("@itrocks/lazy-loading"); const list_properties_1 = require("@itrocks/list-properties"); const mysql_1 = require("@itrocks/mysql"); const password_1 = require("@itrocks/password"); const transformers_1 = require("@itrocks/password/transformers"); const property_translate_1 = require("@itrocks/property-translate"); const transformers_2 = require("@itrocks/property-translate/transformers"); const property_view_1 = require("@itrocks/property-view"); const property_view_2 = require("@itrocks/property-view"); const rename_1 = require("@itrocks/rename"); const rename_2 = require("@itrocks/rename"); const required_1 = require("@itrocks/required"); const route_1 = require("@itrocks/route"); const route_2 = require("@itrocks/route"); const sql_functions_1 = require("@itrocks/sql-functions"); const storage_1 = require("@itrocks/storage"); const store_1 = require("@itrocks/store"); const store_2 = require("@itrocks/store"); const string_formats_1 = require("@itrocks/string-formats"); const transformers_3 = require("@itrocks/string-formats/transformers"); const template_1 = require("@itrocks/template"); const template_insight_1 = require("@itrocks/template-insight"); const transformer_1 = require("@itrocks/transformer"); const transformer_2 = require("@itrocks/transformer"); const transformer_3 = require("@itrocks/transformer"); const translate_1 = require("@itrocks/translate"); const date_fns_1 = require("date-fns"); const node_path_1 = require("node:path"); const node_path_2 = require("node:path"); async function propertyOutput(object, property) { return (0, transformer_1.applyTransformer)(await object[property], object, property, transformer_2.HTML, transformer_3.OUTPUT); } function bind() { (0, class_view_1.classViewDependsOn)({ propertyOutput, requiredOf: required_1.requiredOf, tr: translate_1.tr }); if (config_1.config.dataSource) { (0, storage_1.createDataSource)(config_1.config.dataSource); } (0, collection_1.initCollection)(); (0, core_transformers_1.initCoreTransformers)({ displayOf: property_view_1.displayOf, fieldIdOf: rename_2.toCssId, fieldNameOf: rename_2.toField, formatDate: date => (0, date_fns_1.format)(date, (0, translate_1.tr)('dd/MM/yyyy', { ucFirst: false })), ignoreTransformedValue: transformer_2.IGNORE, parseDate: date => (0, date_fns_1.parse)(date, (0, translate_1.tr)('dd/MM/yyyy', { ucFirst: false }), new Date), propertyOutput, representativeValueOf: class_view_2.representativeValueOf, routeOf: route_2.routeOf, tr: translate_1.tr }); (0, file_1.initFileTransformers)(); (0, list_properties_1.initListProperties)(); (0, property_view_2.initOrderedProperties)(); (0, string_formats_1.multilineDependsOn)({ setTransformers: transformers_3.setMultilineTransformers }); (0, mysql_1.mysqlDependsOn)({ applyReadTransformer: async function (data, property, object) { const value = await (0, transformer_1.applyTransformer)(data[property.toString()], object, property, transformer_3.SQL, transformer_3.READ, data); if ((value !== transformer_2.IGNORE) && Reflect.getOwnMetadata(lazy_loading_2.PROTECT_GET, object, (0, property_1.metadataNameOf)(property))) { Reflect.deleteMetadata(lazy_loading_2.PROTECT_GET, object, (0, property_1.metadataNameOf)(property)); } return value; }, applySaveTransformer: async function (object, property, data) { const value = Reflect.getMetadata(lazy_loading_2.PROTECT_GET, object, (0, property_1.metadataNameOf)(property)) ? (Object.hasOwn(object, property) ? object[property] : undefined) : await object[property]; return (0, transformer_1.applyTransformer)(value, object, property, transformer_3.SQL, transformer_3.SAVE, data); }, columnOf: rename_1.toColumn, componentOf: composition_1.componentOf, ignoreTransformedValue: transformer_2.IGNORE, QueryFunction: sql_functions_1.SqlFunction, queryFunctionCall: value => [value.value, value.sql], storeOf: store_2.storeOf }); (0, password_1.passwordDependsOn)({ setTransformers: transformers_1.setPasswordTransformers }); (0, route_1.routeDependsOn)({ calculate: (target) => route_2.routes.summarize((0, class_file_1.fileOf)(target).slice(app_dir_1.appDir.length, -3)) }); (0, property_translate_1.propertyTranslateDependsOn)({ setTransformers: transformers_2.setPropertyTranslateTransformers }); (0, store_1.storeDependsOn)({ setTransformers: core_transformers_2.initStoreTransformers, toStoreName: rename_1.toColumn }); (0, template_1.templateDependsOn)({ toString: async (data) => (((typeof data)[0] === 'o') && (data.toString === Object.prototype.toString)) ? (await require('@itrocks/class-view').representativeValueOf(data)) : '' + data }); (0, translate_1.trInit)('fr-FR'); (0, translate_1.trLoad)((0, node_path_1.join)(__dirname, '..', 'fr-FR.csv')).catch(); (0, translate_1.trLoad)((0, node_path_1.join)(app_dir_1.appDir, 'app', 'fr-FR.csv')).catch(); (0, translate_1.trLoad)((0, node_path_1.join)(app_dir_1.appDir, 'fr-FR.csv')).catch(); action_1.Action.prototype.htmlTemplateResponse = async function (data, request, templateFile, statusCode = 200, headers = {}) { const containerData = Object.assign(defaultContainerData(request), this); const contained = !request.request.headers['xhr-info'] && config_1.config.container?.file; const template = new template_insight_1.Template(data, containerData); return this.htmlResponse(await template.parseFile(templateFile, contained && (0, node_path_1.join)(app_dir_1.appDir, config_1.config.container.file)), statusCode, headers); }; } function configContainerData() { const configContainerData = config_1.config.container?.data ?? {}; for (const [name, value] of Object.entries(configContainerData)) { if ((typeof value === 'string') && '@.'.includes(value[0])) { const exported = value.includes(':') ? require(value.split(':')[0])[value.split(':')[1]] : (require(value).default ?? Object.values(require(value))[0]); configContainerData[name] = (0, class_type_1.isAnyFunction)(exported) ? exported(config_1.config[name]) : (0, class_type_2.isAnyType)(exported) ? new exported(config_1.config[name]) : exported; } } return configContainerData; } function defaultContainerData(request) { return Object.assign({ action: request.action, favicon: config_1.config.container?.favicon ?? (0, node_path_2.normalize)((0, node_path_1.join)(__dirname, '../favicon.ico')), manifest: config_1.config.container?.manifest ? [config_1.config.container.manifest] : [], request, scripts: config_1.config.container?.scripts, session: request.request.session, styleSheets: config_1.config.container?.styleSheets, }, configContainerData()); } //# sourceMappingURL=dependencies.js.map