@punks/backend-core 0.0.31 → 0.0.33

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.
@@ -0,0 +1,10 @@
1
+ export declare const processArrayDifferences: <TItem, TInputItem, TId>({ elements, elementIdSelector, desiredItems, desiredItemSelector, }: {
2
+ elements: TItem[];
3
+ elementIdSelector: (item: TItem) => TId;
4
+ desiredItems: TInputItem[];
5
+ desiredItemSelector: (item: TInputItem) => TId;
6
+ }) => {
7
+ missingElements: TInputItem[];
8
+ exceedingElements: TItem[];
9
+ unchangedElements: TItem[];
10
+ };
@@ -0,0 +1 @@
1
+ export { processArrayDifferences } from "./arrays";
@@ -1,4 +1,5 @@
1
1
  export * from "./abstractions";
2
+ export * from "./functions";
2
3
  export * from "./logging";
3
4
  export * from "./models";
4
5
  export * from "./types";
@@ -22,4 +22,5 @@ export declare const distinctElements: <T>(values: T[], comparer: (value: T) =>
22
22
  export declare const jsonDistinct: <T>(values: T[]) => T[];
23
23
  export declare const iterate: <T>(values: T[], action: (item: T, next?: T | undefined, prev?: T | undefined) => void) => void;
24
24
  export declare const groupBy: <TKey, TValue>(values: TValue[], keySelector: (value: TValue) => TKey) => Map<TKey, TValue[]>;
25
+ export declare const subArrays: <T>(array1: T[], array2: T[], eqFn: (a: T, b: T) => boolean) => T[];
25
26
  export {};
@@ -0,0 +1,4 @@
1
+ export declare const addTime: (date: Date, offset: {
2
+ value: number;
3
+ unit: "year" | "month" | "day" | "hour" | "minute" | "second";
4
+ }) => Date;
@@ -1,4 +1,5 @@
1
1
  export * from "./array";
2
+ export { addTime } from "./dates";
2
3
  export { CsvColumnDefinition as ColumnDefinition, CsvBuildOptions, csvBuild, csvParse, } from "./csv";
3
4
  export { getDirectoryFilePaths } from "./files";
4
5
  export { joinPath, splitPath, ensureDirectory, getDirectoryPath } from "./paths";
package/dist/esm/index.js CHANGED
@@ -16,137 +16,6 @@ var MetaSerializationType;
16
16
  MetaSerializationType[MetaSerializationType["JSON"] = 1] = "JSON";
17
17
  })(MetaSerializationType || (MetaSerializationType = {}));
18
18
 
