@tstdl/base 0.83.25 → 0.83.26
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/examples/template/basic.js +10 -2
- package/object-storage/s3/s3.object-storage.js +6 -1
- package/package.json +11 -11
- package/pool/pool.d.ts +6 -1
- package/pool/pool.js +2 -2
- package/templates/renderers/handlebars.template-renderer.d.ts +4 -4
- package/templates/renderers/handlebars.template-renderer.js +12 -2
|
@@ -9,14 +9,22 @@ var import_jsx_template_renderer = require("../../templates/renderers/jsx.templa
|
|
|
9
9
|
var import_file_template_resolver = require("../../templates/resolvers/file.template-resolver.js");
|
|
10
10
|
var import_jsx_template_resolver = require("../../templates/resolvers/jsx.template-resolver.js");
|
|
11
11
|
var import_node_path = require("node:path");
|
|
12
|
+
var import_node_url = require("node:url");
|
|
13
|
+
const import_meta = {};
|
|
14
|
+
let dirname;
|
|
15
|
+
try {
|
|
16
|
+
dirname = (0, import_node_url.fileURLToPath)(new URL(".", import_meta.url));
|
|
17
|
+
} catch {
|
|
18
|
+
dirname = __dirname;
|
|
19
|
+
}
|
|
12
20
|
(0, import_core.configureTstdl)();
|
|
13
21
|
(0, import_templates.configureTemplates)({
|
|
14
22
|
templateProvider: import_file_template_provider.FileTemplateProvider,
|
|
15
23
|
templateResolvers: [import_file_template_resolver.FileTemplateResolver, import_jsx_template_resolver.JsxTemplateResolver],
|
|
16
24
|
templateRenderers: [import_handlebars_template_renderer.HandlebarsTemplateRenderer, import_jsx_template_renderer.JsxTemplateRenderer]
|
|
17
25
|
});
|
|
18
|
-
(0, import_file_template_provider.configureFileTemplateProvider)({ basePath: (0, import_node_path.resolve)(
|
|
19
|
-
(0, import_file_template_resolver.configureFileTemplateResolver)({ basePath: (0, import_node_path.resolve)(
|
|
26
|
+
(0, import_file_template_provider.configureFileTemplateProvider)({ basePath: (0, import_node_path.resolve)(dirname, "templates") });
|
|
27
|
+
(0, import_file_template_resolver.configureFileTemplateResolver)({ basePath: (0, import_node_path.resolve)(dirname.replace("dist", "source"), "templates") });
|
|
20
28
|
async function test() {
|
|
21
29
|
const templateService = await import_container.container.resolveAsync(import_templates.TemplateService);
|
|
22
30
|
const handlebarsResult = await templateService.render("hello-name", { name: "Max Mustermann" });
|
|
@@ -86,7 +86,12 @@ let S3ObjectStorage = class S3ObjectStorage2 extends import_object_storage.Objec
|
|
|
86
86
|
}
|
|
87
87
|
async uploadObjectStream(key, stream, options) {
|
|
88
88
|
const bucketKey = this.getBucketKey(key);
|
|
89
|
-
|
|
89
|
+
const readable = import_node_stream.Readable.fromWeb(stream);
|
|
90
|
+
const errorPromise = new Promise((_, reject) => readable.on("error", reject));
|
|
91
|
+
await Promise.race([
|
|
92
|
+
this.client.putObject(this.bucket, bucketKey, readable, options?.metadata),
|
|
93
|
+
errorPromise
|
|
94
|
+
]);
|
|
90
95
|
}
|
|
91
96
|
async getContent(key) {
|
|
92
97
|
const bucketKey = this.getBucketKey(key);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tstdl/base",
|
|
3
|
-
"version": "0.83.
|
|
3
|
+
"version": "0.83.26",
|
|
4
4
|
"author": "Patrick Hein",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
"@types/mjml": "4.7",
|
|
32
32
|
"@types/node": "18",
|
|
33
33
|
"@types/nodemailer": "6.4",
|
|
34
|
-
"@typescript-eslint/eslint-plugin": "5.
|
|
35
|
-
"@typescript-eslint/parser": "5.
|
|
34
|
+
"@typescript-eslint/eslint-plugin": "5.59",
|
|
35
|
+
"@typescript-eslint/parser": "5.59",
|
|
36
36
|
"concurrently": "8.0",
|
|
37
37
|
"esbuild": "0.17",
|
|
38
38
|
"eslint": "8.38",
|
|
@@ -46,22 +46,22 @@
|
|
|
46
46
|
"@elastic/elasticsearch": "^8.7",
|
|
47
47
|
"@koa/router": "^12.0",
|
|
48
48
|
"@tstdl/angular": "^0.83",
|
|
49
|
-
"@zxcvbn-ts/core": "2.2",
|
|
50
|
-
"@zxcvbn-ts/language-common": "2.0",
|
|
51
|
-
"@zxcvbn-ts/language-de": "2.1",
|
|
52
|
-
"@zxcvbn-ts/language-en": "2.1",
|
|
49
|
+
"@zxcvbn-ts/core": "^2.2",
|
|
50
|
+
"@zxcvbn-ts/language-common": "^2.0",
|
|
51
|
+
"@zxcvbn-ts/language-de": "^2.1",
|
|
52
|
+
"@zxcvbn-ts/language-en": "^2.1",
|
|
53
53
|
"chroma-js": "^2.4",
|
|
54
54
|
"handlebars": "^4.7",
|
|
55
55
|
"knex": "^2.4",
|
|
56
56
|
"koa": "^2.14",
|
|
57
57
|
"minio": "^7.0",
|
|
58
58
|
"mjml": "^4.14",
|
|
59
|
-
"mongodb": "5.
|
|
59
|
+
"mongodb": "^5.3",
|
|
60
60
|
"nodemailer": "^6.9",
|
|
61
61
|
"preact": "^10.13",
|
|
62
|
-
"preact-render-to-string": "^
|
|
63
|
-
"puppeteer": "^19.
|
|
64
|
-
"undici": "^5.
|
|
62
|
+
"preact-render-to-string": "^6.0",
|
|
63
|
+
"puppeteer": "^19.10",
|
|
64
|
+
"undici": "^5.22",
|
|
65
65
|
"urlpattern-polyfill": "^7.0"
|
|
66
66
|
},
|
|
67
67
|
"peerDependenciesMeta": {
|
package/pool/pool.d.ts
CHANGED
|
@@ -7,10 +7,15 @@ export type PoolOptions = {
|
|
|
7
7
|
* @default number of cpu cores
|
|
8
8
|
*/
|
|
9
9
|
size?: number;
|
|
10
|
+
/**
|
|
11
|
+
* Dipose used instance on error instead of reusing it.
|
|
12
|
+
* @default false
|
|
13
|
+
*/
|
|
14
|
+
disposeOnError?: boolean;
|
|
10
15
|
};
|
|
11
16
|
export type PoolUseOptions = {
|
|
12
17
|
/**
|
|
13
|
-
* Dipose used instance on error instead of reusing it.
|
|
18
|
+
* Dipose used instance on error instead of reusing it. Overwrites pool instance option
|
|
14
19
|
* @default false
|
|
15
20
|
*/
|
|
16
21
|
disposeOnError?: boolean;
|
package/pool/pool.js
CHANGED
|
@@ -44,6 +44,7 @@ class Pool {
|
|
|
44
44
|
this.factory = factory;
|
|
45
45
|
this.disposer = disposer;
|
|
46
46
|
this.logger = logger;
|
|
47
|
+
this.disposeOnError = options?.disposeOnError ?? false;
|
|
47
48
|
this.freeInstances = new import_array_list.ArrayList();
|
|
48
49
|
this.usedInstances = new import_set.Set();
|
|
49
50
|
this.placeholderInstances = 0;
|
|
@@ -96,7 +97,7 @@ class Pool {
|
|
|
96
97
|
await this.release(instance);
|
|
97
98
|
return result;
|
|
98
99
|
} catch (error) {
|
|
99
|
-
if (options.disposeOnError
|
|
100
|
+
if (options.disposeOnError ?? this.disposeOnError) {
|
|
100
101
|
try {
|
|
101
102
|
await this.disposeInstance(instance);
|
|
102
103
|
} catch (disposeError) {
|
|
@@ -135,6 +136,5 @@ class Pool {
|
|
|
135
136
|
await this.disposer(instance);
|
|
136
137
|
this.usedInstances.delete(instance);
|
|
137
138
|
}
|
|
138
|
-
await this[import_disposable.disposeAsync]();
|
|
139
139
|
}
|
|
140
140
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ObjectLiteral, Record } from '../../types.js';
|
|
2
|
-
import * as
|
|
2
|
+
import type * as Handlebars from 'handlebars';
|
|
3
3
|
import { TemplateResolverProvider } from '../template-resolver.provider.js';
|
|
4
4
|
import type { TemplateField } from '../template.model.js';
|
|
5
5
|
import type { TemplateRenderObject } from '../template.renderer.js';
|
|
@@ -18,12 +18,12 @@ export type HandlebarsTemplateHelperOptions = {
|
|
|
18
18
|
data?: Record<string>;
|
|
19
19
|
hash: Record<string>;
|
|
20
20
|
lookupProperty: (object: ObjectLiteral, propertyName: string) => unknown;
|
|
21
|
-
fn?:
|
|
22
|
-
inverse?:
|
|
21
|
+
fn?: Handlebars.TemplateDelegate;
|
|
22
|
+
inverse?: Handlebars.TemplateDelegate;
|
|
23
23
|
};
|
|
24
24
|
export type HandlebarsTemplateHelper = (context: unknown, args: unknown[], options: HandlebarsTemplateHelperOptions) => any;
|
|
25
25
|
export type HandlebarsTemplateHelpersObject = Record<string, HandlebarsTemplateHelper>;
|
|
26
|
-
export type HandlebarsTemplatePartial = string | TemplateField<string, 'handlebars', HandlebarsRendererOptions> |
|
|
26
|
+
export type HandlebarsTemplatePartial = string | TemplateField<string, 'handlebars', HandlebarsRendererOptions> | Handlebars.TemplateDelegate;
|
|
27
27
|
export type HandlebarsTemplatePartialsObject = Record<string, HandlebarsTemplatePartial>;
|
|
28
28
|
export type HandlebarsRendererOptions = {
|
|
29
29
|
strict?: boolean;
|
|
@@ -35,7 +35,6 @@ var import_container = require("../../container/index.js");
|
|
|
35
35
|
var import_memoize = require("../../utils/function/memoize.js");
|
|
36
36
|
var import_object = require("../../utils/object/object.js");
|
|
37
37
|
var import_type_guards = require("../../utils/type-guards.js");
|
|
38
|
-
var handlebars = __toESM(require("handlebars"), 1);
|
|
39
38
|
var import_template_resolver_provider = require("../template-resolver.provider.js");
|
|
40
39
|
var import_template_renderer = require("../template.renderer.js");
|
|
41
40
|
var __decorate = function(decorators, target, key, desc) {
|
|
@@ -71,7 +70,8 @@ let HandlebarsTemplateRenderer = class HandlebarsTemplateRenderer2 extends impor
|
|
|
71
70
|
async _compileHandlebarsTemplate(renderObject) {
|
|
72
71
|
const { template, options = {} } = renderObject;
|
|
73
72
|
const allHelpers = getAllPartialHelpersDeep(renderObject);
|
|
74
|
-
const
|
|
73
|
+
const compile = await importHandlebarsCompile();
|
|
74
|
+
const renderer = compile(template, {
|
|
75
75
|
strict: options.strict ?? true,
|
|
76
76
|
preventIndent: options.preventIndent,
|
|
77
77
|
knownHelpers: (0, import_type_guards.isDefined)(allHelpers) ? (0, import_object.mapObjectValues)(allHelpers, () => true) : void 0,
|
|
@@ -126,3 +126,13 @@ function getPartialHelpersDeep(partial) {
|
|
|
126
126
|
const childEntries = (0, import_object.objectValues)(partial.options?.partials ?? {}).flatMap(getPartialHelpersDeep);
|
|
127
127
|
return [...entries, ...childEntries];
|
|
128
128
|
}
|
|
129
|
+
let handlebarsCompile;
|
|
130
|
+
async function importHandlebarsCompile() {
|
|
131
|
+
if ((0, import_type_guards.isDefined)(handlebarsCompile)) {
|
|
132
|
+
return handlebarsCompile;
|
|
133
|
+
}
|
|
134
|
+
const handlebars = await import("handlebars");
|
|
135
|
+
const compile = handlebars.compile ?? handlebars.default?.compile;
|
|
136
|
+
(0, import_type_guards.assertDefined)(compile, "Could not import handlebars.");
|
|
137
|
+
return handlebarsCompile = compile;
|
|
138
|
+
}
|