@punks/backend-entity-manager 0.0.374 → 0.0.376
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/dist/cjs/index.js +17 -5
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/abstractions/email.d.ts +1 -0
- package/dist/cjs/types/abstractions/serializer.d.ts +2 -0
- package/dist/esm/index.js +17 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/abstractions/email.d.ts +1 -0
- package/dist/esm/types/abstractions/serializer.d.ts +2 -0
- package/dist/index.d.ts +3 -0
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
export interface IEmailTemplateMiddleware {
|
|
3
3
|
processPayload(payload: unknown): Promise<unknown>;
|
|
4
|
+
processInput(input: TemplatedEmailInput<unknown>): Promise<TemplatedEmailInput<unknown>>;
|
|
4
5
|
}
|
|
5
6
|
export interface IEmailTemplate<TTemplateData, TPayload, TAugmentedPayload = TPayload> {
|
|
6
7
|
processPayload(payload: TPayload): Promise<TAugmentedPayload>;
|
|
@@ -37,6 +37,8 @@ export type EntitySerializerColumnDefinition<TSheetItem> = {
|
|
|
37
37
|
validators?: EntitySerializerColumnValidator<TSheetItem>[];
|
|
38
38
|
idColumn?: boolean;
|
|
39
39
|
sheetParser?: EntitySerializerSheetCustomParser;
|
|
40
|
+
array?: boolean;
|
|
41
|
+
arraySeparator?: string;
|
|
40
42
|
};
|
|
41
43
|
export type EntitySerializerSheetDefinition<TSheetItem> = {
|
|
42
44
|
columns: EntitySerializerColumnDefinition<TSheetItem>[];
|
package/dist/esm/index.js
CHANGED
|
@@ -185,6 +185,9 @@ class EntitySeeder {
|
|
|
185
185
|
|
|
186
186
|
const normalizeSheetColumn = (column) => column.replace(/ /g, "").toLowerCase();
|
|
187
187
|
const DEFAULT_DELIMITER = ";";
|
|
188
|
+
const DEFAULT_ARRAY_SEPARATOR = "|";
|
|
189
|
+
const splitArrayColumn = (value, separator) => value?.toString().split(separator ?? DEFAULT_ARRAY_SEPARATOR);
|
|
190
|
+
const joinArrayColumn = (value, separator) => value?.map((x) => x.toString()).join(separator ?? DEFAULT_ARRAY_SEPARATOR);
|
|
188
191
|
class EntitySerializer {
|
|
189
192
|
constructor(services, options) {
|
|
190
193
|
this.services = services;
|
|
@@ -244,7 +247,10 @@ class EntitySerializer {
|
|
|
244
247
|
if (typeof column.selector === "function") {
|
|
245
248
|
throw new Error("Function selectors are not supported with parseAction specified");
|
|
246
249
|
}
|
|
247
|
-
|
|
250
|
+
const parsedColumn = this.parseColumnValue(record, column);
|
|
251
|
+
entity[column.selector] = column.array
|
|
252
|
+
? splitArrayColumn(parsedColumn, column.arraySeparator)
|
|
253
|
+
: parsedColumn;
|
|
248
254
|
}
|
|
249
255
|
const validationErrors = [];
|
|
250
256
|
for (const column of definition.columns) {
|
|
@@ -371,7 +377,12 @@ class EntitySerializer {
|
|
|
371
377
|
: []),
|
|
372
378
|
...definition.columns.map((c) => ({
|
|
373
379
|
name: c.name,
|
|
374
|
-
value: (item) =>
|
|
380
|
+
value: (item) => {
|
|
381
|
+
const value = this.getColumnValue(item, c);
|
|
382
|
+
return c.array
|
|
383
|
+
? joinArrayColumn(value, c.arraySeparator)
|
|
384
|
+
: value;
|
|
385
|
+
},
|
|
375
386
|
})),
|
|
376
387
|
], {
|
|
377
388
|
delimiter: DEFAULT_DELIMITER,
|
|
@@ -22633,8 +22644,9 @@ let EmailService = class EmailService {
|
|
|
22633
22644
|
...input,
|
|
22634
22645
|
payload: transformedPayload,
|
|
22635
22646
|
};
|
|
22636
|
-
await this.
|
|
22637
|
-
await this.
|
|
22647
|
+
const transformedInput = (await this.templateMiddleware?.processInput(sendInput)) ?? sendInput;
|
|
22648
|
+
await this.provider.sendTemplatedEmail(transformedInput, template);
|
|
22649
|
+
await this.logger.logTemplatedEmail(transformedInput);
|
|
22638
22650
|
}
|
|
22639
22651
|
async sendHtmlEmail(input) {
|
|
22640
22652
|
await this.provider.sendHtmlEmail(input);
|
|
@@ -40657,7 +40669,7 @@ const registerHandlebarsHelpers = () => {
|
|
|
40657
40669
|
}
|
|
40658
40670
|
});
|
|
40659
40671
|
lib.registerHelper("uppercase", function (str) {
|
|
40660
|
-
return str
|
|
40672
|
+
return str?.toUpperCase();
|
|
40661
40673
|
});
|
|
40662
40674
|
lib.registerHelper("isDefined", function (value) {
|
|
40663
40675
|
return !isNullOrUndefined(value);
|