@proteinjs/db 1.5.6 → 1.5.8

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.
Files changed (42) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/generated/index.d.ts +1 -0
  3. package/dist/generated/index.d.ts.map +1 -1
  4. package/dist/generated/index.js +2 -1
  5. package/dist/generated/index.js.map +1 -1
  6. package/dist/src/Columns.d.ts.map +1 -1
  7. package/dist/src/Columns.js.map +1 -1
  8. package/dist/src/Db.d.ts.map +1 -1
  9. package/dist/src/Db.js +14 -4
  10. package/dist/src/Db.js.map +1 -1
  11. package/dist/src/MigrationRunner.d.ts.map +1 -1
  12. package/dist/src/MigrationRunner.js +6 -4
  13. package/dist/src/MigrationRunner.js.map +1 -1
  14. package/dist/src/Record.d.ts.map +1 -1
  15. package/dist/src/Record.js +4 -4
  16. package/dist/src/Record.js.map +1 -1
  17. package/dist/src/TableWatcherRunner.d.ts.map +1 -1
  18. package/dist/src/TableWatcherRunner.js +26 -26
  19. package/dist/src/TableWatcherRunner.js.map +1 -1
  20. package/dist/src/auth/TableServiceAuth.d.ts.map +1 -1
  21. package/dist/src/auth/TableServiceAuth.js +3 -3
  22. package/dist/src/auth/TableServiceAuth.js.map +1 -1
  23. package/dist/src/reference/ReferenceArray.d.ts.map +1 -1
  24. package/dist/src/reference/ReferenceArray.js.map +1 -1
  25. package/dist/src/schema/TableManager.d.ts.map +1 -1
  26. package/dist/src/schema/TableManager.js +6 -6
  27. package/dist/src/schema/TableManager.js.map +1 -1
  28. package/dist/src/source/SourceRecordLoader.d.ts.map +1 -1
  29. package/dist/src/source/SourceRecordLoader.js +10 -3
  30. package/dist/src/source/SourceRecordLoader.js.map +1 -1
  31. package/generated/index.ts +20 -16
  32. package/package.json +11 -11
  33. package/src/Columns.ts +0 -1
  34. package/src/Db.ts +14 -6
  35. package/src/MigrationRunner.ts +6 -6
  36. package/src/Record.ts +4 -4
  37. package/src/TableWatcherRunner.ts +26 -26
  38. package/src/auth/TableServiceAuth.ts +3 -3
  39. package/src/reference/ReferenceArray.ts +0 -1
  40. package/src/schema/TableManager.ts +6 -6
  41. package/src/source/SourceRecordLoader.ts +10 -5
  42. package/LICENSE +0 -21
package/src/Record.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Logger } from '@proteinjs/util';
1
+ import { Logger } from '@proteinjs/logger';
2
2
  import { DateTimeColumn, UuidColumn } from './Columns';
3
3
  import { Column, Table, Columns } from './Table';
4
4
  import { moment } from './opt/moment';
