duckdb-tinyorm 2.0.4 → 3.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.
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DuckDbRepository = exports.DuckDbLocation = void 0;
4
4
  /* eslint-disable @typescript-eslint/no-explicit-any */
5
- const duckdb_1 = require("duckdb");
5
+ const node_api_1 = require("@duckdb/node-api");
6
6
  const mapping_helper_1 = require("../helpers/mapping.helper");
7
7
  const table_util_helper_1 = require("../helpers/table-util.helper");
8
8
  const db_helper_1 = require("../helpers/db.helper");
9
- const transaction_1 = require("./transaction"); // Add this import
9
+ const transaction_1 = require("./transaction");
10
10
  const orm_errors_1 = require("../errors/orm-errors");
11
11
  const models_interface_1 = require("./models.interface");
12
12
  var DuckDbLocation;
@@ -15,15 +15,34 @@ var DuckDbLocation;
15
15
  DuckDbLocation["Memory"] = ":memory:";
16
16
  })(DuckDbLocation || (exports.DuckDbLocation = DuckDbLocation = {}));
17
17
  class DuckDbRepository {
18
- db = undefined;
18
+ instance = undefined;
19
19
  connection = undefined;
20
- // private statement: Statement;
21
- // private toDropTable: boolean = true;
22
20
  tables = new Map();
23
21
  isClosed = true;
24
- // private readonly tableName: string;
25
- // private readonly fileName: string;
22
+ connectionPromise = null;
23
+ initialized = null;
26
24
  static instance = null;
25
+ static async getInstance(duckdbConfig) {
26
+ if (!duckdbConfig) {
27
+ duckdbConfig = {
28
+ name: 'default',
29
+ location: DuckDbLocation.Memory,
30
+ filename: undefined
31
+ };
32
+ }
33
+ if (duckdbConfig?.location == DuckDbLocation.File && !duckdbConfig.filename) {
34
+ throw new Error("Filepath for duckdb is missing");
35
+ }
36
+ const dbLocation = duckdbConfig.location == DuckDbLocation.File ? duckdbConfig.filename : DuckDbLocation.Memory.toString();
37
+ console.log(dbLocation);
38
+ if (!this.instance) {
39
+ this.instance = new DuckDbRepository(dbLocation, duckdbConfig.options);
40
+ // Wait for initialization to complete
41
+ await this.instance.initialized;
42
+ }
43
+ return this.instance;
44
+ }
45
+ // Legacy method to maintain backward compatibility
27
46
  static getInstances(duckdbConfig) {
28
47
  if (!duckdbConfig) {
29
48
  duckdbConfig = {
@@ -38,24 +57,77 @@ class DuckDbRepository {
38
57
  const dbLocation = duckdbConfig.location == DuckDbLocation.File ? duckdbConfig.filename : DuckDbLocation.Memory.toString();
39
58
  console.log(dbLocation);
40
59
  if (!this.instance) {
41
- this.instance = new DuckDbRepository(dbLocation);
60
+ this.instance = new DuckDbRepository(dbLocation, duckdbConfig.options);
42
61
  }
43
62
  return this.instance;
44
63
  }
45
- constructor(location) {
46
- if (!this.db) {
47
- this.db = new duckdb_1.Database(location ?? ':memory:');
48
- this.connect();
64
+ constructor(location, options) {
65
+ // Initialize with the provided location or default to ':memory:'
66
+ this.initialized = this.initSync(location ?? ':memory:', options).catch(error => {
67
+ console.error('Error initializing DuckDB instance:', error);
68
+ throw error;
69
+ });
70
+ }
71
+ async initSync(location, options) {
72
+ try {
73
+ // Create instance using the static create method as per DuckDB API
74
+ this.instance = await node_api_1.DuckDBInstance.create(location);
75
+ console.log(`DuckDB instance created at ${location}`);
76
+ // If we have options and the instance is created successfully, set them
77
+ if (options && this.instance) {
78
+ // Set options on the instance if needed
79
+ }
80
+ // Connect immediately after creating the instance
81
+ if (this.instance) {
82
+ this.connection = await this.instance.connect();
83
+ this.isClosed = false;
84
+ console.log('DuckDB connection established successfully');
85
+ }
86
+ }
87
+ catch (error) {
88
+ console.error('Error initializing DuckDB repository:', error);
89
+ throw error;
49
90
  }
50
91
  }
51
- connect() {
52
- if (this.isClosed) {
53
- this.connection = this.db?.connect();
54
- this.isClosed = false;
92
+ async connect() {
93
+ // If we're already connecting, return the existing promise
94
+ if (this.connectionPromise) {
95
+ return this.connectionPromise;
96
+ }
97
+ // If we're already connected, return immediately
98
+ if (!this.isClosed && this.connection) {
99
+ return Promise.resolve();
100
+ }
101
+ // Start a new connection process
102
+ this.connectionPromise = new Promise((resolve, reject) => {
103
+ if (this.isClosed && this.instance) {
104
+ this.instance.connect()
105
+ .then(connection => {
106
+ this.connection = connection;
107
+ this.isClosed = false;
108
+ resolve();
109
+ })
110
+ .catch(error => {
111
+ console.error('Error connecting to DuckDB:', error);
112
+ reject(error);
113
+ })
114
+ .finally(() => {
115
+ this.connectionPromise = null;
116
+ });
117
+ }
118
+ else {
119
+ resolve();
120
+ }
121
+ });
122
+ return this.connectionPromise;
123
+ }
124
+ async ensureConnected() {
125
+ if (!this.connection || this.isClosed) {
126
+ await this.connect();
55
127
  }
56
128
  }
57
- // Fix the sequence creation logic
58
129
  async createTableIfNotExists(tableName, classType) {
130
+ await this.ensureConnected();
59
131
  try {
60
132
  // Get the actual table name from metadata if available
61
133
  const actualTableName = Reflect.getMetadata('TableName', classType) || tableName;
@@ -101,15 +173,18 @@ class DuckDbRepository {
101
173
  }
102
174
  }
103
175
  async getDuckDbExtension(extension_name) {
176
+ await this.ensureConnected();
104
177
  return this.executeQuery(`select extension_name, loaded, installed from duckdb_extensions() where extension_name='${extension_name}';`);
105
178
  }
106
179
  async executeQuery(query) {
107
- return await (0, db_helper_1.executeQuery)(this.connection, query);
180
+ await this.ensureConnected();
181
+ return (0, db_helper_1.executeQuery)(this.connection, query);
108
182
  }
109
183
  async pushToDuckDb(tableName, classType, data) {
110
184
  await this.saveToDuckDB(tableName, classType, data);
111
185
  }
112
186
  async saveToDuckDB(tableName, classType, data) {
187
+ await this.ensureConnected();
113
188
  if (!(data?.length))
114
189
  return;
115
190
  // Get the actual table name from metadata if available
@@ -123,15 +198,18 @@ class DuckDbRepository {
123
198
  await (0, db_helper_1.bulkInsert)(this.connection, fullQuery);
124
199
  }
125
200
  async saveToParquet(name, mainFolder) {
201
+ await this.ensureConnected();
126
202
  const fileName = `${name}.parquet`;
127
203
  const tableName = `main.${name}`;
128
204
  await (0, db_helper_1.saveToParquet)(this.connection, fileName, tableName, mainFolder);
129
205
  }
130
206
  async saveToParquetByName(parquetFileName, duckDBTableName, mainFolder) {
207
+ await this.ensureConnected();
131
208
  const fileName = `${parquetFileName}.parquet`;
132
209
  await (0, db_helper_1.saveToParquet)(this.connection, fileName, `main.${duckDBTableName}`, mainFolder);
133
210
  }
134
211
  async dropTablesFromMemory() {
212
+ await this.ensureConnected();
135
213
  const promiseDropTables = [];
136
214
  this.tables.forEach((value, key) => {
137
215
  if (value)
@@ -142,26 +220,30 @@ class DuckDbRepository {
142
220
  await Promise.all(promiseDropTables);
143
221
  }
144
222
  async dropTable(tableName) {
223
+ await this.ensureConnected();
145
224
  await (0, db_helper_1.dropTable)(this.connection, 'main.' + tableName);
146
225
  if (this.tables.get(tableName)) {
147
226
  this.tables.delete(tableName);
148
227
  }
149
228
  }
150
229
  async deleteTableData(tableName) {
230
+ await this.ensureConnected();
151
231
  return await (0, db_helper_1.deleteTableData)(this.connection, tableName);
152
232
  }
153
233
  async saveQueryToParquet(name, query, folder) {
234
+ await this.ensureConnected();
154
235
  const fileName = `${name}.parquet`;
155
236
  await (0, db_helper_1.saveQueryToParquet)(this.connection, fileName, query, folder);
156
237
  }
157
238
  // Add this method to the DuckDbRepository class
158
239
  createTransaction() {
159
240
  if (!this.connection) {
160
- this.connect();
241
+ throw new orm_errors_1.ConnectionError("Cannot create transaction: Connection is not established.");
161
242
  }
162
243
  return new transaction_1.Transaction(this.connection);
163
244
  }
164
245
  async exportTable(tableName, options) {
246
+ await this.ensureConnected();
165
247
  if (this.connection == undefined) {
166
248
  throw new orm_errors_1.ConnectionError("Connection is not established.");
167
249
  }
@@ -178,6 +260,7 @@ class DuckDbRepository {
178
260
  }
179
261
  }
180
262
  async exportQuery(query, options) {
263
+ await this.ensureConnected();
181
264
  if (this.connection == undefined) {
182
265
  throw new orm_errors_1.ConnectionError("Connection is not established.");
183
266
  }
@@ -193,6 +276,7 @@ class DuckDbRepository {
193
276
  }
194
277
  }
195
278
  async dropSequence(sequenceName) {
279
+ await this.ensureConnected();
196
280
  try {
197
281
  const query = `DROP SEQUENCE IF EXISTS ${sequenceName}`;
198
282
  await this.executeQuery(query);
@@ -204,6 +288,7 @@ class DuckDbRepository {
204
288
  }
205
289
  }
206
290
  async sequenceExists(sequenceName) {
291
+ await this.ensureConnected();
207
292
  try {
208
293
  const query = `SELECT sequence_name FROM information_schema.sequences WHERE sequence_name = '${sequenceName}'`;
209
294
  const result = await this.executeQuery(query);
@@ -216,6 +301,7 @@ class DuckDbRepository {
216
301
  }
217
302
  // Method to create a secret in DuckDB
218
303
  async createSecret(secret) {
304
+ await this.ensureConnected();
219
305
  let query = '';
220
306
  switch (secret.type) {
221
307
  case models_interface_1.SecretType.S3:
@@ -238,6 +324,7 @@ class DuckDbRepository {
238
324
  }
239
325
  // Method to drop a secret
240
326
  async dropSecret(secretName) {
327
+ await this.ensureConnected();
241
328
  const query = `DROP SECRET IF EXISTS ${secretName}`;
242
329
  try {
243
330
  await this.executeQuery(query);
@@ -250,6 +337,7 @@ class DuckDbRepository {
250
337
  }
251
338
  // Method to replace (update) a secret
252
339
  async replaceSecret(secret) {
340
+ await this.ensureConnected();
253
341
  // Drop the existing secret first if it exists
254
342
  await this.dropSecret(secret.name);
255
343
  // Create the new secret
@@ -257,6 +345,7 @@ class DuckDbRepository {
257
345
  }
258
346
  // Method to list all secrets
259
347
  async listSecrets() {
348
+ await this.ensureConnected();
260
349
  const query = `SELECT * FROM duckdb_secrets()`;
261
350
  return this.executeQuery(query);
262
351
  }
@@ -291,10 +380,19 @@ class DuckDbRepository {
291
380
  }
292
381
  // Method to check if a secret exists
293
382
  async secretExists(secretName) {
383
+ await this.ensureConnected();
294
384
  const query = `SELECT name FROM duckdb_secrets() WHERE name = '${secretName}'`;
295
385
  const result = await this.executeQuery(query);
296
386
  return result && result.length > 0;
297
387
  }
388
+ // Close connection explicitly
389
+ async close() {
390
+ if (this.connection && !this.isClosed) {
391
+ this.connection.disconnectSync();
392
+ this.isClosed = true;
393
+ this.connection = undefined;
394
+ }
395
+ }
298
396
  }
299
397
  exports.DuckDbRepository = DuckDbRepository;
300
398
  //# sourceMappingURL=duckdb.repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"duckdb.repository.js","sourceRoot":"","sources":["../../src/repositories/duckdb.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"duckdb.repository.js","sourceRoot":"","sources":["../../src/repositories/duckdb.repository.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
- import { Connection } from 'duckdb';
1
+ import { DuckDBConnection } from '@duckdb/node-api';
2
2
  export declare class Transaction {
3
3
  private connection;
4
- constructor(connection: Connection);
4
+ constructor(connection: DuckDBConnection);
5
5
  begin(): Promise<void>;
6
6
  commit(): Promise<void>;
7
7
  rollback(): Promise<void>;
8
- private execute;
9
8
  }
@@ -9,7 +9,7 @@ class Transaction {
9
9
  }
10
10
  async begin() {
11
11
  try {
12
- await this.execute('BEGIN TRANSACTION');
12
+ await this.connection.run('BEGIN TRANSACTION');
13
13
  }
14
14
  catch (error) {
15
15
  throw new orm_errors_1.TransactionError('begin', error);
@@ -17,7 +17,7 @@ class Transaction {
17
17
  }
18
18
  async commit() {
19
19
  try {
20
- await this.execute('COMMIT');
20
+ await this.connection.run('COMMIT');
21
21
  }
22
22
  catch (error) {
23
23
  throw new orm_errors_1.TransactionError('commit', error);
@@ -25,24 +25,12 @@ class Transaction {
25
25
  }
26
26
  async rollback() {
27
27
  try {
28
- await this.execute('ROLLBACK');
28
+ await this.connection.run('ROLLBACK');
29
29
  }
30
30
  catch (error) {
31
31
  throw new orm_errors_1.TransactionError('rollback', error);
32
32
  }
33
33
  }
34
- execute(query) {
35
- return new Promise((resolve, reject) => {
36
- this.connection.run(query, (err) => {
37
- if (err) {
38
- reject(err);
39
- }
40
- else {
41
- resolve();
42
- }
43
- });
44
- });
45
- }
46
34
  }
47
35
  exports.Transaction = Transaction;
48
36
  //# sourceMappingURL=transaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/repositories/transaction.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AAExD,MAAa,WAAW;IACA;IAApB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C,KAAK,CAAC,KAAK;QACP,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,6BAAgB,CAAC,OAAO,EAAE,KAAc,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM;QACR,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,6BAAgB,CAAC,QAAQ,EAAE,KAAc,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ;QACV,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,6BAAgB,CAAC,UAAU,EAAE,KAAc,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAEO,OAAO,CAAC,KAAa;QACzB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/B,IAAI,GAAG,EAAE,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACJ,OAAO,EAAE,CAAC;gBACd,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAtCD,kCAsCC"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/repositories/transaction.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AAExD,MAAa,WAAW;IACA;IAApB,YAAoB,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;IAAI,CAAC;IAErD,KAAK,CAAC,KAAK;QACP,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,6BAAgB,CAAC,OAAO,EAAE,KAAc,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM;QACR,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,6BAAgB,CAAC,QAAQ,EAAE,KAAc,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ;QACV,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,6BAAgB,CAAC,UAAU,EAAE,KAAc,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;CACJ;AA1BD,kCA0BC"}
package/dist/test.js CHANGED
@@ -10,14 +10,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Subject = void 0;
13
- const duckdb_tinyorm_1 = require("duckdb-tinyorm");
13
+ // import { BaseRepository, Column, DuckDbLocation, DuckDbRepository, Entity, Repository, Transaction } from 'duckdb-tinyorm';
14
14
  require("reflect-metadata");
15
- // Create instance in memory or use File
16
- const duckDbRepository = duckdb_tinyorm_1.DuckDbRepository.getInstances({
17
- name: 'default',
18
- location: duckdb_tinyorm_1.DuckDbLocation.Memory,
19
- filename: undefined
20
- });
15
+ const duckdb_tinyorm_1 = require("duckdb-tinyorm");
16
+ // Use the async getInstance method instead of getInstances
17
+ let duckDbRepository;
21
18
  let Subject = class Subject {
22
19
  Id;
23
20
  Code;
@@ -74,8 +71,8 @@ exports.Subject = Subject = __decorate([
74
71
  __metadata("design:paramtypes", [String, String, String, Number])
75
72
  ], Subject);
76
73
  let SubjectRepository = class SubjectRepository extends duckdb_tinyorm_1.BaseRepository {
77
- constructor() {
78
- super(duckDbRepository);
74
+ constructor(repo) {
75
+ super(repo);
79
76
  }
80
77
  // Add a custom method to find by code
81
78
  async findByCode(code) {
@@ -97,81 +94,120 @@ let SubjectRepository = class SubjectRepository extends duckdb_tinyorm_1.BaseRep
97
94
  };
98
95
  SubjectRepository = __decorate([
99
96
  (0, duckdb_tinyorm_1.Repository)(Subject),
100
- __metadata("design:paramtypes", [])
97
+ __metadata("design:paramtypes", [duckdb_tinyorm_1.DuckDbRepository])
101
98
  ], SubjectRepository);
102
- // Modify the test function to log IDs
99
+ // Modify the test function to initialize the connection properly
103
100
  async function test() {
104
- const subjectRepository = new SubjectRepository();
105
- await subjectRepository.init();
106
- // Save entities
107
- const subject1 = new Subject('JB', "Java Basic", "Java Basic", 2024);
108
- const subject2 = new Subject('OOP', "Java OOP", "Java Object Oriented Programming", 2024);
109
- // Save and log the returned entities with their IDs
110
- const savedSubject1 = await subjectRepository.save(subject1);
111
- console.log("Saved subject 1 with ID:", savedSubject1.Id);
112
- const savedSubject2 = await subjectRepository.save(subject2);
113
- console.log("Saved subject 2 with ID:", savedSubject2.Id);
114
- // Rest of your test...
115
- // Find all records
116
- const result = await subjectRepository.findAll();
117
- console.table(result);
118
- // Find by Code using custom method
119
- const subjectFound = await subjectRepository.findByCode("JB");
120
- console.info(subjectFound);
121
- // Delete by Code using custom method
122
- await subjectRepository.removeByCode("JB");
123
- // Find with criteria
124
- const subjects = await subjectRepository.findBy({ Year: 2024 }, ["Year"]);
125
- console.table(subjects);
126
- // Use pagination
127
- const page = await subjectRepository.findWithPagination({ page: 0, size: 10 });
128
- console.log(`Found ${page.totalElements} subjects across ${page.totalPages} pages`);
129
- // Use query builder
130
- const queryBuilder = await subjectRepository.createQueryBuilder();
131
- const customQuery = queryBuilder
132
- .select(['Id', 'Name'])
133
- .where('Year = 2024')
134
- .orderBy('Name', 'ASC')
135
- .limit(5)
136
- .getQuery();
137
- const customResults = await duckDbRepository.executeQuery(customQuery);
138
- console.table(customResults);
139
- // Use transactions
140
- await subjectRepository.withTransaction(async (transaction) => {
141
- const newSubject = new Subject('DB', 'Database', 'Database course', 2024);
142
- await subjectRepository.save(newSubject);
143
- // If any operation throws an error, the transaction will be rolled back
144
- if (newSubject.Code !== 'DB') {
145
- throw new Error('Something went wrong');
146
- }
147
- // If we get here, the transaction will be committed
148
- });
149
- // Example usage in test.ts or another file
150
- // Export a table to CSV
151
- await subjectRepository.exportData({
152
- format: 'csv',
153
- fileName: 'subjects.csv',
154
- csvOptions: {
155
- header: true,
156
- delimiter: ','
157
- }
158
- });
159
- // Export query results to JSON
160
- const query = `SELECT * FROM main.subjects WHERE Year = 2024`;
161
- await subjectRepository.exportQuery(query, {
162
- format: 'json',
163
- fileName: 'subjects-2024.json',
164
- jsonOptions: {
165
- pretty: true
166
- }
167
- });
168
- // Export all data to Parquet using DuckDbRepository directly
169
- await duckDbRepository.exportTable('subjects', {
170
- format: 'parquet',
171
- fileName: 'subjects.parquet',
172
- parquetOptions: {
173
- compression: 'ZSTD'
174
- }
175
- });
101
+ try {
102
+ // Initialize the repository asynchronously
103
+ duckDbRepository = await duckdb_tinyorm_1.DuckDbRepository.getInstance({
104
+ name: 'default',
105
+ location: duckdb_tinyorm_1.DuckDbLocation.Memory,
106
+ filename: undefined
107
+ });
108
+ console.log("DuckDb repository initialized successfully");
109
+ const subjectRepository = new SubjectRepository(duckDbRepository);
110
+ await subjectRepository.init();
111
+ // Save entities
112
+ const subject1 = new Subject('JB', "Java Basic", "Java Basic", 2024);
113
+ const subject2 = new Subject('OOP', "Java OOP", "Java Object Oriented Programming", 2024);
114
+ // Save and log the returned entities with their IDs
115
+ console.log("Saving subjects...");
116
+ console.log("Subject 1:", subject1);
117
+ const savedSubject1 = await subjectRepository.save(subject1);
118
+ console.log("Saved subject 1 with ID:", savedSubject1.Id);
119
+ console.log("Subject 2:", subject2);
120
+ const savedSubject2 = await subjectRepository.save(subject2);
121
+ console.log("Saved subject 2 with ID:", savedSubject2.Id);
122
+ // Rest of your test...
123
+ // Find all records
124
+ console.log("Finding all subjects...");
125
+ const result = await subjectRepository.findAll();
126
+ console.table(result);
127
+ // Find by Code using custom method
128
+ console.log("Finding subject by code 'JB'...");
129
+ const subjectFound = await subjectRepository.findByCode("JB");
130
+ console.info(subjectFound);
131
+ // Delete by Code using custom method
132
+ console.log("Deleting subject by code 'JB'...");
133
+ await subjectRepository.removeByCode("JB");
134
+ // Find with criteria
135
+ console.log("Finding subjects with criteria (Year = 2024)...");
136
+ const subjects = await subjectRepository.findBy({ Year: 2024 }, ["Year"]);
137
+ console.table(subjects);
138
+ // Use pagination
139
+ console.log("Finding subjects with pagination (page 0, size 1)...");
140
+ const page = await subjectRepository.findWithPagination({ page: 0, size: 1 });
141
+ console.log(`Found ${page.totalElements} subjects across ${page.totalPages} pages`);
142
+ console.table(page.content);
143
+ console.log("Finding subjects with pagination (page 1, size 1)...");
144
+ const page1 = await subjectRepository.findWithPagination({ page: 1, size: 1 });
145
+ console.log(`Found ${page.totalElements} subjects across ${page1.totalPages} pages`);
146
+ console.table(page1.content);
147
+ // Use query builder
148
+ console.log("Using query builder to find subjects (Year = 2024, limit 5)...");
149
+ const queryBuilder = await subjectRepository.createQueryBuilder();
150
+ const customQuery = queryBuilder
151
+ .select(['Id', 'Name'])
152
+ .where('Year = 2024')
153
+ .orderBy('Name', 'ASC')
154
+ .limit(5)
155
+ .getQuery();
156
+ const customResults = await duckDbRepository.executeQuery(customQuery);
157
+ console.table(customResults);
158
+ // Use transactions
159
+ console.log("Using transaction to save a new subject...");
160
+ await subjectRepository.withTransaction(async (transaction) => {
161
+ const newSubject = new Subject('DB', 'Database', 'Database course', 2024);
162
+ await subjectRepository.save(newSubject);
163
+ // If any operation throws an error, the transaction will be rolled back
164
+ if (newSubject.Code !== 'DB') {
165
+ throw new Error('Something went wrong');
166
+ }
167
+ // If we get here, the transaction will be committed
168
+ });
169
+ // Example usage in test.ts or another file
170
+ // Export a table to CSV
171
+ console.log("Exporting subjects to CSV...");
172
+ await subjectRepository.exportData({
173
+ format: 'csv',
174
+ fileName: 'subjects.csv',
175
+ csvOptions: {
176
+ header: true,
177
+ delimiter: ','
178
+ }
179
+ });
180
+ // Export query results to JSON
181
+ console.log("Exporting subjects with Year = 2024 to JSON...");
182
+ const query = `SELECT * FROM main.subjects WHERE Year = 2024`;
183
+ await subjectRepository.exportQuery(query, {
184
+ format: 'json',
185
+ fileName: 'subjects-2024.json',
186
+ jsonOptions: {
187
+ pretty: true
188
+ }
189
+ });
190
+ // Export all data to Parquet using DuckDbRepository directly
191
+ console.log("Exporting all subjects to Parquet...");
192
+ await duckDbRepository.exportTable('subjects', {
193
+ format: 'parquet',
194
+ fileName: 'subjects.parquet',
195
+ parquetOptions: {
196
+ compression: 'ZSTD'
197
+ }
198
+ });
199
+ }
200
+ catch (error) {
201
+ console.error("Error during test execution:", error);
202
+ }
176
203
  }
204
+ // Use an IIFE to allow top-level await
205
+ (async () => {
206
+ try {
207
+ await test();
208
+ }
209
+ catch (error) {
210
+ console.error("Fatal error:", error);
211
+ }
212
+ })();
177
213
  //# sourceMappingURL=test.js.map