19
- class DefaultLogger {
20
- constructor(loggerName) {
21
- this.loggerName = loggerName;
22
- }
23
- debug(message, meta) {
24
- if (meta) {
25
- console.log(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
26
- }
27
- else {
28
- console.log(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
29
- }
30
- }
31
- info(message, meta) {
32
- if (meta) {
33
- console.info(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
34
- }
35
- else {
36
- console.info(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
37
- }
38
- }
39
- warn(message, meta) {
40
- if (meta) {
41
- console.warn(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
42
- }
43
- else {
44
- console.warn(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
45
- }
46
- }
47
- error(message, meta) {
48
- if (meta) {
49
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
50
- }
51
- else {
52
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
53
- }
54
- }
55
- fatal(message, meta) {
56
- if (meta) {
57
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
58
- }
59
- else {
60
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
61
- }
62
- }
63
- exception(message, error, meta) {
64
- if (meta) {
65
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, error, meta);
66
- }
67
- else {
68
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, error);
69
- }
70
- }
71
- }
72
-
73
- class InternalLogger {
74
- constructor(enabled, level, serialization, provider) {
75
- this.enabled = enabled;
76
- this.level = level;
77
- this.serialization = serialization;
78
- this.provider = provider;
79
- }
80
- debug(message, meta) {
81
- if (this.enabled && this.level === LogLevel.Debug) {
82
- this.provider.debug(message, this.serializeMeta(meta));
83
- }
84
- }
85
- info(message, meta) {
86
- if (this.enabled && this.level <= LogLevel.Info) {
87
- this.provider.info(message, this.serializeMeta(meta));
88
- }
89
- }
90
- warn(message, meta) {
91
- if (this.enabled && this.level <= LogLevel.Warn) {
92
- this.provider.warn(message, this.serializeMeta(meta));
93
- }
94
- }
95
- error(message, meta) {
96
- if (this.enabled && this.level <= LogLevel.Error) {
97
- this.provider.error(message, this.serializeMeta(meta));
98
- }
99
- }
100
- fatal(message, meta) {
101
- if (this.enabled && this.level <= LogLevel.Fatal) {
102
- this.provider.fatal(message, this.serializeMeta(meta));
103
- }
104
- }
105
- exception(message, error, meta) {
106
- if (this.enabled && this.level <= LogLevel.Error) {
107
- this.provider.exception(message, error, this.serializeMeta(meta));
108
- }
109
- }
110
- serializeMeta(meta) {
111
- switch (this.serialization) {
112
- case MetaSerializationType.JSON:
113
- return JSON.stringify(meta, null, 2);
114
- case MetaSerializationType.None:
115
- default:
116
- return meta;
117
- }
118
- }
119
- }
120
- const getLogger = ({ enabled, level, loggerName, serialization, }) => {
121
- return new InternalLogger(enabled, level, serialization, new DefaultLogger(loggerName));
122
- };
123
- class Log {
124
- static setSerializationType(type) {
125
- this.metaSerialization = type;
126
- }
127
- static setLevel(level) {
128
- this.level = level;
129
- this.enabled = true;
130
- }
131
- static enable() {
132
- this.enabled = true;
133
- }
134
- static disable() {
135
- this.enabled = false;
136
- }
137
- static getLogger(loggerName) {
138
- return getLogger({
139
- enabled: this.enabled,
140
- level: this.level,
141
- serialization: this.metaSerialization,
142
- loggerName,
143
- });
144
- }
145
- }
146
- Log.enabled = true;
147
- Log.level = LogLevel.Debug;
148
- Log.metaSerialization = MetaSerializationType.None;
149
-
150
19
  const range = (start, end) => {
151
20
  return new Array(end - start + 1).fill(undefined).map((x, i) => i + start);
152
21
  };
@@ -241,6 +110,35 @@ const groupBy = (values, keySelector) => {
241
110
  });
242
111
  return map;
243
112
  };
113
+ const subArrays = (array1, array2, eqFn) => {
114
+ return array1.filter((a1) => !array2.some((a2) => eqFn(a1, a2)));
115
+ };
116
+
117
+ const addTime = (date, offset) => {
118
+ const { value, unit } = offset;
119
+ const newDate = new Date(date);
120
+ switch (unit) {
121
+ case "year":
122
+ newDate.setFullYear(date.getFullYear() + value);
123
+ break;
124
+ case "month":
125
+ newDate.setMonth(date.getMonth() + value);
126
+ break;
127
+ case "day":
128
+ newDate.setDate(date.getDate() + value);
129
+ break;
130
+ case "hour":
131
+ newDate.setHours(date.getHours() + value);
132
+ break;
133
+ case "minute":
134
+ newDate.setMinutes(date.getMinutes() + value);
135
+ break;
136
+ case "second":
137
+ newDate.setSeconds(date.getSeconds() + value);
138
+ break;
139
+ }
140
+ return newDate;
141
+ };
244
142
 
245
143
  const DEFAULT_DELIMITER = ";";
246
144
  const splitRows = (data) => {
@@ -28436,5 +28334,152 @@ const excelParse = (file, options) => {
28436
28334
  .map((x) => aggregateRow(header, x, options));
28437
28335
  };
28438
28336
 
28439
- export { ExcelKeyTransform, Log, LogLevel, MetaSerializationType, buildObject, buildTree, byField, byFieldDesc, camelToKebabCase, camelToSnakeCase, csvBuild, csvParse, distinct, distinctElements, ensureDirectory, ensureStartSlash, ensureTailingSlash, excelBuild, excelParse, first, flatten, getDirectoryFilePaths, getDirectoryPath, groupBy, indexes, isNullOrUndefined, iterate, joinPath, jsonDistinct, last, mapOrThrow, newUuid, notNull, notUndefined, pluralize, range, removeUndefinedProps, selectMany, sleep, sort, splitPath, toCamelCase, toDict, toItemsDict, toItemsMap, toMap, toTitleCase, trim$1 as trim, trimEnd, trimStart };
28337
+ const processArrayDifferences = ({ elements, elementIdSelector, desiredItems, desiredItemSelector, }) => {
28338
+ const currentElementsIds = elements.map(elementIdSelector);
28339
+ const desiredItemsIds = desiredItems.map(desiredItemSelector);
28340
+ const missingElementIds = subArrays(desiredItemsIds, currentElementsIds, (a, b) => a === b);
28341
+ const missingElements = desiredItems.filter((x) => missingElementIds.includes(desiredItemSelector(x)));
28342
+ const exceedingElementIds = subArrays(currentElementsIds, desiredItemsIds, (a, b) => a === b);
28343
+ const exceedingElements = elements.filter((x) => exceedingElementIds.includes(elementIdSelector(x)));
28344
+ const unchangedElementIds = subArrays(currentElementsIds, exceedingElementIds, (a, b) => a === b);
28345
+ const unchangedElements = elements.filter((x) => unchangedElementIds.includes(elementIdSelector(x)));
28346
+ return {
28347
+ missingElements,
28348
+ exceedingElements,
28349
+ unchangedElements,
28350
+ };
28351
+ };
28352
+
28353
+ class DefaultLogger {
28354
+ constructor(loggerName) {
28355
+ this.loggerName = loggerName;
28356
+ }
28357
+ debug(message, meta) {
28358
+ if (meta) {
28359
+ console.log(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
28360
+ }
28361
+ else {
28362
+ console.log(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
28363
+ }
28364
+ }
28365
+ info(message, meta) {
28366
+ if (meta) {
28367
+ console.info(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
28368
+ }
28369
+ else {
28370
+ console.info(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
28371
+ }
28372
+ }
28373
+ warn(message, meta) {
28374
+ if (meta) {
28375
+ console.warn(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
28376
+ }
28377
+ else {
28378
+ console.warn(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
28379
+ }
28380
+ }
28381
+ error(message, meta) {
28382
+ if (meta) {
28383
+ console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
28384
+ }
28385
+ else {
28386
+ console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
28387
+ }
28388
+ }
28389
+ fatal(message, meta) {
28390
+ if (meta) {
28391
+ console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
28392
+ }
28393
+ else {
28394
+ console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
28395
+ }
28396
+ }
28397
+ exception(message, error, meta) {
28398
+ if (meta) {
28399
+ console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, error, meta);
28400
+ }
28401
+ else {
28402
+ console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, error);
28403
+ }
28404
+ }
28405
+ }
28406
+
28407
+ class InternalLogger {
28408
+ constructor(enabled, level, serialization, provider) {
28409
+ this.enabled = enabled;
28410
+ this.level = level;
28411
+ this.serialization = serialization;
28412
+ this.provider = provider;
28413
+ }
28414
+ debug(message, meta) {
28415
+ if (this.enabled && this.level === LogLevel.Debug) {
28416
+ this.provider.debug(message, this.serializeMeta(meta));
28417
+ }
28418
+ }
28419
+ info(message, meta) {
28420
+ if (this.enabled && this.level <= LogLevel.Info) {
28421
+ this.provider.info(message, this.serializeMeta(meta));
28422
+ }
28423
+ }
28424
+ warn(message, meta) {
28425
+ if (this.enabled && this.level <= LogLevel.Warn) {
28426
+ this.provider.warn(message, this.serializeMeta(meta));
28427
+ }
28428
+ }
28429
+ error(message, meta) {
28430
+ if (this.enabled && this.level <= LogLevel.Error) {
28431
+ this.provider.error(message, this.serializeMeta(meta));
28432
+ }
28433
+ }
28434
+ fatal(message, meta) {
28435
+ if (this.enabled && this.level <= LogLevel.Fatal) {
28436
+ this.provider.fatal(message, this.serializeMeta(meta));
28437
+ }
28438
+ }
28439
+ exception(message, error, meta) {
28440
+ if (this.enabled && this.level <= LogLevel.Error) {
28441
+ this.provider.exception(message, error, this.serializeMeta(meta));
28442
+ }
28443
+ }
28444
+ serializeMeta(meta) {
28445
+ switch (this.serialization) {
28446
+ case MetaSerializationType.JSON:
28447
+ return JSON.stringify(meta, null, 2);
28448
+ case MetaSerializationType.None:
28449
+ default:
28450
+ return meta;
28451
+ }
28452
+ }
28453
+ }
28454
+ const getLogger = ({ enabled, level, loggerName, serialization, }) => {
28455
+ return new InternalLogger(enabled, level, serialization, new DefaultLogger(loggerName));
28456
+ };
28457
+ class Log {
28458
+ static setSerializationType(type) {
28459
+ this.metaSerialization = type;
28460
+ }
28461
+ static setLevel(level) {
28462
+ this.level = level;
28463
+ this.enabled = true;
28464
+ }
28465
+ static enable() {
28466
+ this.enabled = true;
28467
+ }
28468
+ static disable() {
28469
+ this.enabled = false;
28470
+ }
28471
+ static getLogger(loggerName) {
28472
+ return getLogger({
28473
+ enabled: this.enabled,
28474
+ level: this.level,
28475
+ serialization: this.metaSerialization,
28476
+ loggerName,
28477
+ });
28478
+ }
28479
+ }
28480
+ Log.enabled = true;
28481
+ Log.level = LogLevel.Debug;
28482
+ Log.metaSerialization = MetaSerializationType.None;
28483
+
28484
+ export { ExcelKeyTransform, Log, LogLevel, MetaSerializationType, addTime, buildObject, buildTree, byField, byFieldDesc, camelToKebabCase, camelToSnakeCase, csvBuild, csvParse, distinct, distinctElements, ensureDirectory, ensureStartSlash, ensureTailingSlash, excelBuild, excelParse, first, flatten, getDirectoryFilePaths, getDirectoryPath, groupBy, indexes, isNullOrUndefined, iterate, joinPath, jsonDistinct, last, mapOrThrow, newUuid, notNull, notUndefined, pluralize, processArrayDifferences, range, removeUndefinedProps, selectMany, sleep, sort, splitPath, subArrays, toCamelCase, toDict, toItemsDict, toItemsMap, toMap, toTitleCase, trim$1 as trim, trimEnd, trimStart };
28440
28485
  //# sourceMappingURL=index.js.map