duckdb-tinyorm 1.0.10 → 1.0.17
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/.github/workflows/publish.yml +43 -0
- package/README.md +82 -69
- package/dist/index.d.ts +3 -2
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/repositories/base.interface.d.ts +1 -0
- package/dist/repositories/base.repository.d.ts +2 -1
- package/dist/repositories/base.repository.js +9 -0
- package/dist/repositories/base.repository.js.map +1 -1
- package/dist/repositories/duckdb.repository.d.ts +11 -2
- package/dist/repositories/duckdb.repository.js +23 -6
- package/dist/repositories/duckdb.repository.js.map +1 -1
- package/dist/test.d.ts +8 -1
- package/dist/test.js +84 -41
- package/dist/test.js.map +1 -1
- package/package.json +43 -43
- package/tsconfig.json +23 -23
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
name: Publish npm Package
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*.*.*' # This triggers the action only when a tag with the format 'vX.X.X' is pushed
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
build:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout repository
|
|
14
|
+
uses: actions/checkout@v3
|
|
15
|
+
|
|
16
|
+
- name: Set up Node.js
|
|
17
|
+
uses: actions/setup-node@v3
|
|
18
|
+
with:
|
|
19
|
+
node-version: '22' # Use the version you prefer
|
|
20
|
+
cache: 'npm'
|
|
21
|
+
|
|
22
|
+
- name: Install dependencies
|
|
23
|
+
run: npm install
|
|
24
|
+
|
|
25
|
+
- name: Run tests
|
|
26
|
+
run: npm test
|
|
27
|
+
|
|
28
|
+
- name: Build the library
|
|
29
|
+
run: npm run build
|
|
30
|
+
|
|
31
|
+
- name: Publish to npm
|
|
32
|
+
env:
|
|
33
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
34
|
+
run: npm publish
|
|
35
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
36
|
+
|
|
37
|
+
- name: Bump version
|
|
38
|
+
run: |
|
|
39
|
+
npm version patch
|
|
40
|
+
git config user.name "Naim Sulejmani"
|
|
41
|
+
git config user.email "naim.sulejmani@gmail.com"
|
|
42
|
+
git push origin HEAD --tags
|
|
43
|
+
|
package/README.md
CHANGED
|
@@ -1,69 +1,82 @@
|
|
|
1
|
-
# DuckDB Tiny ORM
|
|
2
|
-
|
|
3
|
-
Usage:
|
|
4
|
-
|
|
5
|
-
```typescript
|
|
6
|
-
|
|
7
|
-
import '
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
@DataTypeDecorator('
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
1
|
+
# DuckDB Tiny ORM
|
|
2
|
+
|
|
3
|
+
Usage:
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
import 'reflect-metadata';
|
|
7
|
+
import { DuckDbRepository, Entity, Repository, DataTypeDecorator, BaseRepository, Id ,DuckDbLocation, DuckDbConfig } from 'duckdb-tinyorm';
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
//create instance in memory or use File, if File is specfied need to specify the filename
|
|
12
|
+
const duckDbRepository: DuckDbRepository = DuckDbRepository.getInstances({name: 'default', location: DuckDbLocation.Memory, filename: undefined})
|
|
13
|
+
|
|
14
|
+
@Entity
|
|
15
|
+
export class Subject {
|
|
16
|
+
|
|
17
|
+
constructor(id: string = "", name?: string, description?: string, year: number = (new Date()).getFullYear()) {
|
|
18
|
+
this.Id = id;
|
|
19
|
+
this.Name = name;
|
|
20
|
+
this.Description = description;
|
|
21
|
+
this.Year = year;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@Id()
|
|
25
|
+
@DataTypeDecorator('VARCHAR')
|
|
26
|
+
Id: string ;
|
|
27
|
+
|
|
28
|
+
@DataTypeDecorator('VARCHAR')
|
|
29
|
+
Name?: string;
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
@DataTypeDecorator('VARCHAR')
|
|
33
|
+
Description?: string;
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
@DataTypeDecorator('INT')
|
|
37
|
+
Year: number;
|
|
38
|
+
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@Repository(Subject)
|
|
42
|
+
class SubjectRepository extends BaseRepository<Subject, string> {
|
|
43
|
+
constructor() {
|
|
44
|
+
super(duckDbRepository);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
async function test() {
|
|
50
|
+
const subjectRepository = new SubjectRepository();
|
|
51
|
+
|
|
52
|
+
const subject1 = new Subject();
|
|
53
|
+
subject1.Name = "Java Basic";
|
|
54
|
+
subject1.Description = "Java Basic";
|
|
55
|
+
subject1.Year = 2024;
|
|
56
|
+
subject1.Id = "JB"
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
const subject2 = new Subject();
|
|
60
|
+
subject2.Name = "Java OOP";
|
|
61
|
+
subject2.Description = "Java Object Oriented Programming";
|
|
62
|
+
subject2.Year = 2024;
|
|
63
|
+
subject2.Id = "OOP"
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
await subjectRepository.save(subject1);
|
|
67
|
+
await subjectRepository.save(subject2);
|
|
68
|
+
const result = await subjectRepository.findAll();
|
|
69
|
+
console.table(result);
|
|
70
|
+
const subjectFound1: Subject = await subjectRepository.findById("JB");
|
|
71
|
+
console.info(subjectFound1);
|
|
72
|
+
const subjectFound2: Subject = await subjectRepository.findById("OOP");
|
|
73
|
+
console.info(subjectFound2);
|
|
74
|
+
|
|
75
|
+
await subjectRepository.removeById("JB");
|
|
76
|
+
|
|
77
|
+
const amenities = await subjectRepository.findBy({ Year: 2024 }, ["Year"]);
|
|
78
|
+
console.table(amenities);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
test();
|
|
82
|
+
```
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
2
|
import { DataTypeDecorator, Entity, Id, Repository, Unique } from "./constants/data-type.decorator";
|
|
3
3
|
import { BaseRepository } from "./repositories/base.repository";
|
|
4
|
-
import { DuckDbRepository } from
|
|
4
|
+
import { DuckDbRepository, DuckDbConfig, DuckDbLocation } from './repositories/duckdb.repository';
|
|
5
5
|
import { IRepository } from './repositories/base.interface';
|
|
6
|
-
|
|
6
|
+
import { getClassName, getTableName, getPrimaryId, generateCreateTableStatement, generateInsertIntoStatement } from './helpers/table-util.helper';
|
|
7
|
+
export { DataTypeDecorator, Id, Unique, BaseRepository, Entity, Repository, DuckDbRepository, IRepository, DuckDbConfig, DuckDbLocation, getClassName, getTableName, getPrimaryId, generateCreateTableStatement, generateInsertIntoStatement };
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DuckDbRepository = exports.Repository = exports.Entity = exports.BaseRepository = exports.Unique = exports.Id = exports.DataTypeDecorator = void 0;
|
|
3
|
+
exports.generateInsertIntoStatement = exports.generateCreateTableStatement = exports.getPrimaryId = exports.getTableName = exports.getClassName = exports.DuckDbLocation = exports.DuckDbRepository = exports.Repository = exports.Entity = exports.BaseRepository = exports.Unique = exports.Id = exports.DataTypeDecorator = void 0;
|
|
4
4
|
require("reflect-metadata");
|
|
5
5
|
const data_type_decorator_1 = require("./constants/data-type.decorator");
|
|
6
6
|
Object.defineProperty(exports, "DataTypeDecorator", { enumerable: true, get: function () { return data_type_decorator_1.DataTypeDecorator; } });
|
|
@@ -12,4 +12,11 @@ const base_repository_1 = require("./repositories/base.repository");
|
|
|
12
12
|
Object.defineProperty(exports, "BaseRepository", { enumerable: true, get: function () { return base_repository_1.BaseRepository; } });
|
|
13
13
|
const duckdb_repository_1 = require("./repositories/duckdb.repository");
|
|
14
14
|
Object.defineProperty(exports, "DuckDbRepository", { enumerable: true, get: function () { return duckdb_repository_1.DuckDbRepository; } });
|
|
15
|
+
Object.defineProperty(exports, "DuckDbLocation", { enumerable: true, get: function () { return duckdb_repository_1.DuckDbLocation; } });
|
|
16
|
+
const table_util_helper_1 = require("./helpers/table-util.helper");
|
|
17
|
+
Object.defineProperty(exports, "getClassName", { enumerable: true, get: function () { return table_util_helper_1.getClassName; } });
|
|
18
|
+
Object.defineProperty(exports, "getTableName", { enumerable: true, get: function () { return table_util_helper_1.getTableName; } });
|
|
19
|
+
Object.defineProperty(exports, "getPrimaryId", { enumerable: true, get: function () { return table_util_helper_1.getPrimaryId; } });
|
|
20
|
+
Object.defineProperty(exports, "generateCreateTableStatement", { enumerable: true, get: function () { return table_util_helper_1.generateCreateTableStatement; } });
|
|
21
|
+
Object.defineProperty(exports, "generateInsertIntoStatement", { enumerable: true, get: function () { return table_util_helper_1.generateInsertIntoStatement; } });
|
|
15
22
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,yEAAoG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,yEAAoG;AAShG,kGATK,uCAAiB,OASL;AAIjB,uFAbwB,4BAAM,OAaxB;AAHN,mFAVgC,wBAAE,OAUhC;AAIF,2FAdoC,gCAAU,OAcpC;AAHV,uFAXgD,4BAAM,OAWhD;AAVV,oEAAgE;AAW5D,+FAXK,gCAAc,OAWL;AAVlB,wEAAkG;AAa9F,iGAbK,oCAAgB,OAaL;AAGhB,+FAhBqC,kCAAc,OAgBrC;AAdlB,mEAAkJ;AAe9I,6FAfK,gCAAY,OAeL;AACZ,6FAhBmB,gCAAY,OAgBnB;AACZ,6FAjBiC,gCAAY,OAiBjC;AACZ,6GAlB+C,gDAA4B,OAkB/C;AAC5B,4GAnB6E,+CAA2B,OAmB7E"}
|
|
@@ -6,8 +6,9 @@ export declare class BaseRepository<T, Tid> implements IRepository<T, Tid> {
|
|
|
6
6
|
protected classType: new () => T;
|
|
7
7
|
private primaryColumnId;
|
|
8
8
|
constructor(repository: DuckDbRepository);
|
|
9
|
+
removeById(id: Tid): Promise<T>;
|
|
9
10
|
save(entity: T): Promise<T>;
|
|
10
11
|
findAll(): Promise<T[]>;
|
|
11
12
|
findById(id: Tid): Promise<T>;
|
|
12
|
-
findBy(entity: T
|
|
13
|
+
findBy(entity: Partial<T>, columns: string[]): Promise<T[]>;
|
|
13
14
|
}
|
|
@@ -15,6 +15,12 @@ class BaseRepository {
|
|
|
15
15
|
throw new Error('Class type is not defined!');
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
+
async removeById(id) {
|
|
19
|
+
const deletedItem = await this.findById(id);
|
|
20
|
+
const query = `DELETE FROM main.${this.classType.name} WHERE ${this.primaryColumnId}='${id}'`;
|
|
21
|
+
await this.repository.executeQuery(query);
|
|
22
|
+
return deletedItem;
|
|
23
|
+
}
|
|
18
24
|
async save(entity) {
|
|
19
25
|
console.log('Saving entity:', entity);
|
|
20
26
|
console.log('Class type:', this.classType.name);
|
|
@@ -33,6 +39,9 @@ class BaseRepository {
|
|
|
33
39
|
// Get the property names from the class using reflection
|
|
34
40
|
if (!this.primaryColumnId)
|
|
35
41
|
this.primaryColumnId = (0, table_util_helper_1.getPrimaryId)(this.classType);
|
|
42
|
+
if (!this.primaryColumnId) {
|
|
43
|
+
throw new Error("The table doesn't have any primary key declared!");
|
|
44
|
+
}
|
|
36
45
|
const query = `SELECT * FROM main.${this.classType.name} WHERE ${this.primaryColumnId}='${id}'`;
|
|
37
46
|
const result = await this.repository.executeQuery(query);
|
|
38
47
|
return result?.length ? result[0] : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.repository.js","sourceRoot":"","sources":["../../src/repositories/base.repository.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAE1B,oEAA4D;AAI5D,MAAa,cAAc;IAID;IAHZ,SAAS,CAAa;IACxB,eAAe,GAAG,EAAE,CAAC;IAE7B,YAAsB,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;QAC9C,2EAA2E;QAC3E,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAErE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAS;QAChB,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEhD,uCAAuC;QACvC,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAElF,6BAA6B;QAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAElF,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO;QACT,MAAM,KAAK,GAAG,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAO;QAClB,yDAAyD;QACzD,IAAI,CAAC,IAAI,CAAC,eAAe;YACrB,IAAI,CAAC,eAAe,GAAG,IAAA,gCAAY,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"base.repository.js","sourceRoot":"","sources":["../../src/repositories/base.repository.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAE1B,oEAA4D;AAI5D,MAAa,cAAc;IAID;IAHZ,SAAS,CAAa;IACxB,eAAe,GAAG,EAAE,CAAC;IAE7B,YAAsB,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;QAC9C,2EAA2E;QAC3E,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAErE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAO;QAEpB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE5C,MAAM,KAAK,GAAG,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,UAAU,IAAI,CAAC,eAAe,KAAK,EAAE,GAAG,CAAC;QAE9F,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE1C,OAAO,WAAW,CAAC;IAEvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAS;QAChB,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEhD,uCAAuC;QACvC,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAElF,6BAA6B;QAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAElF,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO;QACT,MAAM,KAAK,GAAG,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAO;QAClB,yDAAyD;QACzD,IAAI,CAAC,IAAI,CAAC,eAAe;YACrB,IAAI,CAAC,eAAe,GAAG,IAAA,gCAAY,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAExD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,KAAK,GAAG,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,UAAU,IAAI,CAAC,eAAe,KAAK,EAAE,GAAG,CAAC;QAChG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACxD,OAAO,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAkB,EAAE,OAAiB;QAC9C,IAAI,KAAK,GAAG,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;QAC/D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,KAAK,IAAI,GAAG,MAAM,KAAM,MAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC3D,CAAC;QACD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAnED,wCAmEC"}
|
|
@@ -1,11 +1,20 @@
|
|
|
1
|
+
export declare enum DuckDbLocation {
|
|
2
|
+
File = "",
|
|
3
|
+
Memory = ":memory:"
|
|
4
|
+
}
|
|
5
|
+
export interface DuckDbConfig {
|
|
6
|
+
name: string;
|
|
7
|
+
location: DuckDbLocation;
|
|
8
|
+
filename?: string;
|
|
9
|
+
}
|
|
1
10
|
export declare class DuckDbRepository {
|
|
2
11
|
private db?;
|
|
3
12
|
private connection?;
|
|
4
13
|
private tables;
|
|
5
14
|
private isClosed;
|
|
6
15
|
private static instance;
|
|
7
|
-
static getInstances(): DuckDbRepository;
|
|
8
|
-
protected constructor();
|
|
16
|
+
static getInstances(duckdbConfig?: DuckDbConfig): DuckDbRepository;
|
|
17
|
+
protected constructor(location?: string);
|
|
9
18
|
connect(): void;
|
|
10
19
|
createTableIfNotExists<T>(tableName: string, classType: new () => T): Promise<void>;
|
|
11
20
|
getDuckDbExtension(extension_name: string): Promise<any[]>;
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DuckDbRepository = void 0;
|
|
3
|
+
exports.DuckDbRepository = exports.DuckDbLocation = void 0;
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
5
|
const duckdb_1 = require("duckdb");
|
|
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
|
+
var DuckDbLocation;
|
|
10
|
+
(function (DuckDbLocation) {
|
|
11
|
+
DuckDbLocation["File"] = "";
|
|
12
|
+
DuckDbLocation["Memory"] = ":memory:";
|
|
13
|
+
})(DuckDbLocation || (exports.DuckDbLocation = DuckDbLocation = {}));
|
|
9
14
|
class DuckDbRepository {
|
|
10
15
|
db = undefined;
|
|
11
16
|
connection = undefined;
|
|
@@ -15,16 +20,28 @@ class DuckDbRepository {
|
|
|
15
20
|
isClosed = true;
|
|
16
21
|
// private readonly tableName: string;
|
|
17
22
|
// private readonly fileName: string;
|
|
18
|
-
static instance;
|
|
19
|
-
static getInstances() {
|
|
23
|
+
static instance = null;
|
|
24
|
+
static getInstances(duckdbConfig) {
|
|
25
|
+
if (!duckdbConfig) {
|
|
26
|
+
duckdbConfig = {
|
|
27
|
+
name: 'default',
|
|
28
|
+
location: DuckDbLocation.Memory,
|
|
29
|
+
filename: undefined
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
if (duckdbConfig?.location == DuckDbLocation.File && !duckdbConfig.filename) {
|
|
33
|
+
throw new Error("Filepath for duckdb is missing");
|
|
34
|
+
}
|
|
35
|
+
const dbLocation = duckdbConfig.location == DuckDbLocation.File ? duckdbConfig.filename : DuckDbLocation.Memory.toString();
|
|
36
|
+
console.log(dbLocation);
|
|
20
37
|
if (!this.instance) {
|
|
21
|
-
this.instance = new DuckDbRepository();
|
|
38
|
+
this.instance = new DuckDbRepository(dbLocation);
|
|
22
39
|
}
|
|
23
40
|
return this.instance;
|
|
24
41
|
}
|
|
25
|
-
constructor() {
|
|
42
|
+
constructor(location) {
|
|
26
43
|
if (!this.db) {
|
|
27
|
-
this.db = new duckdb_1.Database(':memory:');
|
|
44
|
+
this.db = new duckdb_1.Database(location ?? ':memory:');
|
|
28
45
|
this.connect();
|
|
29
46
|
}
|
|
30
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duckdb.repository.js","sourceRoot":"","sources":["../../src/repositories/duckdb.repository.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,mCAA8C;AAE9C,8DAAiE;AACjE,oEAAyG;AACzG,oDAA+H;
|
|
1
|
+
{"version":3,"file":"duckdb.repository.js","sourceRoot":"","sources":["../../src/repositories/duckdb.repository.ts"],"names":[],"mappings":"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"}
|
package/dist/test.d.ts
CHANGED
package/dist/test.js
CHANGED
|
@@ -1,44 +1,87 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
3
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
//
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
12
|
+
exports.Subject = void 0;
|
|
13
|
+
require("reflect-metadata");
|
|
14
|
+
const data_type_decorator_1 = require("./constants/data-type.decorator");
|
|
15
|
+
const base_repository_1 = require("./repositories/base.repository");
|
|
16
|
+
const duckdb_repository_1 = require("./repositories/duckdb.repository");
|
|
17
|
+
//create instance in memory or use File, if File is specfied need to specify the filename
|
|
18
|
+
const duckDbRepository = duckdb_repository_1.DuckDbRepository.getInstances({ name: 'default', location: duckdb_repository_1.DuckDbLocation.Memory, filename: undefined });
|
|
19
|
+
let Subject = class Subject {
|
|
20
|
+
constructor(id = "", name, description, year = (new Date()).getFullYear()) {
|
|
21
|
+
this.Id = id;
|
|
22
|
+
this.Name = name;
|
|
23
|
+
this.Description = description;
|
|
24
|
+
this.Year = year;
|
|
25
|
+
}
|
|
26
|
+
Id;
|
|
27
|
+
Name;
|
|
28
|
+
Description;
|
|
29
|
+
Year;
|
|
30
|
+
};
|
|
31
|
+
exports.Subject = Subject;
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, data_type_decorator_1.Id)(),
|
|
34
|
+
(0, data_type_decorator_1.DataTypeDecorator)('VARCHAR'),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], Subject.prototype, "Id", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, data_type_decorator_1.DataTypeDecorator)('VARCHAR'),
|
|
39
|
+
__metadata("design:type", String)
|
|
40
|
+
], Subject.prototype, "Name", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, data_type_decorator_1.DataTypeDecorator)('VARCHAR'),
|
|
43
|
+
__metadata("design:type", String)
|
|
44
|
+
], Subject.prototype, "Description", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, data_type_decorator_1.DataTypeDecorator)('INT'),
|
|
47
|
+
__metadata("design:type", Number)
|
|
48
|
+
], Subject.prototype, "Year", void 0);
|
|
49
|
+
exports.Subject = Subject = __decorate([
|
|
50
|
+
data_type_decorator_1.Entity,
|
|
51
|
+
__metadata("design:paramtypes", [String, String, String, Number])
|
|
52
|
+
], Subject);
|
|
53
|
+
let SubjectRepository = class SubjectRepository extends base_repository_1.BaseRepository {
|
|
54
|
+
constructor() {
|
|
55
|
+
super(duckDbRepository);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
SubjectRepository = __decorate([
|
|
59
|
+
(0, data_type_decorator_1.Repository)(Subject),
|
|
60
|
+
__metadata("design:paramtypes", [])
|
|
61
|
+
], SubjectRepository);
|
|
62
|
+
async function test() {
|
|
63
|
+
const subjectRepository = new SubjectRepository();
|
|
64
|
+
const subject1 = new Subject();
|
|
65
|
+
subject1.Name = "Java Basic";
|
|
66
|
+
subject1.Description = "Java Basic";
|
|
67
|
+
subject1.Year = 2024;
|
|
68
|
+
subject1.Id = "JB";
|
|
69
|
+
const subject2 = new Subject();
|
|
70
|
+
subject2.Name = "Java OOP";
|
|
71
|
+
subject2.Description = "Java Object Oriented Programming";
|
|
72
|
+
subject2.Year = 2024;
|
|
73
|
+
subject2.Id = "OOP";
|
|
74
|
+
await subjectRepository.save(subject1);
|
|
75
|
+
await subjectRepository.save(subject2);
|
|
76
|
+
const result = await subjectRepository.findAll();
|
|
77
|
+
console.table(result);
|
|
78
|
+
const subjectFound1 = await subjectRepository.findById("JB");
|
|
79
|
+
console.info(subjectFound1);
|
|
80
|
+
const subjectFound2 = await subjectRepository.findById("OOP");
|
|
81
|
+
console.info(subjectFound2);
|
|
82
|
+
await subjectRepository.removeById("JB");
|
|
83
|
+
const amenities = await subjectRepository.findBy({ Year: 2024 }, ["Year"]);
|
|
84
|
+
console.table(amenities);
|
|
85
|
+
}
|
|
86
|
+
test();
|
|
44
87
|
//# sourceMappingURL=test.js.map
|
package/dist/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "duckdb-tinyorm",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "TinyORM for Duckdb, easy setup",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"build": "tsc",
|
|
9
|
-
"prepublishOnly": "npm run build",
|
|
10
|
-
"test": "
|
|
11
|
-
"dev": "nodemon --exec ts-node src/test.ts",
|
|
12
|
-
"start": "node dist/index.js"
|
|
13
|
-
},
|
|
14
|
-
"repository": {
|
|
15
|
-
"type": "git",
|
|
16
|
-
"url": "git+https://github.com/naimsulejmani/duckdb-tinyorm.git"
|
|
17
|
-
},
|
|
18
|
-
"keywords": [
|
|
19
|
-
"duckdb",
|
|
20
|
-
"orm",
|
|
21
|
-
"tinyorm",
|
|
22
|
-
"database"
|
|
23
|
-
],
|
|
24
|
-
"author": "Naim Sulejmani",
|
|
25
|
-
"license": "ISC",
|
|
26
|
-
"bugs": {
|
|
27
|
-
"url": "https://github.com/naimsulejmani/duckdb-tinyorm/issues"
|
|
28
|
-
},
|
|
29
|
-
"homepage": "https://github.com/naimsulejmani/duckdb-tinyorm#readme",
|
|
30
|
-
"dependencies": {
|
|
31
|
-
"@types/node": "^22.7.4",
|
|
32
|
-
"dotenv": "^16.4.5",
|
|
33
|
-
"duckdb": "^1.1.0",
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "duckdb-tinyorm",
|
|
3
|
+
"version": "1.0.17",
|
|
4
|
+
"description": "TinyORM for Duckdb, easy setup",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc",
|
|
9
|
+
"prepublishOnly": "npm run build",
|
|
10
|
+
"test": "echo 'Test not implemented'",
|
|
11
|
+
"dev": "nodemon --exec ts-node src/test.ts",
|
|
12
|
+
"start": "node dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/naimsulejmani/duckdb-tinyorm.git"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [
|
|
19
|
+
"duckdb",
|
|
20
|
+
"orm",
|
|
21
|
+
"tinyorm",
|
|
22
|
+
"database"
|
|
23
|
+
],
|
|
24
|
+
"author": "Naim Sulejmani",
|
|
25
|
+
"license": "ISC",
|
|
26
|
+
"bugs": {
|
|
27
|
+
"url": "https://github.com/naimsulejmani/duckdb-tinyorm/issues"
|
|
28
|
+
},
|
|
29
|
+
"homepage": "https://github.com/naimsulejmani/duckdb-tinyorm#readme",
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@types/node": "^22.7.4",
|
|
32
|
+
"dotenv": "^16.4.5",
|
|
33
|
+
"duckdb": "^1.1.0",
|
|
34
|
+
"duckdb-tinyorm": "^1.0.10",
|
|
35
|
+
"globals": "^15.9.0",
|
|
36
|
+
"nodemon": "^3.1.7",
|
|
37
|
+
"npm": "^10.8.3",
|
|
38
|
+
"reflect-metadata": "^0.2.2",
|
|
39
|
+
"rimraf": "^6.0.1",
|
|
40
|
+
"ts-node": "^10.9.2",
|
|
41
|
+
"typescript": "^5.6.2"
|
|
42
|
+
}
|
|
43
|
+
}
|
package/tsconfig.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"lib": [
|
|
4
|
-
"ES2023"
|
|
5
|
-
],
|
|
6
|
-
"module": "Node16",
|
|
7
|
-
"target": "ESNext",
|
|
8
|
-
"moduleResolution": "Node16",
|
|
9
|
-
"moduleDetection": "force",
|
|
10
|
-
"outDir": "./dist",
|
|
11
|
-
"rootDir": "./src",
|
|
12
|
-
"strict": true, // Enabled for better type safety
|
|
13
|
-
"esModuleInterop": true,
|
|
14
|
-
"allowJs": true,
|
|
15
|
-
"declaration": true,
|
|
16
|
-
"skipLibCheck": true,
|
|
17
|
-
"experimentalDecorators": true,
|
|
18
|
-
"allowSyntheticDefaultImports": true,
|
|
19
|
-
"forceConsistentCasingInFileNames": true,
|
|
20
|
-
"skipDefaultLibCheck": true,
|
|
21
|
-
"sourceMap": true,
|
|
22
|
-
"emitDecoratorMetadata": true
|
|
23
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"lib": [
|
|
4
|
+
"ES2023"
|
|
5
|
+
],
|
|
6
|
+
"module": "Node16",
|
|
7
|
+
"target": "ESNext",
|
|
8
|
+
"moduleResolution": "Node16",
|
|
9
|
+
"moduleDetection": "force",
|
|
10
|
+
"outDir": "./dist",
|
|
11
|
+
"rootDir": "./src",
|
|
12
|
+
"strict": true, // Enabled for better type safety
|
|
13
|
+
"esModuleInterop": true,
|
|
14
|
+
"allowJs": true,
|
|
15
|
+
"declaration": true,
|
|
16
|
+
"skipLibCheck": true,
|
|
17
|
+
"experimentalDecorators": true,
|
|
18
|
+
"allowSyntheticDefaultImports": true,
|
|
19
|
+
"forceConsistentCasingInFileNames": true,
|
|
20
|
+
"skipDefaultLibCheck": true,
|
|
21
|
+
"sourceMap": true,
|
|
22
|
+
"emitDecoratorMetadata": true
|
|
23
|
+
}
|
|
24
24
|
}
|