@spinajs/templates 2.0.45 → 2.0.50
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/README.md +11 -11
- package/lib/cli/render.d.ts +1 -0
- package/lib/cli/render.d.ts.map +1 -0
- package/lib/cli/render.js +15 -41
- package/lib/cli/render.js.map +1 -1
- package/lib/config/templates.d.ts +1 -0
- package/lib/config/templates.d.ts.map +1 -0
- package/lib/config/templates.js +3 -5
- package/lib/config/templates.js.map +1 -1
- package/lib/index.d.ts +3 -2
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +18 -35
- package/lib/index.js.map +1 -1
- package/lib/interfaces.d.ts +4 -1
- package/lib/interfaces.d.ts.map +1 -0
- package/lib/interfaces.js +14 -14
- package/lib/interfaces.js.map +1 -1
- package/package.json +60 -60
- package/lib/di/src/array.d.ts +0 -10
- package/lib/di/src/array.js +0 -14
- package/lib/di/src/array.js.map +0 -1
- package/lib/di/src/container-cache.d.ts +0 -17
- package/lib/di/src/container-cache.js +0 -64
- package/lib/di/src/container-cache.js.map +0 -1
- package/lib/di/src/enums.d.ts +0 -31
- package/lib/di/src/enums.js +0 -36
- package/lib/di/src/enums.js.map +0 -1
- package/lib/di/src/helpers.d.ts +0 -25
- package/lib/di/src/helpers.js +0 -69
- package/lib/di/src/helpers.js.map +0 -1
- package/lib/di/src/interfaces.d.ts +0 -150
- package/lib/di/src/interfaces.js +0 -48
- package/lib/di/src/interfaces.js.map +0 -1
- package/lib/di/src/registry.d.ts +0 -14
- package/lib/di/src/registry.js +0 -81
- package/lib/di/src/registry.js.map +0 -1
- package/lib/di/src/types.d.ts +0 -13
- package/lib/di/src/types.js +0 -3
- package/lib/di/src/types.js.map +0 -1
- package/lib/templates/src/cli/render.d.ts +0 -12
- package/lib/templates/src/cli/render.js +0 -86
- package/lib/templates/src/cli/render.js.map +0 -1
- package/lib/templates/src/config/templates.d.ts +0 -9
- package/lib/templates/src/config/templates.js +0 -16
- package/lib/templates/src/config/templates.js.map +0 -1
- package/lib/templates/src/index.d.ts +0 -13
- package/lib/templates/src/index.js +0 -67
- package/lib/templates/src/index.js.map +0 -1
- package/lib/templates/src/interfaces.d.ts +0 -21
- package/lib/templates/src/interfaces.js +0 -71
- package/lib/templates/src/interfaces.js.map +0 -1
- package/lib/templates.js +0 -7
|
@@ -1,67 +0,0 @@
|
|
|
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
14
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
15
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
16
|
-
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;
|
|
17
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
18
|
-
};
|
|
19
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
20
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
|
-
};
|
|
22
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
23
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.Templates = void 0;
|
|
27
|
-
const exceptions_1 = require("@spinajs/exceptions");
|
|
28
|
-
const di_1 = require("@spinajs/di");
|
|
29
|
-
const log_1 = require("@spinajs/log");
|
|
30
|
-
const interfaces_1 = require("./interfaces");
|
|
31
|
-
const path_1 = require("path");
|
|
32
|
-
const intl_1 = require("@spinajs/intl");
|
|
33
|
-
__exportStar(require("./interfaces"), exports);
|
|
34
|
-
/**
|
|
35
|
-
* Inject INTL module for language support. We does nothing but to initialize module for use in templates.
|
|
36
|
-
*/
|
|
37
|
-
let Templates = class Templates extends di_1.AsyncService {
|
|
38
|
-
async render(template, model, language) {
|
|
39
|
-
const extension = (0, path_1.extname)(template);
|
|
40
|
-
if (!this.Renderers.has(extension)) {
|
|
41
|
-
throw new exceptions_1.InvalidOperation(`No renderer for file ${template} with extension ${extension}`);
|
|
42
|
-
}
|
|
43
|
-
return await this.Renderers.get(extension).render(template, model, language);
|
|
44
|
-
}
|
|
45
|
-
async renderToFile(template, model, filePath, language) {
|
|
46
|
-
const extension = (0, path_1.extname)(template);
|
|
47
|
-
if (!this.Renderers.has(extension)) {
|
|
48
|
-
throw new exceptions_1.InvalidOperation(`No renderer for file ${template} with extension ${extension}`);
|
|
49
|
-
}
|
|
50
|
-
return await this.Renderers.get(extension).renderToFile(template, model, filePath, language);
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
__decorate([
|
|
54
|
-
(0, log_1.Logger)('templates'),
|
|
55
|
-
__metadata("design:type", log_1.Log)
|
|
56
|
-
], Templates.prototype, "Log", void 0);
|
|
57
|
-
__decorate([
|
|
58
|
-
(0, di_1.Autoinject)(interfaces_1.TemplateRenderer, {
|
|
59
|
-
mapFunc: (x) => x.ServiceName,
|
|
60
|
-
}),
|
|
61
|
-
__metadata("design:type", Map)
|
|
62
|
-
], Templates.prototype, "Renderers", void 0);
|
|
63
|
-
Templates = __decorate([
|
|
64
|
-
(0, di_1.Inject)(intl_1.Intl)
|
|
65
|
-
], Templates);
|
|
66
|
-
exports.Templates = Templates;
|
|
67
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAuD;AACvD,oCAA+D;AAC/D,sCAA2C;AAC3C,6CAAgD;AAChD,+BAA+B;AAC/B,wCAAqC;AACrC,+CAA6B;AAE7B;;GAEG;AAEH,IAAa,SAAS,GAAtB,MAAa,SAAU,SAAQ,iBAAY;IASlC,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,KAAc,EAAE,QAAiB;QACrE,MAAM,SAAS,GAAG,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAClC,MAAM,IAAI,6BAAgB,CAAC,wBAAwB,QAAQ,mBAAmB,SAAS,EAAE,CAAC,CAAC;SAC5F;QAED,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/E,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,KAAc,EAAE,QAAgB,EAAE,QAAiB;QAC7F,MAAM,SAAS,GAAG,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAClC,MAAM,IAAI,6BAAgB,CAAC,wBAAwB,QAAQ,mBAAmB,SAAS,EAAE,CAAC,CAAC;SAC5F;QAED,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/F,CAAC;CACF,CAAA;AAxBC;IADC,IAAA,YAAM,EAAC,WAAW,CAAC;8BACL,SAAG;sCAAC;AAKnB;IAHC,IAAA,eAAU,EAAC,6BAAgB,EAAE;QAC5B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW;KAC9B,CAAC;8BACmB,GAAG;4CAA2B;AAPxC,SAAS;IADrB,IAAA,WAAM,EAAC,WAAI,CAAC;GACA,SAAS,CA0BrB;AA1BY,8BAAS"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { IMappableService } from './../../di/src/interfaces';
|
|
2
|
-
import { AsyncService } from '@spinajs/di';
|
|
3
|
-
import { Log } from '@spinajs/log';
|
|
4
|
-
export declare abstract class TemplateRenderer extends AsyncService implements IMappableService {
|
|
5
|
-
protected Log: Log;
|
|
6
|
-
protected TemplatePaths: string[];
|
|
7
|
-
protected TemplateFiles: Map<string, string[]>;
|
|
8
|
-
abstract get Type(): string;
|
|
9
|
-
abstract get Extension(): string;
|
|
10
|
-
get ServiceName(): string;
|
|
11
|
-
abstract render(templatePath: string, model: unknown, language?: string): Promise<string>;
|
|
12
|
-
abstract renderToFile(templatePath: string, model: unknown, filePath: string, language?: string): Promise<void>;
|
|
13
|
-
/**
|
|
14
|
-
* Function used for precompiling templates at load time. Not all template engines can support it, leave it empty if so.
|
|
15
|
-
*
|
|
16
|
-
* @param templateName - template name
|
|
17
|
-
* @param path - template full path
|
|
18
|
-
*/
|
|
19
|
-
protected abstract compile(templateName: string, path: string): Promise<void>;
|
|
20
|
-
resolve(): Promise<void>;
|
|
21
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
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;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.TemplateRenderer = void 0;
|
|
13
|
-
const configuration_1 = require("@spinajs/configuration");
|
|
14
|
-
const di_1 = require("@spinajs/di");
|
|
15
|
-
const log_1 = require("@spinajs/log");
|
|
16
|
-
const path_1 = require("path");
|
|
17
|
-
const glob_1 = require("glob");
|
|
18
|
-
class TemplateRenderer extends di_1.AsyncService {
|
|
19
|
-
constructor() {
|
|
20
|
-
super(...arguments);
|
|
21
|
-
this.TemplateFiles = new Map();
|
|
22
|
-
}
|
|
23
|
-
get ServiceName() {
|
|
24
|
-
// we map this service by extension
|
|
25
|
-
return this.Extension;
|
|
26
|
-
}
|
|
27
|
-
async resolve() {
|
|
28
|
-
for (const path of this.TemplatePaths) {
|
|
29
|
-
const files = glob_1.glob.sync((0, path_1.join)(path, `/**/*${this.Extension}`));
|
|
30
|
-
for (const file of files) {
|
|
31
|
-
const templateName = file.substring(path.length + 1, file.length);
|
|
32
|
-
if (this.TemplateFiles.has(templateName)) {
|
|
33
|
-
this.Log.trace(`Template ${templateName} is overriden by ${file}`);
|
|
34
|
-
this.TemplateFiles.get(templateName).push(file);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
this.Log.trace(`Found template ${templateName} file at path ${file}`);
|
|
38
|
-
this.TemplateFiles.set(templateName, [file]);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
for (const [templateName, path] of this.TemplateFiles) {
|
|
43
|
-
if (path.length === 0) {
|
|
44
|
-
this.Log.warn(`Template ${templateName} don't have any files`);
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
this.Log.trace(`Compiling template ${templateName}, at path ${path[path.length - 1]}`);
|
|
48
|
-
// compile only last template ( newest )
|
|
49
|
-
// templates can be overriden by other modules / libs
|
|
50
|
-
// or app
|
|
51
|
-
try {
|
|
52
|
-
await this.compile(templateName, path[path.length - 1]);
|
|
53
|
-
}
|
|
54
|
-
catch (err) {
|
|
55
|
-
this.Log.error(`Cannot compile template ${templateName} with file ${path[path.length - 1]}, reason: ${JSON.stringify(err)}`);
|
|
56
|
-
continue;
|
|
57
|
-
}
|
|
58
|
-
this.Log.trace(`Compiling template ${templateName}, at path ${path[path.length - 1]} finished`);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
__decorate([
|
|
63
|
-
(0, log_1.Logger)('renderer'),
|
|
64
|
-
__metadata("design:type", log_1.Log)
|
|
65
|
-
], TemplateRenderer.prototype, "Log", void 0);
|
|
66
|
-
__decorate([
|
|
67
|
-
(0, configuration_1.Config)('system.dirs.templates', { defaultValue: [] }),
|
|
68
|
-
__metadata("design:type", Array)
|
|
69
|
-
], TemplateRenderer.prototype, "TemplatePaths", void 0);
|
|
70
|
-
exports.TemplateRenderer = TemplateRenderer;
|
|
71
|
-
//# sourceMappingURL=interfaces.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,0DAAgD;AAChD,oCAA2C;AAC3C,sCAA2C;AAC3C,+BAA4B;AAC5B,+BAA4B;AAG5B,MAAsB,gBAAiB,SAAQ,iBAAY;IAA3D;;QAOY,kBAAa,GAA0B,IAAI,GAAG,EAAoB,CAAC;IA4D/E,CAAC;IAtDC,IAAW,WAAW;QACpB,mCAAmC;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAaM,KAAK,CAAC,OAAO;QAClB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE;YACrC,MAAM,KAAK,GAAG,WAAI,CAAC,IAAI,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAE9D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClE,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;oBACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,YAAY,oBAAoB,IAAI,EAAE,CAAC,CAAC;oBACnE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACjD;qBAAM;oBACL,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,YAAY,iBAAiB,IAAI,EAAE,CAAC,CAAC;oBACtE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;iBAC9C;aACF;SACF;QAED,KAAK,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE;YACrD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,YAAY,uBAAuB,CAAC,CAAC;gBAC/D,SAAS;aACV;YAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,YAAY,aAAa,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAEvF,wCAAwC;YACxC,qDAAqD;YACrD,SAAS;YACT,IAAI;gBACF,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;aACzD;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,YAAY,cAAc,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAE7H,SAAS;aACV;YAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,YAAY,aAAa,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;SACjG;IACH,CAAC;CACF;AAjEC;IADC,IAAA,YAAM,EAAC,UAAU,CAAC;8BACJ,SAAG;6CAAC;AAGnB;IADC,IAAA,sBAAM,EAAC,uBAAuB,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;;uDACpB;AALpC,4CAmEC"}
|