@spinajs/templates-xlsx 2.0.44

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 ADDED
@@ -0,0 +1,11 @@
1
+ # `email`
2
+
3
+ > TODO: description
4
+
5
+ ## Usage
6
+
7
+ ```
8
+ const email = require('email');
9
+
10
+ // TODO: DEMONSTRATE API
11
+ ```
package/lib/index.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ import { TemplateRenderer } from '@spinajs/templates';
2
+ import { Log } from '@spinajs/log';
3
+ export declare class XlsxRenderer extends TemplateRenderer {
4
+ protected Log: Log;
5
+ protected Templates: Map<string, string>;
6
+ protected Options: any;
7
+ get Type(): string;
8
+ get Extension(): string;
9
+ resolve(): Promise<void>;
10
+ renderToFile(template: string, model: unknown, filePath: string, _language?: string): Promise<void>;
11
+ render(_templateName: string, _model: unknown, _language?: string): Promise<string>;
12
+ protected compile(templateName: string, path: string): Promise<void>;
13
+ }
package/lib/index.js ADDED
@@ -0,0 +1,95 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.XlsxRenderer = void 0;
36
+ const exceptions_1 = require("@spinajs/exceptions");
37
+ const templates_1 = require("@spinajs/templates");
38
+ const log_1 = require("@spinajs/log");
39
+ const configuration_1 = require("@spinajs/configuration");
40
+ const di_1 = require("@spinajs/di");
41
+ const xlsx_renderer_1 = require("xlsx-renderer");
42
+ const fs = __importStar(require("fs"));
43
+ let XlsxRenderer = class XlsxRenderer extends templates_1.TemplateRenderer {
44
+ constructor() {
45
+ super(...arguments);
46
+ this.Templates = new Map();
47
+ }
48
+ get Type() {
49
+ return 'xlsx';
50
+ }
51
+ get Extension() {
52
+ return '.xlsx';
53
+ }
54
+ async resolve() {
55
+ await super.resolve();
56
+ }
57
+ async renderToFile(template, model, filePath, _language) {
58
+ if (!this.Templates.has(template)) {
59
+ throw new exceptions_1.IOFail(`Cannot find template file ${template}`);
60
+ }
61
+ const tFile = this.Templates.get(template);
62
+ if (!fs.existsSync(tFile)) {
63
+ throw new exceptions_1.IOFail(`File for template ${template} at path ${tFile} not exists`);
64
+ }
65
+ this.Log.trace(`Rendering xlsx template ${template}`);
66
+ this.Log.timeStart(`XlsxTemplate.render.start.${template}`);
67
+ const renderer = new xlsx_renderer_1.Renderer();
68
+ const result = await renderer.renderFromFile(this.Templates.get(template), model);
69
+ await result.xlsx.writeFile(filePath);
70
+ const time = this.Log.timeEnd(`XlsxTemplate.render.start.${template}`);
71
+ this.Log.trace(`Rendering xlsx template ${template} ended, (${time} ms)`);
72
+ }
73
+ async render(_templateName, _model, _language) {
74
+ return Promise.reject(new exceptions_1.NotSupported('Cannot render xlsx to memory'));
75
+ }
76
+ compile(templateName, path) {
77
+ // we cannot precompile xlsx files, just empty resolve
78
+ // and add to template list
79
+ this.Templates.set(templateName, path);
80
+ return Promise.resolve();
81
+ }
82
+ };
83
+ __decorate([
84
+ (0, log_1.Logger)('renderer'),
85
+ __metadata("design:type", log_1.Log)
86
+ ], XlsxRenderer.prototype, "Log", void 0);
87
+ __decorate([
88
+ (0, configuration_1.Config)('templates.xlsx'),
89
+ __metadata("design:type", Object)
90
+ ], XlsxRenderer.prototype, "Options", void 0);
91
+ XlsxRenderer = __decorate([
92
+ (0, di_1.Injectable)(templates_1.TemplateRenderer)
93
+ ], XlsxRenderer);
94
+ exports.XlsxRenderer = XlsxRenderer;
95
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA2D;AAE3D,kDAAsD;AACtD,sCAA2C;AAC3C,0DAAgD;AAChD,oCAAyC;AACzC,iDAAyC;AACzC,uCAAyB;AAGzB,IAAa,YAAY,GAAzB,MAAa,YAAa,SAAQ,4BAAgB;IAAlD;;QAIY,cAAS,GAAwB,IAAI,GAAG,EAAkB,CAAC;IAoDvE,CAAC;IA/CC,IAAW,IAAI;QACb,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,KAAc,EAAE,QAAgB,EAAE,SAAkB;QAC9F,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACjC,MAAM,IAAI,mBAAM,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;SAC3D;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YACzB,MAAM,IAAI,mBAAM,CAAC,qBAAqB,QAAQ,YAAY,KAAK,aAAa,CAAC,CAAC;SAC/E;QAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;QAE5D,MAAM,QAAQ,GAAG,IAAI,wBAAQ,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;QAElF,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAEtC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,QAAQ,YAAY,IAAI,MAAM,CAAC,CAAC;IAC5E,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,aAAqB,EAAE,MAAe,EAAE,SAAkB;QAC5E,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,yBAAY,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC1E,CAAC;IAES,OAAO,CAAC,YAAoB,EAAE,IAAY;QAClD,sDAAsD;QACtD,2BAA2B;QAE3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAEvC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF,CAAA;AAtDC;IADC,IAAA,YAAM,EAAC,UAAU,CAAC;8BACJ,SAAG;yCAAC;AAKnB;IADC,IAAA,sBAAM,EAAC,gBAAgB,CAAC;;6CACF;AAPZ,YAAY;IADxB,IAAA,eAAU,EAAC,4BAAgB,CAAC;GAChB,YAAY,CAwDxB;AAxDY,oCAAY"}
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@spinajs/templates-xlsx",
3
+ "version": "2.0.44",
4
+ "description": "templates support eg. html file generation",
5
+ "main": "lib/index.js",
6
+ "private": false,
7
+ "scripts": {
8
+ "build": "npm run clean && npm run compile",
9
+ "compile": "tsc -p tsconfig.build.json",
10
+ "clean": "",
11
+ "test": "ts-mocha -p tsconfig.json test/**/*.test.ts",
12
+ "coverage": "nyc npm run test",
13
+ "build-docs": "rimraf docs && typedoc --options typedoc.json src/",
14
+ "prepare": "npm run build",
15
+ "format": "prettier --write \"src/**/*.ts\"",
16
+ "lint": "eslint -c .eslintrc.js --ext .ts src --fix",
17
+ "prepublishOnly": "npm test && npm run lint",
18
+ "preversion": "npm run lint",
19
+ "version": "npm run format && git add -A src",
20
+ "postversion": "git push && git push --tags"
21
+ },
22
+ "files": [
23
+ "lib/**/*"
24
+ ],
25
+ "types": "lib",
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git+https://github.com/spinajs/main.git"
29
+ },
30
+ "keywords": [
31
+ "spinajs",
32
+ "http"
33
+ ],
34
+ "author": "SpinaJS <spinajs@coderush.pl> (https://github.com/spinajs/main)",
35
+ "license": "MIT",
36
+ "bugs": {
37
+ "url": "https://github.com/spinajs/main/issues"
38
+ },
39
+ "homepage": "https://github.com/spinajs/main#readme",
40
+ "devDependencies": {
41
+ "@types/handlebars": "^4.1.0",
42
+ "@types/luxon": "^2.3.1",
43
+ "@types/mocha": "9.1.1",
44
+ "@types/node": "^16.11.11",
45
+ "@types/pug": "^2.0.4"
46
+ },
47
+ "dependencies": {
48
+ "@spinajs/configuration": "^2.0.44",
49
+ "@spinajs/di": "^2.0.44",
50
+ "@spinajs/exceptions": "^2.0.39",
51
+ "@spinajs/internal-logger": "^2.0.44",
52
+ "@spinajs/log": "^2.0.44",
53
+ "tempfile": "3.0.0",
54
+ "xlsx-renderer": "^2.4.4"
55
+ },
56
+ "gitHead": "1857a6e3626e0fed22ffb0b44b48d587c79898db"
57
+ }