UNPKG

dscaffold

Version:

A TypeScript framework for scaffolding modular Discord bot projects with dynamic command and event loading

83 lines 3.09 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TemplateRenderer = void 0; const mustache_1 = __importDefault(require("mustache")); class TemplateRenderer { constructor() { // Add helper functions for Mustache templates this.setupHelpers(); } render(template, data) { return mustache_1.default.render(template, { ...data, ...this.getHelpers(), }); } renderFile(templatePath, data) { // This would load template from file system in a real implementation // For now, we'll use the inline templates in ProjectGenerator throw new Error('File-based templates not implemented yet'); } setupHelpers() { // Mustache doesn't support functions in templates by default // We'll add helper data properties instead } getHelpers() { return { convertMongooseType: () => (text, render) => { const type = render(text); const typeMap = { string: 'String', number: 'Number', boolean: 'Boolean', date: 'Date', objectid: 'mongoose.Schema.Types.ObjectId', array: 'Array', }; return typeMap[type.toLowerCase()] || 'String'; }, convertPrismaType: () => (text, render) => { const type = render(text); const typeMap = { string: 'String', number: 'Int', boolean: 'Boolean', date: 'DateTime', objectid: 'String', array: 'String[]', }; return typeMap[type.toLowerCase()] || 'String'; }, convertSequelizeType: () => (text, render) => { const type = render(text); const typeMap = { string: 'string', number: 'number', boolean: 'boolean', date: 'Date', objectid: 'string', array: 'string[]', }; return typeMap[type.toLowerCase()] || 'string'; }, convertSequelizeDataType: () => (text, render) => { const type = render(text); const typeMap = { string: 'STRING', number: 'INTEGER', boolean: 'BOOLEAN', date: 'DATE', objectid: 'STRING', array: 'JSON', }; return typeMap[type.toLowerCase()] || 'STRING'; }, isTypeScript: (language) => language === 'typescript', }; } } exports.TemplateRenderer = TemplateRenderer; //# sourceMappingURL=TemplateRenderer.js.map