UNPKG

3.27 kBSource Map (JSON)View Raw
1{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../../../src/lib/output/utils/resources/templates.ts"],"names":[],"mappings":";;AAAA,yCAAyC;AAEzC,0CAA6C;AAC7C,mCAAkD;AAElD,MAAa,QAAkB,SAAQ,gBAAQ;IAG3C,WAAW;QACP,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,MAAM,GAAG,GAAG,aAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE;gBACpC,aAAa,EAAE,IAAI;aACtB,CAAC,CAAC;SACN;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,OAAY,EAAE,OAAa;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;CACJ;AAlBD,4BAkBC;AAED,MAAa,aAAc,SAAQ,qBAAuB;IACtD;QACI,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9B,CAAC;CACJ;AAJD,sCAIC;AAED,MAAa,YAAa,SAAQ,aAAa;IAA/C;;QACY,oBAAe,GAAa,EAAE,CAAC;IAkC3C,CAAC;IAhCG,QAAQ;QACJ,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;YACnB,OAAO,KAAK,CAAC;SAChB;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAEzC,KAAK,IAAI,IAAI,IAAI,SAAS,EAAE;YACxB,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACrC,SAAS;aACZ;YACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEhC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SAC9C;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU;QACN,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;YACrB,OAAO,KAAK,CAAC;SAChB;QAED,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;YACnC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SACtC;QAED,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAnCD,oCAmCC","sourcesContent":["import * as Handlebars from 'handlebars';\n\nimport { readFile } from '../../../utils/fs';\nimport { ResourceStack, Resource } from './stack';\n\nexport class Template<T = any> extends Resource {\n private template?: Handlebars.TemplateDelegate<T>;\n\n getTemplate(): Handlebars.TemplateDelegate<T> {\n if (!this.template) {\n const raw = readFile(this.fileName);\n this.template = Handlebars.compile(raw, {\n preventIndent: true\n });\n }\n\n return this.template;\n }\n\n render(context: any, options?: any): string {\n const template = this.getTemplate();\n return template(context, options);\n }\n}\n\nexport class TemplateStack extends ResourceStack<Template> {\n constructor() {\n super(Template, /\\.hbs$/);\n }\n}\n\nexport class PartialStack extends TemplateStack {\n private registeredNames: string[] = [];\n\n activate(): boolean {\n if (!super.activate()) {\n return false;\n }\n const resources = this.getAllResources();\n\n for (let name in resources) {\n if (this.registeredNames.includes(name)) {\n continue;\n }\n this.registeredNames.push(name);\n\n const partial = resources[name];\n const template = partial.getTemplate();\n Handlebars.registerPartial(name, template);\n }\n\n return true;\n }\n\n deactivate(): boolean {\n if (!super.deactivate()) {\n return false;\n }\n\n for (let name of this.registeredNames) {\n Handlebars.unregisterPartial(name);\n }\n\n this.registeredNames = [];\n return true;\n }\n}\n"]}
\No newline at end of file