@spinajs/templates-handlebars 2.0.180 → 2.0.181
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.d.ts +11 -11
- package/lib/cjs/index.js +141 -141
- package/lib/cjs/index.js.map +1 -1
- package/lib/mjs/index.d.ts +11 -11
- package/lib/mjs/index.js +112 -112
- package/lib/mjs/index.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +7 -7
package/lib/cjs/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { TemplateRenderer } from '@spinajs/templates';
|
|
2
|
-
export declare class HandlebarsRenderer extends TemplateRenderer {
|
|
3
|
-
protected Options: any;
|
|
4
|
-
protected Templates: Map<string, HandlebarsTemplateDelegate<any>>;
|
|
5
|
-
get Type(): string;
|
|
6
|
-
get Extension(): string;
|
|
7
|
-
resolve(): Promise<void>;
|
|
8
|
-
renderToFile(template: string, model: unknown, filePath: string, language?: string): Promise<void>;
|
|
9
|
-
render(templateName: string, model: unknown, language?: string): Promise<string>;
|
|
10
|
-
protected compile(path: string): Promise<void>;
|
|
11
|
-
}
|
|
1
|
+
import { TemplateRenderer } from '@spinajs/templates';
|
|
2
|
+
export declare class HandlebarsRenderer extends TemplateRenderer {
|
|
3
|
+
protected Options: any;
|
|
4
|
+
protected Templates: Map<string, HandlebarsTemplateDelegate<any>>;
|
|
5
|
+
get Type(): string;
|
|
6
|
+
get Extension(): string;
|
|
7
|
+
resolve(): Promise<void>;
|
|
8
|
+
renderToFile(template: string, model: unknown, filePath: string, language?: string): Promise<void>;
|
|
9
|
+
render(templateName: string, model: unknown, language?: string): Promise<string>;
|
|
10
|
+
protected compile(path: string): Promise<void>;
|
|
11
|
+
}
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/cjs/index.js
CHANGED
|
@@ -1,142 +1,142 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
-
};
|
|
24
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
-
if (mod && mod.__esModule) return mod;
|
|
26
|
-
var result = {};
|
|
27
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
-
__setModuleDefault(result, mod);
|
|
29
|
-
return result;
|
|
30
|
-
};
|
|
31
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
32
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
33
|
-
};
|
|
34
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
-
};
|
|
37
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.HandlebarsRenderer = void 0;
|
|
39
|
-
const exceptions_1 = require("@spinajs/exceptions");
|
|
40
|
-
const intl_1 = require("@spinajs/intl");
|
|
41
|
-
const exceptions_2 = require("@spinajs/exceptions");
|
|
42
|
-
const fs = __importStar(require("fs"));
|
|
43
|
-
const path = __importStar(require("path"));
|
|
44
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
45
|
-
const templates_1 = require("@spinajs/templates");
|
|
46
|
-
const configuration_1 = require("@spinajs/configuration");
|
|
47
|
-
const di_1 = require("@spinajs/di");
|
|
48
|
-
const handlebars_1 = __importDefault(require("handlebars"));
|
|
49
|
-
const path_1 = require("path");
|
|
50
|
-
let HandlebarsRenderer = class HandlebarsRenderer extends templates_1.TemplateRenderer {
|
|
51
|
-
constructor() {
|
|
52
|
-
super(...arguments);
|
|
53
|
-
this.Templates = new Map();
|
|
54
|
-
}
|
|
55
|
-
get Type() {
|
|
56
|
-
return 'handlebars';
|
|
57
|
-
}
|
|
58
|
-
get Extension() {
|
|
59
|
-
return '.handlebars';
|
|
60
|
-
}
|
|
61
|
-
async resolve() {
|
|
62
|
-
handlebars_1.default.registerHelper('__', (context, options) => {
|
|
63
|
-
return (0, intl_1.__translate)(options.data.root.lang)(context);
|
|
64
|
-
});
|
|
65
|
-
handlebars_1.default.registerHelper('__n', (context, count, options) => {
|
|
66
|
-
return (0, intl_1.__translateNumber)(options.data.root.lang)(context, count);
|
|
67
|
-
});
|
|
68
|
-
handlebars_1.default.registerHelper('__l', (context) => {
|
|
69
|
-
return (0, intl_1.__translateL)(context);
|
|
70
|
-
});
|
|
71
|
-
handlebars_1.default.registerHelper('__h', (context) => {
|
|
72
|
-
return (0, intl_1.__translateH)(context);
|
|
73
|
-
});
|
|
74
|
-
handlebars_1.default.registerHelper('__textRight', (context, length) => {
|
|
75
|
-
if (context.length > length) {
|
|
76
|
-
return context.substring(0, length);
|
|
77
|
-
}
|
|
78
|
-
return context.padStart(length, ' ');
|
|
79
|
-
});
|
|
80
|
-
handlebars_1.default.registerHelper('__textCenter', (context, length) => {
|
|
81
|
-
if (context.length > length) {
|
|
82
|
-
return context.substring(0, length);
|
|
83
|
-
}
|
|
84
|
-
else if (context.length == length) {
|
|
85
|
-
return context;
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
const leftPadding = (length - context.length) / 2;
|
|
89
|
-
return context.padStart(leftPadding + context.length, ' ').padEnd(length, ' ');
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
await super.resolve();
|
|
93
|
-
}
|
|
94
|
-
async renderToFile(template, model, filePath, language) {
|
|
95
|
-
const content = await this.render(template, model, language);
|
|
96
|
-
const dir = path.dirname(filePath);
|
|
97
|
-
if (!fs.existsSync(dir)) {
|
|
98
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
99
|
-
}
|
|
100
|
-
fs.writeFileSync(filePath, content);
|
|
101
|
-
}
|
|
102
|
-
async render(templateName, model, language) {
|
|
103
|
-
this.Log.trace(`Rendering template ${templateName}`);
|
|
104
|
-
this.Log.timeStart(`HandlebarTemplate${templateName}`);
|
|
105
|
-
if (!templateName) {
|
|
106
|
-
throw new exceptions_2.InvalidArgument('template parameter cannot be null or empty');
|
|
107
|
-
}
|
|
108
|
-
let fTemplate = null;
|
|
109
|
-
if (!this.Templates.has((0, path_1.normalize)(templateName))) {
|
|
110
|
-
await this.compile((0, path_1.normalize)(templateName));
|
|
111
|
-
}
|
|
112
|
-
fTemplate = this.Templates.get((0, path_1.normalize)(templateName));
|
|
113
|
-
const lang = language ? language : (0, intl_1.guessLanguage)();
|
|
114
|
-
const tLang = lang ?? (0, intl_1.defaultLanguage)();
|
|
115
|
-
const content = fTemplate(lodash_1.default.merge(model ?? {}, {
|
|
116
|
-
lang: tLang,
|
|
117
|
-
}));
|
|
118
|
-
const time = this.Log.timeEnd(`HandlebarTemplate-${templateName}`);
|
|
119
|
-
this.Log.trace(`Rendering template ${templateName} ended, (${time} ms)`);
|
|
120
|
-
return Promise.resolve(content);
|
|
121
|
-
}
|
|
122
|
-
async compile(path) {
|
|
123
|
-
const tContent = fs.readFileSync(path, 'utf-8');
|
|
124
|
-
if (tContent.length === 0) {
|
|
125
|
-
throw new exceptions_1.IOFail(`Template file ${path} is empty`);
|
|
126
|
-
}
|
|
127
|
-
const tCompiled = handlebars_1.default.compile(tContent, this.Options);
|
|
128
|
-
if (!tCompiled) {
|
|
129
|
-
throw new exceptions_1.IOFail(`Cannot compile handlebars template from path ${path}`);
|
|
130
|
-
}
|
|
131
|
-
this.Templates.set(path, tCompiled);
|
|
132
|
-
}
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
HandlebarsRenderer
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
32
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.HandlebarsRenderer = void 0;
|
|
39
|
+
const exceptions_1 = require("@spinajs/exceptions");
|
|
40
|
+
const intl_1 = require("@spinajs/intl");
|
|
41
|
+
const exceptions_2 = require("@spinajs/exceptions");
|
|
42
|
+
const fs = __importStar(require("fs"));
|
|
43
|
+
const path = __importStar(require("path"));
|
|
44
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
45
|
+
const templates_1 = require("@spinajs/templates");
|
|
46
|
+
const configuration_1 = require("@spinajs/configuration");
|
|
47
|
+
const di_1 = require("@spinajs/di");
|
|
48
|
+
const handlebars_1 = __importDefault(require("handlebars"));
|
|
49
|
+
const path_1 = require("path");
|
|
50
|
+
let HandlebarsRenderer = class HandlebarsRenderer extends templates_1.TemplateRenderer {
|
|
51
|
+
constructor() {
|
|
52
|
+
super(...arguments);
|
|
53
|
+
this.Templates = new Map();
|
|
54
|
+
}
|
|
55
|
+
get Type() {
|
|
56
|
+
return 'handlebars';
|
|
57
|
+
}
|
|
58
|
+
get Extension() {
|
|
59
|
+
return '.handlebars';
|
|
60
|
+
}
|
|
61
|
+
async resolve() {
|
|
62
|
+
handlebars_1.default.registerHelper('__', (context, options) => {
|
|
63
|
+
return (0, intl_1.__translate)(options.data.root.lang)(context);
|
|
64
|
+
});
|
|
65
|
+
handlebars_1.default.registerHelper('__n', (context, count, options) => {
|
|
66
|
+
return (0, intl_1.__translateNumber)(options.data.root.lang)(context, count);
|
|
67
|
+
});
|
|
68
|
+
handlebars_1.default.registerHelper('__l', (context) => {
|
|
69
|
+
return (0, intl_1.__translateL)(context);
|
|
70
|
+
});
|
|
71
|
+
handlebars_1.default.registerHelper('__h', (context) => {
|
|
72
|
+
return (0, intl_1.__translateH)(context);
|
|
73
|
+
});
|
|
74
|
+
handlebars_1.default.registerHelper('__textRight', (context, length) => {
|
|
75
|
+
if (context.length > length) {
|
|
76
|
+
return context.substring(0, length);
|
|
77
|
+
}
|
|
78
|
+
return context.padStart(length, ' ');
|
|
79
|
+
});
|
|
80
|
+
handlebars_1.default.registerHelper('__textCenter', (context, length) => {
|
|
81
|
+
if (context.length > length) {
|
|
82
|
+
return context.substring(0, length);
|
|
83
|
+
}
|
|
84
|
+
else if (context.length == length) {
|
|
85
|
+
return context;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const leftPadding = (length - context.length) / 2;
|
|
89
|
+
return context.padStart(leftPadding + context.length, ' ').padEnd(length, ' ');
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
await super.resolve();
|
|
93
|
+
}
|
|
94
|
+
async renderToFile(template, model, filePath, language) {
|
|
95
|
+
const content = await this.render(template, model, language);
|
|
96
|
+
const dir = path.dirname(filePath);
|
|
97
|
+
if (!fs.existsSync(dir)) {
|
|
98
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
99
|
+
}
|
|
100
|
+
fs.writeFileSync(filePath, content);
|
|
101
|
+
}
|
|
102
|
+
async render(templateName, model, language) {
|
|
103
|
+
this.Log.trace(`Rendering template ${templateName}`);
|
|
104
|
+
this.Log.timeStart(`HandlebarTemplate${templateName}`);
|
|
105
|
+
if (!templateName) {
|
|
106
|
+
throw new exceptions_2.InvalidArgument('template parameter cannot be null or empty');
|
|
107
|
+
}
|
|
108
|
+
let fTemplate = null;
|
|
109
|
+
if (!this.Templates.has((0, path_1.normalize)(templateName))) {
|
|
110
|
+
await this.compile((0, path_1.normalize)(templateName));
|
|
111
|
+
}
|
|
112
|
+
fTemplate = this.Templates.get((0, path_1.normalize)(templateName));
|
|
113
|
+
const lang = language ? language : (0, intl_1.guessLanguage)();
|
|
114
|
+
const tLang = lang ?? (0, intl_1.defaultLanguage)();
|
|
115
|
+
const content = fTemplate(lodash_1.default.merge(model ?? {}, {
|
|
116
|
+
lang: tLang,
|
|
117
|
+
}));
|
|
118
|
+
const time = this.Log.timeEnd(`HandlebarTemplate-${templateName}`);
|
|
119
|
+
this.Log.trace(`Rendering template ${templateName} ended, (${time} ms)`);
|
|
120
|
+
return Promise.resolve(content);
|
|
121
|
+
}
|
|
122
|
+
async compile(path) {
|
|
123
|
+
const tContent = fs.readFileSync(path, 'utf-8');
|
|
124
|
+
if (tContent.length === 0) {
|
|
125
|
+
throw new exceptions_1.IOFail(`Template file ${path} is empty`);
|
|
126
|
+
}
|
|
127
|
+
const tCompiled = handlebars_1.default.compile(tContent, this.Options);
|
|
128
|
+
if (!tCompiled) {
|
|
129
|
+
throw new exceptions_1.IOFail(`Cannot compile handlebars template from path ${path}`);
|
|
130
|
+
}
|
|
131
|
+
this.Templates.set(path, tCompiled);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
exports.HandlebarsRenderer = HandlebarsRenderer;
|
|
135
|
+
__decorate([
|
|
136
|
+
(0, configuration_1.Config)('templates.handlebars'),
|
|
137
|
+
__metadata("design:type", Object)
|
|
138
|
+
], HandlebarsRenderer.prototype, "Options", void 0);
|
|
139
|
+
exports.HandlebarsRenderer = HandlebarsRenderer = __decorate([
|
|
140
|
+
(0, di_1.Injectable)(templates_1.TemplateRenderer)
|
|
141
|
+
], HandlebarsRenderer);
|
|
142
142
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/mjs/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { TemplateRenderer } from '@spinajs/templates';
|
|
2
|
-
export declare class HandlebarsRenderer extends TemplateRenderer {
|
|
3
|
-
protected Options: any;
|
|
4
|
-
protected Templates: Map<string, HandlebarsTemplateDelegate<any>>;
|
|
5
|
-
get Type(): string;
|
|
6
|
-
get Extension(): string;
|
|
7
|
-
resolve(): Promise<void>;
|
|
8
|
-
renderToFile(template: string, model: unknown, filePath: string, language?: string): Promise<void>;
|
|
9
|
-
render(templateName: string, model: unknown, language?: string): Promise<string>;
|
|
10
|
-
protected compile(path: string): Promise<void>;
|
|
11
|
-
}
|
|
1
|
+
import { TemplateRenderer } from '@spinajs/templates';
|
|
2
|
+
export declare class HandlebarsRenderer extends TemplateRenderer {
|
|
3
|
+
protected Options: any;
|
|
4
|
+
protected Templates: Map<string, HandlebarsTemplateDelegate<any>>;
|
|
5
|
+
get Type(): string;
|
|
6
|
+
get Extension(): string;
|
|
7
|
+
resolve(): Promise<void>;
|
|
8
|
+
renderToFile(template: string, model: unknown, filePath: string, language?: string): Promise<void>;
|
|
9
|
+
render(templateName: string, model: unknown, language?: string): Promise<string>;
|
|
10
|
+
protected compile(path: string): Promise<void>;
|
|
11
|
+
}
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/mjs/index.js
CHANGED
|
@@ -1,113 +1,113 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { IOFail } from '@spinajs/exceptions';
|
|
11
|
-
import { __translate, __translateNumber, __translateL, __translateH, guessLanguage, defaultLanguage } from '@spinajs/intl';
|
|
12
|
-
import { InvalidArgument } from '@spinajs/exceptions';
|
|
13
|
-
import * as fs from 'fs';
|
|
14
|
-
import * as path from 'path';
|
|
15
|
-
import _ from 'lodash';
|
|
16
|
-
import { TemplateRenderer } from '@spinajs/templates';
|
|
17
|
-
import { Config } from '@spinajs/configuration';
|
|
18
|
-
import { Injectable } from '@spinajs/di';
|
|
19
|
-
import Handlebars from 'handlebars';
|
|
20
|
-
import { normalize } from 'path';
|
|
21
|
-
let HandlebarsRenderer = class HandlebarsRenderer extends TemplateRenderer {
|
|
22
|
-
constructor() {
|
|
23
|
-
super(...arguments);
|
|
24
|
-
this.Templates = new Map();
|
|
25
|
-
}
|
|
26
|
-
get Type() {
|
|
27
|
-
return 'handlebars';
|
|
28
|
-
}
|
|
29
|
-
get Extension() {
|
|
30
|
-
return '.handlebars';
|
|
31
|
-
}
|
|
32
|
-
async resolve() {
|
|
33
|
-
Handlebars.registerHelper('__', (context, options) => {
|
|
34
|
-
return __translate(options.data.root.lang)(context);
|
|
35
|
-
});
|
|
36
|
-
Handlebars.registerHelper('__n', (context, count, options) => {
|
|
37
|
-
return __translateNumber(options.data.root.lang)(context, count);
|
|
38
|
-
});
|
|
39
|
-
Handlebars.registerHelper('__l', (context) => {
|
|
40
|
-
return __translateL(context);
|
|
41
|
-
});
|
|
42
|
-
Handlebars.registerHelper('__h', (context) => {
|
|
43
|
-
return __translateH(context);
|
|
44
|
-
});
|
|
45
|
-
Handlebars.registerHelper('__textRight', (context, length) => {
|
|
46
|
-
if (context.length > length) {
|
|
47
|
-
return context.substring(0, length);
|
|
48
|
-
}
|
|
49
|
-
return context.padStart(length, ' ');
|
|
50
|
-
});
|
|
51
|
-
Handlebars.registerHelper('__textCenter', (context, length) => {
|
|
52
|
-
if (context.length > length) {
|
|
53
|
-
return context.substring(0, length);
|
|
54
|
-
}
|
|
55
|
-
else if (context.length == length) {
|
|
56
|
-
return context;
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
const leftPadding = (length - context.length) / 2;
|
|
60
|
-
return context.padStart(leftPadding + context.length, ' ').padEnd(length, ' ');
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
await super.resolve();
|
|
64
|
-
}
|
|
65
|
-
async renderToFile(template, model, filePath, language) {
|
|
66
|
-
const content = await this.render(template, model, language);
|
|
67
|
-
const dir = path.dirname(filePath);
|
|
68
|
-
if (!fs.existsSync(dir)) {
|
|
69
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
70
|
-
}
|
|
71
|
-
fs.writeFileSync(filePath, content);
|
|
72
|
-
}
|
|
73
|
-
async render(templateName, model, language) {
|
|
74
|
-
this.Log.trace(`Rendering template ${templateName}`);
|
|
75
|
-
this.Log.timeStart(`HandlebarTemplate${templateName}`);
|
|
76
|
-
if (!templateName) {
|
|
77
|
-
throw new InvalidArgument('template parameter cannot be null or empty');
|
|
78
|
-
}
|
|
79
|
-
let fTemplate = null;
|
|
80
|
-
if (!this.Templates.has(normalize(templateName))) {
|
|
81
|
-
await this.compile(normalize(templateName));
|
|
82
|
-
}
|
|
83
|
-
fTemplate = this.Templates.get(normalize(templateName));
|
|
84
|
-
const lang = language ? language : guessLanguage();
|
|
85
|
-
const tLang = lang ?? defaultLanguage();
|
|
86
|
-
const content = fTemplate(_.merge(model ?? {}, {
|
|
87
|
-
lang: tLang,
|
|
88
|
-
}));
|
|
89
|
-
const time = this.Log.timeEnd(`HandlebarTemplate-${templateName}`);
|
|
90
|
-
this.Log.trace(`Rendering template ${templateName} ended, (${time} ms)`);
|
|
91
|
-
return Promise.resolve(content);
|
|
92
|
-
}
|
|
93
|
-
async compile(path) {
|
|
94
|
-
const tContent = fs.readFileSync(path, 'utf-8');
|
|
95
|
-
if (tContent.length === 0) {
|
|
96
|
-
throw new IOFail(`Template file ${path} is empty`);
|
|
97
|
-
}
|
|
98
|
-
const tCompiled = Handlebars.compile(tContent, this.Options);
|
|
99
|
-
if (!tCompiled) {
|
|
100
|
-
throw new IOFail(`Cannot compile handlebars template from path ${path}`);
|
|
101
|
-
}
|
|
102
|
-
this.Templates.set(path, tCompiled);
|
|
103
|
-
}
|
|
104
|
-
};
|
|
105
|
-
__decorate([
|
|
106
|
-
Config('templates.handlebars'),
|
|
107
|
-
__metadata("design:type", Object)
|
|
108
|
-
], HandlebarsRenderer.prototype, "Options", void 0);
|
|
109
|
-
HandlebarsRenderer = __decorate([
|
|
110
|
-
Injectable(TemplateRenderer)
|
|
111
|
-
], HandlebarsRenderer);
|
|
112
|
-
export { HandlebarsRenderer };
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { IOFail } from '@spinajs/exceptions';
|
|
11
|
+
import { __translate, __translateNumber, __translateL, __translateH, guessLanguage, defaultLanguage } from '@spinajs/intl';
|
|
12
|
+
import { InvalidArgument } from '@spinajs/exceptions';
|
|
13
|
+
import * as fs from 'fs';
|
|
14
|
+
import * as path from 'path';
|
|
15
|
+
import _ from 'lodash';
|
|
16
|
+
import { TemplateRenderer } from '@spinajs/templates';
|
|
17
|
+
import { Config } from '@spinajs/configuration';
|
|
18
|
+
import { Injectable } from '@spinajs/di';
|
|
19
|
+
import Handlebars from 'handlebars';
|
|
20
|
+
import { normalize } from 'path';
|
|
21
|
+
let HandlebarsRenderer = class HandlebarsRenderer extends TemplateRenderer {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
this.Templates = new Map();
|
|
25
|
+
}
|
|
26
|
+
get Type() {
|
|
27
|
+
return 'handlebars';
|
|
28
|
+
}
|
|
29
|
+
get Extension() {
|
|
30
|
+
return '.handlebars';
|
|
31
|
+
}
|
|
32
|
+
async resolve() {
|
|
33
|
+
Handlebars.registerHelper('__', (context, options) => {
|
|
34
|
+
return __translate(options.data.root.lang)(context);
|
|
35
|
+
});
|
|
36
|
+
Handlebars.registerHelper('__n', (context, count, options) => {
|
|
37
|
+
return __translateNumber(options.data.root.lang)(context, count);
|
|
38
|
+
});
|
|
39
|
+
Handlebars.registerHelper('__l', (context) => {
|
|
40
|
+
return __translateL(context);
|
|
41
|
+
});
|
|
42
|
+
Handlebars.registerHelper('__h', (context) => {
|
|
43
|
+
return __translateH(context);
|
|
44
|
+
});
|
|
45
|
+
Handlebars.registerHelper('__textRight', (context, length) => {
|
|
46
|
+
if (context.length > length) {
|
|
47
|
+
return context.substring(0, length);
|
|
48
|
+
}
|
|
49
|
+
return context.padStart(length, ' ');
|
|
50
|
+
});
|
|
51
|
+
Handlebars.registerHelper('__textCenter', (context, length) => {
|
|
52
|
+
if (context.length > length) {
|
|
53
|
+
return context.substring(0, length);
|
|
54
|
+
}
|
|
55
|
+
else if (context.length == length) {
|
|
56
|
+
return context;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
const leftPadding = (length - context.length) / 2;
|
|
60
|
+
return context.padStart(leftPadding + context.length, ' ').padEnd(length, ' ');
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
await super.resolve();
|
|
64
|
+
}
|
|
65
|
+
async renderToFile(template, model, filePath, language) {
|
|
66
|
+
const content = await this.render(template, model, language);
|
|
67
|
+
const dir = path.dirname(filePath);
|
|
68
|
+
if (!fs.existsSync(dir)) {
|
|
69
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
70
|
+
}
|
|
71
|
+
fs.writeFileSync(filePath, content);
|
|
72
|
+
}
|
|
73
|
+
async render(templateName, model, language) {
|
|
74
|
+
this.Log.trace(`Rendering template ${templateName}`);
|
|
75
|
+
this.Log.timeStart(`HandlebarTemplate${templateName}`);
|
|
76
|
+
if (!templateName) {
|
|
77
|
+
throw new InvalidArgument('template parameter cannot be null or empty');
|
|
78
|
+
}
|
|
79
|
+
let fTemplate = null;
|
|
80
|
+
if (!this.Templates.has(normalize(templateName))) {
|
|
81
|
+
await this.compile(normalize(templateName));
|
|
82
|
+
}
|
|
83
|
+
fTemplate = this.Templates.get(normalize(templateName));
|
|
84
|
+
const lang = language ? language : guessLanguage();
|
|
85
|
+
const tLang = lang ?? defaultLanguage();
|
|
86
|
+
const content = fTemplate(_.merge(model ?? {}, {
|
|
87
|
+
lang: tLang,
|
|
88
|
+
}));
|
|
89
|
+
const time = this.Log.timeEnd(`HandlebarTemplate-${templateName}`);
|
|
90
|
+
this.Log.trace(`Rendering template ${templateName} ended, (${time} ms)`);
|
|
91
|
+
return Promise.resolve(content);
|
|
92
|
+
}
|
|
93
|
+
async compile(path) {
|
|
94
|
+
const tContent = fs.readFileSync(path, 'utf-8');
|
|
95
|
+
if (tContent.length === 0) {
|
|
96
|
+
throw new IOFail(`Template file ${path} is empty`);
|
|
97
|
+
}
|
|
98
|
+
const tCompiled = Handlebars.compile(tContent, this.Options);
|
|
99
|
+
if (!tCompiled) {
|
|
100
|
+
throw new IOFail(`Cannot compile handlebars template from path ${path}`);
|
|
101
|
+
}
|
|
102
|
+
this.Templates.set(path, tCompiled);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
__decorate([
|
|
106
|
+
Config('templates.handlebars'),
|
|
107
|
+
__metadata("design:type", Object)
|
|
108
|
+
], HandlebarsRenderer.prototype, "Options", void 0);
|
|
109
|
+
HandlebarsRenderer = __decorate([
|
|
110
|
+
Injectable(TemplateRenderer)
|
|
111
|
+
], HandlebarsRenderer);
|
|
112
|
+
export { HandlebarsRenderer };
|
|
113
113
|
//# sourceMappingURL=index.js.map
|
package/lib/mjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC3H,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAG1B,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,gBAAgB;IAAjD;;QAIK,cAAS,GAAiD,IAAI,GAAG,EAA2C,CAAC;IAwGzH,CAAC;IAtGC,IAAW,IAAI;QACb,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YACnD,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC3D,OAAO,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;YAC3C,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;YAC3C,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,OAAe,EAAE,MAAM,EAAE,EAAE;YACnE,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE;gBAC3B,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;aACrC;YACD,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,OAAe,EAAE,MAAM,EAAE,EAAE;YACpE,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE;gBAC3B,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;aACrC;iBAAM,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,EAAE;gBACnC,OAAO,OAAO,CAAC;aAChB;iBAAM;gBACL,MAAM,WAAW,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAClD,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;aAChF;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,KAAc,EAAE,QAAgB,EAAE,QAAiB;QAC7F,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACvB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SACxC;QAED,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,YAAoB,EAAE,KAAc,EAAE,QAAiB;QACzE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,YAAY,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,oBAAoB,YAAY,EAAE,CAAC,CAAC;QAEvD,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,eAAe,CAAC,4CAA4C,CAAC,CAAC;SACzE;QAED,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE;YAChD,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;SAC7C;QAED,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;QAExD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,IAAI,eAAe,EAAE,CAAC;QAExC,MAAM,OAAO,GAAG,SAAS,CACvB,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE;YACnB,IAAI,EAAE,KAAK;SACZ,CAAC,CACH,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,YAAY,YAAY,IAAI,MAAM,CAAC,CAAC;QAEzE,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,IAAY;QAClC,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,MAAM,IAAI,MAAM,CAAC,iBAAiB,IAAI,WAAW,CAAC,CAAC;SACpD;QAED,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7D,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,IAAI,MAAM,CAAC,gDAAgD,IAAI,EAAE,CAAC,CAAC;SAC1E;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC;CACF,CAAA;AA1GW;IADT,MAAM,CAAC,sBAAsB,CAAC;;mDACR;AAFZ,kBAAkB;IAD9B,UAAU,CAAC,gBAAgB,CAAC;GAChB,kBAAkB,CA4G9B"}
|