@@ -44,7 +44,7 @@ export function withRecordColumns<T extends Record>(
44
44
  export type SerializedRecord = { [columnName: string]: any };
45
45
 
46
46
  export class RecordSerializer<T extends Record> {
47
- private logger: Logger = new Logger(this.constructor.name);
47
+ private logger = new Logger({ name: this.constructor.name });
48
48
  private table: Table<T>;
49
49
 
50
50
  constructor(table: Table<T>) {
@@ -74,7 +74,7 @@ export class RecordSerializer<T extends Record> {
74
74
 
75
75
  if (omittedFields.length > 0) {
76
76
  // could mean the developer is passing in an object they don't expect
77
- this.logger.warn(`Fields were omitted during serialization: ${omittedFields.join(', ')}`);
77
+ this.logger.warn({ message: `Fields were omitted during serialization`, obj: { omittedFields } });
78
78
  }
79
79
 
80
80
  return serialized;
@@ -96,7 +96,7 @@ export class RecordSerializer<T extends Record> {
96
96
 
97
97
  if (omittedFields.length > 0) {
98
98
  // expected when passing a base table into the query api
99
- this.logger.debug(`Fields were omitted during deserialization: ${omittedFields.join(', ')}`);
99
+ this.logger.debug({ message: `Fields were omitted during deserialization`, obj: { omittedFields } });
100
100
  }
101
101
 
102
102
  return deserialized;
@@ -1,4 +1,4 @@
1
- import { Logger } from '@proteinjs/util';
1
+ import { Logger } from '@proteinjs/logger';
2
2
  import { TableWatcherMap, getTableWatcherMap } from './TableWatcher';
3
3
  import { Record } from './Record';
4
4
  import { Table } from './Table';
@@ -6,7 +6,7 @@ import { QueryBuilder } from '@proteinjs/db-query';
6
6
 
7
7
  export class TableWatcherRunner<R extends Record = Record> {
8
8
  private static tableWatcherMap: TableWatcherMap;
9
- private logger = new Logger(this.constructor.name);
9
+ private logger = new Logger({ name: this.constructor.name });
10
10
 
11
11
  constructor() {
12
12
  if (!TableWatcherRunner.tableWatcherMap) {
@@ -28,14 +28,14 @@ export class TableWatcherRunner<R extends Record = Record> {
28
28
  return record;
29
29
  }
30
30
 
31
- this.logger.info(`(${table.name}) Running before-insert table watchers`);
31
+ this.logger.info({ message: `(${table.name}) Running before-insert table watchers` });
32
32
  let updatedRecord: any = record;
33
33
  for (const tableWatcher of tableWatchers) {
34
- this.logger.info(`(${table.name}) Running ${tableWatcher.name()}.beforeInsert`);
34
+ this.logger.info({ message: `(${table.name}) Running ${tableWatcher.name()}.beforeInsert` });
35
35
  updatedRecord = await tableWatcher.beforeInsert(updatedRecord);
36
- this.logger.info(`(${table.name}) Finished running ${tableWatcher.name()}.beforeInsert`);
36
+ this.logger.info({ message: `(${table.name}) Finished running ${tableWatcher.name()}.beforeInsert` });
37
37
  }
38
- this.logger.info(`(${table.name}) Finished running before-insert table watchers`);
38
+ this.logger.info({ message: `(${table.name}) Finished running before-insert table watchers` });
39
39
 
40
40
  return updatedRecord;
41
41
  }
@@ -51,13 +51,13 @@ export class TableWatcherRunner<R extends Record = Record> {
51
51
  return;
52
52
  }
53
53
 
54
- this.logger.info(`(${table.name}) Running after-insert table watchers`);
54
+ this.logger.info({ message: `(${table.name}) Running after-insert table watchers` });
55
55
  for (const tableWatcher of tableWatchers) {
56
- this.logger.info(`(${table.name}) Running ${tableWatcher.name()}.afterInsert`);
56
+ this.logger.info({ message: `(${table.name}) Running ${tableWatcher.name()}.afterInsert` });
57
57
  await tableWatcher.afterInsert(record);
58
- this.logger.info(`(${table.name}) Finished running ${tableWatcher.name()}.afterInsert`);
58
+ this.logger.info({ message: `(${table.name}) Finished running ${tableWatcher.name()}.afterInsert` });
59
59
  }
60
- this.logger.info(`(${table.name}) Finished running after-insert table watchers`);
60
+ this.logger.info({ message: `(${table.name}) Finished running after-insert table watchers` });
61
61
  }
62
62
 
63
63
  async runBeforeUpdateTableWatchers<T extends R>(
@@ -75,15 +75,15 @@ export class TableWatcherRunner<R extends Record = Record> {
75
75
  return record;
76
76
  }
77
77
 
78
- this.logger.info(`(${table.name}) Running before-update table watchers`);
78
+ this.logger.info({ message: `(${table.name}) Running before-update table watchers` });
79
79
  const qbCopy = QueryBuilder.fromQueryBuilder(qb, table.name);
80
80
  let updatedRecord: any = record;
81
81
  for (const tableWatcher of tableWatchers) {
82
- this.logger.info(`(${table.name}) Running ${tableWatcher.name()}.beforeUpdate`);
82
+ this.logger.info({ message: `(${table.name}) Running ${tableWatcher.name()}.beforeUpdate` });
83
83
  updatedRecord = await tableWatcher.beforeUpdate(updatedRecord, qbCopy);
84
- this.logger.info(`(${table.name}) Finished running ${tableWatcher.name()}.beforeUpdate`);
84
+ this.logger.info({ message: `(${table.name}) Finished running ${tableWatcher.name()}.beforeUpdate` });
85
85
  }
86
- this.logger.info(`(${table.name}) Finished running before-update table watchers`);
86
+ this.logger.info({ message: `(${table.name}) Finished running before-update table watchers` });
87
87
 
88
88
  return updatedRecord;
89
89
  }
@@ -104,14 +104,14 @@ export class TableWatcherRunner<R extends Record = Record> {
104
104
  return;
105
105
  }
106
106
 
107
- this.logger.info(`(${table.name}) Running after-update table watchers`);
107
+ this.logger.info({ message: `(${table.name}) Running after-update table watchers` });
108
108
  const qbCopy = QueryBuilder.fromQueryBuilder(qb, table.name);
109
109
  for (const tableWatcher of tableWatchers) {
110
- this.logger.info(`(${table.name}) Running ${tableWatcher.name()}.afterUpdate`);
110
+ this.logger.info({ message: `(${table.name}) Running ${tableWatcher.name()}.afterUpdate` });
111
111
  await tableWatcher.afterUpdate(recordUpdateCount, record, qbCopy);
112
- this.logger.info(`(${table.name}) Finished running ${tableWatcher.name()}.afterUpdate`);
112
+ this.logger.info({ message: `(${table.name}) Finished running ${tableWatcher.name()}.afterUpdate` });
113
113
  }
114
- this.logger.info(`(${table.name}) Finished running after-update table watchers`);
114
+ this.logger.info({ message: `(${table.name}) Finished running after-update table watchers` });
115
115
  }
116
116
 
117
117
  async runBeforeDeleteTableWatchers<T extends R>(
@@ -129,14 +129,14 @@ export class TableWatcherRunner<R extends Record = Record> {
129
129
  return;
130
130
  }
131
131
 
132
- this.logger.info(`(${table.name}) Running before-delete table watchers`);
132
+ this.logger.info({ message: `(${table.name}) Running before-delete table watchers` });
133
133
  const qbCopy = QueryBuilder.fromQueryBuilder(qb, table.name);
134
134
  for (const tableWatcher of tableWatchers) {
135
- this.logger.info(`(${table.name}) Running ${tableWatcher.name()}.beforeDelete`);
135
+ this.logger.info({ message: `(${table.name}) Running ${tableWatcher.name()}.beforeDelete` });
136
136
  await tableWatcher.beforeDelete(recordsToDelete, qbCopy);
137
- this.logger.info(`(${table.name}) Finished running ${tableWatcher.name()}.beforeDelete`);
137
+ this.logger.info({ message: `(${table.name}) Finished running ${tableWatcher.name()}.beforeDelete` });
138
138
  }
139
- this.logger.info(`(${table.name}) Finished running before-delete table watchers`);
139
+ this.logger.info({ message: `(${table.name}) Finished running before-delete table watchers` });
140
140
  }
141
141
 
142
142
  async runAfterDeleteTableWatchers<T extends R>(
@@ -155,13 +155,13 @@ export class TableWatcherRunner<R extends Record = Record> {
155
155
  return;
156
156
  }
157
157
 
158
- this.logger.info(`(${table.name}) Running after-delete table watchers`);
158
+ this.logger.info({ message: `(${table.name}) Running after-delete table watchers` });
159
159
  const qbCopy = QueryBuilder.fromQueryBuilder(qb, table.name);
160
160
  for (const tableWatcher of tableWatchers) {
161
- this.logger.info(`(${table.name}) Running ${tableWatcher.name()}.afterDelete`);
161
+ this.logger.info({ message: `(${table.name}) Running ${tableWatcher.name()}.afterDelete` });
162
162
  await tableWatcher.afterDelete(recordDeleteCount, deletedRecords, qbCopy);
163
- this.logger.info(`(${table.name}) Finished running ${tableWatcher.name()}.afterDelete`);
163
+ this.logger.info({ message: `(${table.name}) Finished running ${tableWatcher.name()}.afterDelete` });
164
164
  }
165
- this.logger.info(`(${table.name}) Finished running after-delete table watchers`);
165
+ this.logger.info({ message: `(${table.name}) Finished running after-delete table watchers` });
166
166
  }
167
167
  }
@@ -1,9 +1,9 @@
1
- import { Logger } from '@proteinjs/util';
1
+ import { Logger } from '@proteinjs/logger';
2
2
  import { Table, isTable } from '../Table';
3
3
  import { TableAuth } from './TableAuth';
4
4
 
5
5
  export class TableServiceAuth {
6
- private logger = new Logger(this.constructor.name);
6
+ private logger = new Logger({ name: this.constructor.name });
7
7
 
8
8
  canAccess(methodName: string, args: any[]): boolean {
9
9
  try {
@@ -25,7 +25,7 @@ export class TableServiceAuth {
25
25
  throw new Error(`User is not authorized to access unsupported Db service api: ${methodName}`);
26
26
  }
27
27
  } catch (error: any) {
28
- this.logger.error(error.stack);
28
+ this.logger.error({ message: `Failed evaluating auth for method: ${methodName}`, error });
29
29
  return false;
30
30
  }
31
31
 
@@ -4,7 +4,6 @@ import { Record } from '../Record';
4
4
  import { tableByName } from '../Table';
5
5
  import { ReferenceArraySerializerId } from '../serializers/ReferenceArraySerializer';
6
6
  import { QueryBuilderFactory } from '../QueryBuilderFactory';
7
- import { Logger } from '@proteinjs/util';
8
7
  /**
9
8
  * The object returned by Db functions for each field of type ReferenceArrayColumn in a record.
10
9
  * The reason for this is to make loading of reference records on-demand. For theoretically
@@ -1,4 +1,4 @@
1
- import { Logger } from '@proteinjs/util';
1
+ import { Logger } from '@proteinjs/logger';
2
2
  import { Column, Table, getTables } from '../Table';
3
3
  import { SchemaOperations, TableChanges } from './SchemaOperations';
4
4
  import { SchemaMetadata } from './SchemaMetadata';
@@ -9,7 +9,7 @@ export interface ColumnTypeFactory {
9
9
  }
10
10
 
11
11
  export class TableManager {
12
- private logger = new Logger(this.constructor.name);
12
+ private logger = new Logger({ name: this.constructor.name });
13
13
  public columnTypeFactory: ColumnTypeFactory;
14
14
  public schemaOperations: SchemaOperations;
15
15
  public schemaMetadata: SchemaMetadata;
@@ -40,14 +40,14 @@ export class TableManager {
40
40
  if (await this.tableExists(table)) {
41
41
  const tableChanges = await this.getTableChanges(table);
42
42
  if (this.shouldAlterTable(tableChanges)) {
43
- this.logger.info(`Altering table: ${table.name}`);
43
+ this.logger.info({ message: `Altering table: ${table.name}` });
44
44
  await this.schemaOperations.alterTable(table, tableChanges);
45
- this.logger.info(`Finished altering table: ${table.name}`);
45
+ this.logger.info({ message: `Finished altering table: ${table.name}` });
46
46
  }
47
47
  } else {
48
- this.logger.info(`Creating table: ${table.name}`);
48
+ this.logger.info({ message: `Creating table: ${table.name}` });
49
49
  await this.schemaOperations.createTable(table);
50
- this.logger.info(`Finished creating table: ${table.name}`);
50
+ this.logger.info({ message: `Finished creating table: ${table.name}` });
51
51
  }
52
52
  }
53
53
 
@@ -1,4 +1,4 @@
1
- import { Logger } from '@proteinjs/util';
1
+ import { Logger } from '@proteinjs/logger';
2
2
  import { QueryBuilder } from '@proteinjs/db-query';
3
3
  import { getSourceRecordLoaders, SourceRecord, getSourceRecordTables } from './SourceRecord';
4
4
  import { Table } from '../Table';
@@ -10,7 +10,7 @@ type SourceRecordsMap = {
10
10
  };
11
11
 
12
12
  export class SourceRecordLoader {
13
- private logger = new Logger(this.constructor.name);
13
+ private logger = new Logger({ name: this.constructor.name });
14
14
 
15
15
  async load() {
16
16
  const sourceRecordsMap = await this.getSourceRecordsMap();
@@ -45,9 +45,14 @@ export class SourceRecordLoader {
45
45
  new SourceRecordRepo().loadSourceRecord(table.name, sourceRecord as any);
46
46
  }
47
47
 
48
- this.logger.info(
49
- `(${table.name}) Loaded ${sourceRecords.length} ${sourceRecords.length == 1 ? 'record' : 'records'} from source (inserts: ${insertCount}, updates: ${updateCount}, deletes: ${deleteCount})`
50
- );
48
+ this.logger.info({
49
+ message: `(${table.name}) Loaded ${sourceRecords.length} ${sourceRecords.length == 1 ? 'record' : 'records'} from source`,
50
+ obj: {
51
+ inserts: insertCount,
52
+ updates: updateCount,
53
+ deletes: deleteCount,
54
+ },
55
+ });
51
56
  }
52
57
  }
53
58
 
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2023 Brent Bahry
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.