@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.
@@ -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)(__dirname, "templates") });
19
- (0, import_file_template_resolver.configureFileTemplateResolver)({ basePath: (0, import_node_path.resolve)(__dirname.replace("dist", "source"), "templates") });
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
- await this.client.putObject(this.bucket, bucketKey, import_node_stream.Readable.fromWeb(stream), options?.metadata);
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.25",
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.58",
35
- "@typescript-eslint/parser": "5.58",
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.2",
59
+ "mongodb": "^5.3",
60
60
  "nodemailer": "^6.9",
61
61
  "preact": "^10.13",
62
- "preact-render-to-string": "^5.2",
63
- "puppeteer": "^19.9",
64
- "undici": "^5.21",
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 == true) {
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 handlebars from 'handlebars';
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?: handlebars.TemplateDelegate;
22
- inverse?: handlebars.TemplateDelegate;
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> | handlebars.TemplateDelegate;
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 renderer = handlebars.compile(template, {
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
+ }