"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const handlebars = require("handlebars");
const handlebarsHelpers = require("handlebars-helpers");
require("../handlebars/helpers/is-allow-property");
require("../handlebars/helpers/bracket-close");
require("../handlebars/helpers/bracket-open");
require("../handlebars/helpers/calculate-form-group-col");
require("../handlebars/helpers/has-comma-in-validation-form-control");
require("../handlebars/helpers/has-items");
require("../handlebars/helpers/has-validation-form-control");
require("../handlebars/helpers/initial-form-group-data");
require("../handlebars/helpers/is-i18n-data-lang-property");
require("../handlebars/helpers/is-i18n-relation-property");
require("../handlebars/helpers/is-pivot-path");
require("../handlebars/helpers/is-undefined");
require("../handlebars/helpers/loops");
require("../handlebars/helpers/mocker");
require("../handlebars/helpers/nanoid");
require("../handlebars/helpers/not-in-array");
require("../handlebars/helpers/object");
require("../handlebars/helpers/postman-quotes");
require("../handlebars/helpers/random-decimal-digits");
require("../handlebars/helpers/random-integer-digits");
require("../handlebars/helpers/set-var");
require("../handlebars/helpers/string-to-camel-case");
require("../handlebars/helpers/string-to-kebab-case");
require("../handlebars/helpers/string-to-pascal-case");
require("../handlebars/helpers/string-to-snake-case");
require("../handlebars/helpers/uuid");
require("../handlebars/partials/declare-i18n-repository");
require("../handlebars/partials/i18n");
require("../handlebars/partials/import-i18n-repository");
require("../handlebars/partials/import-value-objects");
require("../handlebars/partials/inputs/boolean-input");
require("../handlebars/partials/inputs/char-input");
require("../handlebars/partials/inputs/date-input");
require("../handlebars/partials/inputs/enum-input");
require("../handlebars/partials/inputs/int-input");
require("../handlebars/partials/inputs/decimal-input");
require("../handlebars/partials/inputs/text-input");
require("../handlebars/partials/inputs/timestamp-input");
require("../handlebars/partials/inputs/varchar-input");
require("../handlebars/partials/many-to-many-array-items");
require("../prototypes/string-to-camel-case.interface");
require("../prototypes/string-to-camel-case");
require("../prototypes/string-to-kebab-case.interface");
require("../prototypes/string-to-kebab-case");
require("../prototypes/string-to-pascal-case.interface");
require("../prototypes/string-to-pascal-case");
require("../prototypes/string-to-snake-case.interface");
require("../prototypes/string-to-snake-case");
const templateEngine = {
    /**
     * Render templates with handlebars template engine.
     * @param {string} content - Template content
     * @param {any} data - Data helper to render templates
     * @return {Promise<string>} Rendered template
     */
    async render(content, data) {
        // add helpers to handlebars template engine
        handlebarsHelpers({ handlebars });
        return handlebars.compile(content)(data, {
            allowProtoPropertiesByDefault: true,
            allowProtoMethodsByDefault: true,
        });
    },
};
exports.default = templateEngine;
