@villedemontreal/utils-knex 7.0.1

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 (66) hide show
  1. package/README.md +236 -0
  2. package/dist/src/config/configs.d.ts +19 -0
  3. package/dist/src/config/configs.d.ts.map +1 -0
  4. package/dist/src/config/configs.js +27 -0
  5. package/dist/src/config/configs.js.map +1 -0
  6. package/dist/src/config/constants.d.ts +21 -0
  7. package/dist/src/config/constants.d.ts.map +1 -0
  8. package/dist/src/config/constants.js +21 -0
  9. package/dist/src/config/constants.js.map +1 -0
  10. package/dist/src/config/init.d.ts +16 -0
  11. package/dist/src/config/init.d.ts.map +1 -0
  12. package/dist/src/config/init.js +33 -0
  13. package/dist/src/config/init.js.map +1 -0
  14. package/dist/src/databaseContext.d.ts +9 -0
  15. package/dist/src/databaseContext.d.ts.map +1 -0
  16. package/dist/src/databaseContext.js +3 -0
  17. package/dist/src/databaseContext.js.map +1 -0
  18. package/dist/src/index.d.ts +5 -0
  19. package/dist/src/index.d.ts.map +1 -0
  20. package/dist/src/index.js +26 -0
  21. package/dist/src/index.js.map +1 -0
  22. package/dist/src/knexUtils.d.ts +134 -0
  23. package/dist/src/knexUtils.d.ts.map +1 -0
  24. package/dist/src/knexUtils.js +349 -0
  25. package/dist/src/knexUtils.js.map +1 -0
  26. package/dist/src/knexUtils.test.d.ts +2 -0
  27. package/dist/src/knexUtils.test.d.ts.map +1 -0
  28. package/dist/src/knexUtils.test.js +897 -0
  29. package/dist/src/knexUtils.test.js.map +1 -0
  30. package/dist/src/transactionManager.d.ts +34 -0
  31. package/dist/src/transactionManager.d.ts.map +1 -0
  32. package/dist/src/transactionManager.js +75 -0
  33. package/dist/src/transactionManager.js.map +1 -0
  34. package/dist/src/transactionManager.test.d.ts +10 -0
  35. package/dist/src/transactionManager.test.d.ts.map +1 -0
  36. package/dist/src/transactionManager.test.js +255 -0
  37. package/dist/src/transactionManager.test.js.map +1 -0
  38. package/dist/src/utils/logger.d.ts +12 -0
  39. package/dist/src/utils/logger.d.ts.map +1 -0
  40. package/dist/src/utils/logger.js +53 -0
  41. package/dist/src/utils/logger.js.map +1 -0
  42. package/dist/src/utils/testingConfigurations.d.ts +9 -0
  43. package/dist/src/utils/testingConfigurations.d.ts.map +1 -0
  44. package/dist/src/utils/testingConfigurations.js +16 -0
  45. package/dist/src/utils/testingConfigurations.js.map +1 -0
  46. package/dist/testing/testClient.d.ts +15 -0
  47. package/dist/testing/testClient.d.ts.map +1 -0
  48. package/dist/testing/testClient.js +55 -0
  49. package/dist/testing/testClient.js.map +1 -0
  50. package/dist/testing/testRepo.d.ts +8 -0
  51. package/dist/testing/testRepo.d.ts.map +1 -0
  52. package/dist/testing/testRepo.js +31 -0
  53. package/dist/testing/testRepo.js.map +1 -0
  54. package/dist/tsconfig.tsbuildinfo +1 -0
  55. package/package.json +76 -0
  56. package/src/config/configs.ts +34 -0
  57. package/src/config/constants.ts +33 -0
  58. package/src/config/init.ts +33 -0
  59. package/src/databaseContext.ts +9 -0
  60. package/src/index.ts +9 -0
  61. package/src/knexUtils.test.ts +1526 -0
  62. package/src/knexUtils.ts +459 -0
  63. package/src/transactionManager.test.ts +302 -0
  64. package/src/transactionManager.ts +94 -0
  65. package/src/utils/logger.ts +60 -0
  66. package/src/utils/testingConfigurations.ts +13 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knexUtils.test.js","sourceRoot":"","sources":["../../src/knexUtils.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { Knex } from 'knex';
