duckdb-tinyorm 1.0.21 → 1.0.24

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.
@@ -1,43 +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
-
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,82 +1,79 @@
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
- ```
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('JB', "Java Basic", "Java Basic", 2024);
53
+ const subject2 = new Subject('OOP', "Java OOP", "Java Object Oriented Programming", 2024);
54
+
55
+
56
+ //save records (as for now just insert a new record)
57
+ await subjectRepository.save(subject1);
58
+ await subjectRepository.save(subject2);
59
+
60
+ //find all records
61
+ const result = await subjectRepository.findAll();
62
+ console.table(result);
63
+
64
+ //find records by primary key
65
+ const subjectFound1: Subject = await subjectRepository.findById("JB");
66
+ console.info(subjectFound1);
67
+ const subjectFound2: Subject = await subjectRepository.findById("OOP");
68
+ console.info(subjectFound2);
69
+
70
+ //delete one record by primary key
71
+
72
+ await subjectRepository.removeById("JB");
73
+
74
+ const amenities = await subjectRepository.findBy({ Year: 2024 }, ["Year"]);
75
+ console.table(amenities);
76
+ }
77
+
78
+ test();
79
+ ```
package/dist/test.js CHANGED
@@ -61,16 +61,8 @@ SubjectRepository = __decorate([
61
61
  ], SubjectRepository);
62
62
  async function test() {
63
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";
64
+ const subject1 = new Subject('JB', "Java Basic", "Java Basic", 2024);
65
+ const subject2 = new Subject('OOP', "Java OOP", "Java Object Oriented Programming", 2024);
74
66
  await subjectRepository.save(subject1);
75
67
  await subjectRepository.save(subject2);
76
68
  const result = await subjectRepository.findAll();
package/dist/test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4BAA0B;AAC1B,yEAA4F;AAC5F,oEAAgE;AAChE,wEAAoF;AAGpF,yFAAyF;AACzF,MAAM,gBAAgB,GAAqB,oCAAgB,CAAC,YAAY,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,kCAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAC,CAAC,CAAA;AAG1I,IAAM,OAAO,GAAb,MAAM,OAAO;IAEhB,YAAY,KAAa,EAAE,EAAE,IAAa,EAAE,WAAoB,EAAE,OAAe,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;QACvG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAID,EAAE,CAAU;IAGZ,IAAI,CAAU;IAId,WAAW,CAAU;IAIrB,IAAI,CAAS;CAEhB,CAAA;AAxBY,0BAAO;AAWhB;IAFC,IAAA,wBAAE,GAAE;IACJ,IAAA,uCAAiB,EAAC,SAAS,CAAC;;mCACjB;AAGZ;IADC,IAAA,uCAAiB,EAAC,SAAS,CAAC;;qCACf;AAId;IADC,IAAA,uCAAiB,EAAC,SAAS,CAAC;;4CACR;AAIrB;IADC,IAAA,uCAAiB,EAAC,KAAK,CAAC;;qCACZ;kBAtBJ,OAAO;IADnB,4BAAM;;GACM,OAAO,CAwBnB;AAED,IACM,iBAAiB,GADvB,MACM,iBAAkB,SAAQ,gCAA+B;IAC3D;QACI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC5B,CAAC;CACJ,CAAA;AAJK,iBAAiB;IADtB,IAAA,gCAAU,EAAC,OAAO,CAAC;;GACd,iBAAiB,CAItB;AAGD,KAAK,UAAU,IAAI;IACf,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAElD,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,kCAAkC,EAAE,IAAI,CAAC,CAAC;IAG1F,MAAM,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,CAAC;IACjD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,MAAM,aAAa,GAAY,MAAM,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5B,MAAM,aAAa,GAAY,MAAM,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE5B,MAAM,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEzC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC7B,CAAC;AAED,IAAI,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,43 +1,43 @@
1
- {
2
- "name": "duckdb-tinyorm",
3
- "version": "1.0.21",
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
- }
1
+ {
2
+ "name": "duckdb-tinyorm",
3
+ "version": "1.0.24",
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
  }