2
+ import { IDatabaseContext } from './databaseContext';
3
+ /**
4
+ * A Knex manager that allows nested transactions.
5
+ * Instead of using a knex client directly, always use
6
+ * the "withClient()" and "withTransaction()" provided here...
7
+ * This will make sure that if the query is called inside an
8
+ * already started transaction, it will be part of it.
9
+ */
10
+ export declare class KnexTransactionManager {
11
+ private getClientFnt;
12
+ /**
13
+ * @param getClientFnt a function to return the
14
+ * knex client to use.
15
+ */
16
+ constructor(getClientFnt: () => Promise<Knex>);
17
+ /**
18
+ * Provides a knex client to run queries that need an explicit
19
+ * transaction. If a transaction is already started when this
20
+ * function is called, the same transaction will be used.
21
+ */
22
+ withTransaction<T>(context: IDatabaseContext, fnt: (client: Knex) => Promise<T>): Promise<T>;
23
+ /**
24
+ * Provides a knex client to run queries that don't need an explicit
25
+ * transaction. But if a transaction is already started when this
26
+ * function is called, the queries will be part of the transaction.
27
+ */
28
+ withClient<T>(context: IDatabaseContext, fnt: (client: Knex) => Promise<T>, transactional?: boolean): Promise<T>;
29
+ /**
30
+ * "knex.Transaction" type guard.
31
+ */
32
+ protected isTransactionClient: (client: any) => client is Knex.Transaction;
33
+ }
34
+ //# sourceMappingURL=transactionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionManager.d.ts","sourceRoot":"","sources":["../../src/transactionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;;GAMG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,YAAY,CAAsB;IAE1C;;;OAGG;gBACS,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IAI7C;;;;OAIG;IACU,eAAe,CAAC,CAAC,EAC5B,OAAO,EAAE,gBAAgB,EACzB,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,CAAC,CAAC;IAIb;;;;OAIG;IACU,UAAU,CAAC,CAAC,EACvB,OAAO,EAAE,gBAAgB,EACzB,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EACjC,aAAa,UAAQ,GACpB,OAAO,CAAC,CAAC,CAAC;IA4Cb;;OAEG;IACH,SAAS,CAAC,mBAAmB,GAAI,QAAQ,GAAG,KAAG,MAAM,IAAI,IAAI,CAAC,WAAW,CAEvE;CACH"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KnexTransactionManager = void 0;
4
+ const _ = require("lodash");
5
+ /**
6
+ * A Knex manager that allows nested transactions.
7
+ * Instead of using a knex client directly, always use
8
+ * the "withClient()" and "withTransaction()" provided here...
9
+ * This will make sure that if the query is called inside an
10
+ * already started transaction, it will be part of it.
11
+ */
12
+ class KnexTransactionManager {
13
+ /**
14
+ * @param getClientFnt a function to return the
15
+ * knex client to use.
16
+ */
17
+ constructor(getClientFnt) {
18
+ /**
19
+ * "knex.Transaction" type guard.
20
+ */
21
+ this.isTransactionClient = (client) => {
22
+ return client && 'commit' in client && 'rollback' in client;
23
+ };
24
+ this.getClientFnt = getClientFnt;
25
+ }
26
+ /**
27
+ * Provides a knex client to run queries that need an explicit
28
+ * transaction. If a transaction is already started when this
29
+ * function is called, the same transaction will be used.
30
+ */
31
+ async withTransaction(context, fnt) {
32
+ return await this.withClient(context, fnt, true);
33
+ }
34
+ /**
35
+ * Provides a knex client to run queries that don't need an explicit
36
+ * transaction. But if a transaction is already started when this
37
+ * function is called, the queries will be part of the transaction.
38
+ */
39
+ async withClient(context, fnt, transactional = false) {
40
+ let contextClean = context;
41
+ if (_.isNil(contextClean)) {
42
+ contextClean = {
43
+ currentKnexClient: null,
44
+ };
45
+ }
46
+ const existingClient = contextClean.currentKnexClient;
47
+ if (existingClient && existingClient.name !== 'knex') {
48
+ throw new Error(`This manager requires a *knex* client to be passed in the database context! Currently : ${JSON.stringify(existingClient, null, 2)}`);
49
+ }
50
+ if (existingClient && (!transactional || this.isTransactionClient(existingClient))) {
51
+ return await fnt(existingClient);
52
+ }
53
+ const client = await this.getClientFnt();
54
+ if (transactional) {
55
+ return await client.transaction(async (trx) => {
56
+ contextClean.currentKnexClient = trx;
57
+ try {
58
+ return await fnt(trx);
59
+ }
60
+ finally {
61
+ contextClean.currentKnexClient = existingClient;
62
+ }
63
+ });
64
+ }
65
+ contextClean.currentKnexClient = client;
66
+ try {
67
+ return await fnt(client);
68
+ }
69
+ finally {
70
+ contextClean.currentKnexClient = existingClient;
71
+ }
72
+ }
73
+ }
74
+ exports.KnexTransactionManager = KnexTransactionManager;
75
+ //# sourceMappingURL=transactionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionManager.js","sourceRoot":"","sources":["../../src/transactionManager.ts"],"names":[],"mappings":";;;AACA,4BAA4B;AAG5B;;;;;;GAMG;AACH,MAAa,sBAAsB;IAGjC;;;OAGG;IACH,YAAY,YAAiC;QAqE7C;;WAEG;QACO,wBAAmB,GAAG,CAAC,MAAW,EAA8B,EAAE;YAC1E,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,IAAI,UAAU,IAAI,MAAM,CAAC;QAC9D,CAAC,CAAC;QAzEA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAC1B,OAAyB,EACzB,GAAiC;QAEjC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,UAAU,CACrB,OAAyB,EACzB,GAAiC,EACjC,aAAa,GAAG,KAAK;QAErB,IAAI,YAAY,GAAG,OAAO,CAAC;QAC3B,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1B,YAAY,GAAG;gBACb,iBAAiB,EAAE,IAAI;aACxB,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAS,YAAY,CAAC,iBAAiB,CAAC;QAE5D,IAAI,cAAc,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CACb,2FAA2F,IAAI,CAAC,SAAS,CACvG,cAAc,EACd,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAC;QACJ,CAAC;QAED,IAAI,cAAc,IAAI,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;YACnF,OAAO,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5C,YAAY,CAAC,iBAAiB,GAAG,GAAG,CAAC;gBACrC,IAAI,CAAC;oBACH,OAAO,MAAM,GAAG,CAAC,GAAU,CAAC,CAAC;gBAC/B,CAAC;wBAAS,CAAC;oBACT,YAAY,CAAC,iBAAiB,GAAG,cAAc,CAAC;gBAClD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,YAAY,CAAC,iBAAiB,GAAG,MAAM,CAAC;QACxC,IAAI,CAAC;YACH,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,iBAAiB,GAAG,cAAc,CAAC;QAClD,CAAC;IACH,CAAC;CAQF;AAlFD,wDAkFC"}
@@ -0,0 +1,10 @@
1
+ import { IDatabaseContext } from './databaseContext';
2
+ export interface ITestContext extends IDatabaseContext {
3
+ executionId: string;
4
+ }
5
+ export interface ITestUser {
6
+ id: number;
7
+ firstName: string;
8
+ lastName: string;
9
+ }
10
+ //# sourceMappingURL=transactionManager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionManager.test.d.ts","sourceRoot":"","sources":["../../src/transactionManager.test.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGrD,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // ==========================================
4
+ // Disabling some linting rules is OK in test files.
5
+ // tslint:disable:max-func-body-length
6
+ // tslint:disable:cyclomatic-complexity
7
+ // tslint:disable:no-string-literal
8
+ // ==========================================
9
+ const chai_1 = require("chai");
10
+ const uuid_1 = require("uuid");
11
+ const testClient_1 = require("../testing/testClient");
12
+ const testRepo_1 = require("../testing/testRepo");
13
+ async function createUsersTable(knexClient) {
14
+ await knexClient.schema.createTable(`users`, async (table) => {
15
+ table.increments('id').primary();
16
+ table.string('firstName', 256).notNullable();
17
+ table.string('lastName', 256).notNullable();
18
+ });
19
+ }
20
+ describe(`Transactions Manager tests`, () => {
21
+ let testContext;
22
+ before(async () => {
23
+ // ==========================================
24
+ // We create an initial "context". In an API
25
+ // project, this would probably be done in
26
+ // a controller. The controller would then
27
+ // pass this context to all methods called
28
+ // on services and, indirectly, on repositories.
29
+ // ==========================================
30
+ testContext = {
31
+ currentKnexClient: null,
32
+ executionId: (0, uuid_1.v4)(),
33
+ };
34
+ // ==========================================
35
+ // Create the "users" table
36
+ // ==========================================
37
+ await withTransaction(testContext, async (client) => {
38
+ await createUsersTable(client);
39
+ });
40
+ });
41
+ after(async () => {
42
+ await (0, testClient_1.destroyTestKnexClient)();
43
+ });
44
+ async function withClient(context, fnt) {
45
+ const txManager = await (0, testClient_1.getTestTransactionManager)();
46
+ return txManager.withClient(context, fnt);
47
+ }
48
+ async function withTransaction(context, fnt) {
49
+ const txManager = await (0, testClient_1.getTestTransactionManager)();
50
+ return txManager.withTransaction(context, fnt);
51
+ }
52
+ async function getUserById(id) {
53
+ return await withClient(testContext, async (client) => {
54
+ const res = await client.select('id', 'firstName', 'lastName').from(`users`).where(`id`, id);
55
+ return {
56
+ id: res[0].id,
57
+ firstName: res[0].firstName,
58
+ lastName: res[0].lastName,
59
+ };
60
+ });
61
+ }
62
+ let userId;
63
+ it(`insert a user`, async () => {
64
+ // ==========================================
65
+ // Here we use "withClient" not "withTransaction"
66
+ // since we do not need a transaction. We
67
+ // *could* start a transaction even if it's
68
+ // not required, it would still work, but it
69
+ // is more costy...
70
+ // ==========================================
71
+ await withClient(testContext, async (client) => {
72
+ const res = await client(`users`).insert({
73
+ firstName: 'Stromgol',
74
+ lastName: 'LaRoche',
75
+ });
76
+ userId = res[0];
77
+ });
78
+ const user = await getUserById(userId);
79
+ chai_1.assert.isOk(user);
80
+ chai_1.assert.deepEqual(user.id, userId);
81
+ chai_1.assert.deepEqual(user.firstName, 'Stromgol');
82
+ chai_1.assert.deepEqual(user.lastName, 'LaRoche');
83
+ });
84
+ it(`Modifiy the lastName - not in a trasaction - succes`, async () => {
85
+ await withClient(testContext, async (client) => {
86
+ await client(`users`)
87
+ .update({
88
+ lastName: 'LaPierre',
89
+ })
90
+ .where(`id`, userId);
91
+ await client(`users`)
92
+ .update({
93
+ lastName: 'Stone',
94
+ })
95
+ .where(`id`, userId);
96
+ });
97
+ const user = await getUserById(userId);
98
+ chai_1.assert.deepEqual(user.lastName, 'Stone');
99
+ });
100
+ it(`Modifiy the lastName - not in a trasaction - error in the second query`, async () => {
101
+ let error;
102
+ try {
103
+ await withClient(testContext, async (client) => {
104
+ await client(`users`)
105
+ .update({
106
+ lastName: 'Caillou',
107
+ })
108
+ .where(`id`, userId);
109
+ await client(`NOPE`) // invalid table name
110
+ .update({
111
+ lastName: 'Roquaille',
112
+ })
113
+ .where(`id`, userId);
114
+ });
115
+ }
116
+ catch (err) {
117
+ error = err;
118
+ }
119
+ if (!error) {
120
+ chai_1.assert.fail();
121
+ }
122
+ // ==========================================
123
+ // Has been modified, even if there was an error
124
+ // in the second query!
125
+ // ==========================================
126
+ const user = await getUserById(userId);
127
+ chai_1.assert.deepEqual(user.lastName, 'Caillou');
128
+ });
129
+ it(`modifiy the lastName - in a trasaction - error in the second query`, async () => {
130
+ let error;
131
+ try {
132
+ await withTransaction(testContext, async (client) => {
133
+ await client(`users`)
134
+ .update({
135
+ lastName: 'Sable',
136
+ })
137
+ .where(`id`, userId);
138
+ await client(`NOPE`) // invalid table name
139
+ .update({
140
+ lastName: 'Galet',
141
+ })
142
+ .where(`id`, userId);
143
+ });
144
+ }
145
+ catch (err) {
146
+ error = err;
147
+ }
148
+ if (!error) {
149
+ chai_1.assert.fail();
150
+ }
151
+ // ==========================================
152
+ // Not modified! The transaction has been aborted.
153
+ // ==========================================
154
+ const user = await getUserById(userId);
155
+ chai_1.assert.deepEqual(user.lastName, 'Caillou');
156
+ });
157
+ it(`Transaction working even when executing a query in another file/class, by passing the "context" - no error`, async () => {
158
+ await withTransaction(testContext, async (client) => {
159
+ await client(`users`)
160
+ .update({
161
+ lastName: 'Tremblay',
162
+ })
163
+ .where(`id`, userId);
164
+ // ==========================================
165
+ // Execute a query in another file/class, always
166
+ // by passing the current "context".
167
+ // ==========================================
168
+ await testRepo_1.testRepo.changeFirstName(testContext, userId, 'Georges');
169
+ });
170
+ // ==========================================
171
+ // Modified!
172
+ // ==========================================
173
+ const user = await getUserById(userId);
174
+ chai_1.assert.deepEqual(user.firstName, 'Georges');
175
+ chai_1.assert.deepEqual(user.lastName, 'Tremblay');
176
+ });
177
+ it(`Transaction working (so aborted) when executing a query in another file/class that generates an error`, async () => {
178
+ let error;
179
+ try {
180
+ await withTransaction(testContext, async (client) => {
181
+ await client(`users`)
182
+ .update({
183
+ lastName: 'Lapointe',
184
+ })
185
+ .where(`id`, userId);
186
+ // ==========================================
187
+ // Execute a query in another file/class. This
188
+ // generated an error which must rollback the
189
+ // transaction!
190
+ // ==========================================
191
+ await testRepo_1.testRepo.generateSqlError(testContext);
192
+ });
193
+ }
194
+ catch (err) {
195
+ error = err;
196
+ }
197
+ if (!error) {
198
+ chai_1.assert.fail();
199
+ }
200
+ // ==========================================
201
+ // Not modified! The transaction has been aborted.
202
+ // ==========================================
203
+ const user = await getUserById(userId);
204
+ chai_1.assert.deepEqual(user.firstName, 'Georges');
205
+ chai_1.assert.deepEqual(user.lastName, 'Tremblay');
206
+ });
207
+ it(`Transaction rollbacked in a regular Error too`, async () => {
208
+ let error;
209
+ try {
210
+ await withTransaction(testContext, async (client) => {
211
+ await client(`users`)
212
+ .update({
213
+ lastName: 'Lapointe',
214
+ })
215
+ .where(`id`, userId);
216
+ throw new Error(`Some error`);
217
+ });
218
+ }
219
+ catch (err) {
220
+ error = err;
221
+ }
222
+ if (!error) {
223
+ chai_1.assert.fail();
224
+ }
225
+ // ==========================================
226
+ // Not modified! The transaction has been aborted.
227
+ // ==========================================
228
+ const user = await getUserById(userId);
229
+ chai_1.assert.deepEqual(user.firstName, 'Georges');
230
+ chai_1.assert.deepEqual(user.lastName, 'Tremblay');
231
+ });
232
+ it(`Retured value, withClient`, async () => {
233
+ const user = await withClient(testContext, async (client) => {
234
+ await client(`users`)
235
+ .update({
236
+ lastName: 'aaaaa',
237
+ })
238
+ .where(`id`, userId);
239
+ return await getUserById(userId);
240
+ });
241
+ chai_1.assert.deepEqual(user.lastName, 'aaaaa');
242
+ });
243
+ it(`Retured value, withTransaction`, async () => {
244
+ const user = await withTransaction(testContext, async (client) => {
245
+ await client(`users`)
246
+ .update({
247
+ lastName: 'bbbbb',
248
+ })
249
+ .where(`id`, userId);
250
+ return await getUserById(userId);
251
+ });
252
+ chai_1.assert.deepEqual(user.lastName, 'bbbbb');
253
+ });
254
+ });
255
+ //# sourceMappingURL=transactionManager.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionManager.test.js","sourceRoot":"","sources":["../../src/transactionManager.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { ILogger } from '@villedemontreal/logger';
2
+ /**
3
+ * Creates a Logger.
4
+ */
5
+ export declare function createLogger(name: string): ILogger;
6
+ /**
7
+ * A Logger that uses a dummy cid provider.
8
+ *
9
+ * Only use this when running the tests!
10
+ */
11
+ export declare function getTestingLoggerCreator(): (name: string) => ILogger;
12
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAMR,MAAM,yBAAyB,CAAC;AAKjC;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAsBlD;AAQD;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CASnE"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLogger = createLogger;
4
+ exports.getTestingLoggerCreator = getTestingLoggerCreator;
5
+ const logger_1 = require("@villedemontreal/logger");
6
+ const configs_1 = require("../config/configs");
7
+ let testingLoggerLibInitialised = false;
8
+ /**
9
+ * Creates a Logger.
10
+ */
11
+ function createLogger(name) {
12
+ // ==========================================
13
+ // We use a LazyLogger so the real Logger
14
+ // is only created when the first
15
+ // log is actually performed... At that point,
16
+ // our "configs.loggerCreator" configuration
17
+ // must have been set by the code using our library!
18
+ //
19
+ // This pattern allows calling code to import
20
+ // modules from us in which a logger is
21
+ // created in the global scope :
22
+ //
23
+ // let logger = createLogger('someName');
24
+ //
25
+ // Without a Lazy Logger, the library configurations
26
+ // would at that moment *not* have been set yet
27
+ // (by the calling code) and an Error would be thrown
28
+ // because the "configs.loggerCreator" is required.
29
+ // ==========================================
30
+ return new logger_1.LazyLogger(name, (nameArg) => {
31
+ return configs_1.configs.loggerCreator(nameArg);
32
+ });
33
+ }
34
+ function initTestingLoggerConfigs() {
35
+ const loggerConfig = new logger_1.LoggerConfigs(() => 'test-cid');
36
+ loggerConfig.setLogLevel(logger_1.LogLevel.DEBUG);
37
+ (0, logger_1.initLogger)(loggerConfig);
38
+ }
39
+ /**
40
+ * A Logger that uses a dummy cid provider.
41
+ *
42
+ * Only use this when running the tests!
43
+ */
44
+ function getTestingLoggerCreator() {
45
+ return (name) => {
46
+ if (!testingLoggerLibInitialised) {
47
+ initTestingLoggerConfigs();
48
+ testingLoggerLibInitialised = true;
49
+ }
50
+ return new logger_1.Logger(name);
51
+ };
52
+ }
53
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":";;AAeA,oCAsBC;AAaD,0DASC;AA3DD,oDAOiC;AACjC,+CAA4C;AAE5C,IAAI,2BAA2B,GAAG,KAAK,CAAC;AAExC;;GAEG;AACH,SAAgB,YAAY,CAAC,IAAY;IACvC,6CAA6C;IAC7C,yCAAyC;IACzC,iCAAiC;IACjC,8CAA8C;IAC9C,4CAA4C;IAC5C,oDAAoD;IACpD,EAAE;IACF,6CAA6C;IAC7C,uCAAuC;IACvC,gCAAgC;IAChC,EAAE;IACF,yCAAyC;IACzC,EAAE;IACF,oDAAoD;IACpD,+CAA+C;IAC/C,qDAAqD;IACrD,mDAAmD;IACnD,6CAA6C;IAC7C,OAAO,IAAI,mBAAU,CAAC,IAAI,EAAE,CAAC,OAAe,EAAE,EAAE;QAC9C,OAAO,iBAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,wBAAwB;IAC/B,MAAM,YAAY,GAAkB,IAAI,sBAAa,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC;IACxE,YAAY,CAAC,WAAW,CAAC,iBAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,IAAA,mBAAU,EAAC,YAAY,CAAC,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB;IACrC,OAAO,CAAC,IAAY,EAAW,EAAE;QAC/B,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACjC,wBAAwB,EAAE,CAAC;YAC3B,2BAA2B,GAAG,IAAI,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,eAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Call this when your need to set
3
+ * *Testing* configurations to the current
4
+ * library, without the need for a calling code
5
+ * to do so.
6
+ *
7
+ */
8
+ export declare function setTestingConfigurations(): void;
9
+ //# sourceMappingURL=testingConfigurations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testingConfigurations.d.ts","sourceRoot":"","sources":["../../../src/utils/testingConfigurations.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setTestingConfigurations = setTestingConfigurations;
4
+ const configs_1 = require("../config/configs");
5
+ const logger_1 = require("../utils/logger");
6
+ /**
7
+ * Call this when your need to set
8
+ * *Testing* configurations to the current
9
+ * library, without the need for a calling code
10
+ * to do so.
11
+ *
12
+ */
13
+ function setTestingConfigurations() {
14
+ configs_1.configs.setLoggerCreator((0, logger_1.getTestingLoggerCreator)());
15
+ }
16
+ //# sourceMappingURL=testingConfigurations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testingConfigurations.js","sourceRoot":"","sources":["../../../src/utils/testingConfigurations.ts"],"names":[],"mappings":";;AAUA,4DAEC;AAZD,+CAA4C;AAC5C,4CAA0D;AAE1D;;;;;;GAMG;AACH,SAAgB,wBAAwB;IACtC,iBAAO,CAAC,gBAAgB,CAAC,IAAA,gCAAuB,GAAE,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,15 @@
1
+ import knex from 'knex';
2
+ import { KnexTransactionManager } from '../src/transactionManager';
3
+ /**
4
+ * Get/create the test Knex client
5
+ */
6
+ export declare function getTestKnexClient(): Promise<knex.Knex<any, any[]>>;
7
+ /**
8
+ * Get/create the test Knex transaction manager
9
+ */
10
+ export declare function getTestTransactionManager(): Promise<KnexTransactionManager>;
11
+ /**
12
+ * Destroy the test Knex client
13
+ */
14
+ export declare function destroyTestKnexClient(): Promise<void>;
15
+ //# sourceMappingURL=testClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testClient.d.ts","sourceRoot":"","sources":["../../testing/testClient.ts"],"names":[],"mappings":"AACA,OAAO,IAAc,MAAM,MAAM,CAAC;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAKnE;;GAEG;AACH,wBAAsB,iBAAiB,mCAKtC;AAED;;GAEG;AACH,wBAAsB,yBAAyB,oCAK9C;AAED;;GAEG;AACH,wBAAsB,qBAAqB,kBAI1C"}