@boostkit/orm 0.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.
- package/LICENSE +21 -0
- package/README.md +41 -0
- package/dist/index.d.ts +86 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +65 -0
- package/dist/index.js.map +1 -0
- package/package.json +37 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 BoostKit
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# @boostkit/orm
|
|
2
|
+
|
|
3
|
+
ORM contracts and base model abstraction used by Forge ORM adapters.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add @boostkit/orm
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import { Model, ModelRegistry } from '@boostkit/orm'
|
|
15
|
+
|
|
16
|
+
class User extends Model {
|
|
17
|
+
static override table = 'user'
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const db = ModelRegistry.getAdapter()
|
|
21
|
+
const users = await User.all()
|
|
22
|
+
const first = await db.query('user').where('role', 'admin').first()
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## API Reference
|
|
26
|
+
|
|
27
|
+
- Query types: `WhereOperator`, `WhereClause`, `OrderClause`, `QueryState`
|
|
28
|
+
- `QueryBuilder<T>`
|
|
29
|
+
- `PaginatedResult<T>`
|
|
30
|
+
- `Model`
|
|
31
|
+
- `OrmAdapter`, `OrmAdapterProvider`
|
|
32
|
+
- `ModelRegistry`
|
|
33
|
+
|
|
34
|
+
## Configuration
|
|
35
|
+
|
|
36
|
+
This package has no runtime config object.
|
|
37
|
+
|
|
38
|
+
## Notes
|
|
39
|
+
|
|
40
|
+
- `ModelRegistry.set(adapter)` must be called before using `Model.query()` helpers.
|
|
41
|
+
- `Model.getTable()` defaults to lowercase class name + `s`.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
export type WhereOperator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'LIKE' | 'IN' | 'NOT IN';
|
|
2
|
+
export interface WhereClause {
|
|
3
|
+
column: string;
|
|
4
|
+
operator: WhereOperator;
|
|
5
|
+
value: unknown;
|
|
6
|
+
}
|
|
7
|
+
export interface OrderClause {
|
|
8
|
+
column: string;
|
|
9
|
+
direction: 'ASC' | 'DESC';
|
|
10
|
+
}
|
|
11
|
+
export interface QueryState {
|
|
12
|
+
wheres: WhereClause[];
|
|
13
|
+
orders: OrderClause[];
|
|
14
|
+
limitN: number | null;
|
|
15
|
+
offsetN: number | null;
|
|
16
|
+
withs: string[];
|
|
17
|
+
}
|
|
18
|
+
export interface QueryBuilder<T> {
|
|
19
|
+
where(column: string, value: unknown): this;
|
|
20
|
+
where(column: string, operator: WhereOperator, value: unknown): this;
|
|
21
|
+
orWhere(column: string, value: unknown): this;
|
|
22
|
+
orderBy(column: string, direction?: 'ASC' | 'DESC'): this;
|
|
23
|
+
limit(n: number): this;
|
|
24
|
+
offset(n: number): this;
|
|
25
|
+
with(...relations: string[]): this;
|
|
26
|
+
first(): Promise<T | null>;
|
|
27
|
+
find(id: number | string): Promise<T | null>;
|
|
28
|
+
get(): Promise<T[]>;
|
|
29
|
+
all(): Promise<T[]>;
|
|
30
|
+
count(): Promise<number>;
|
|
31
|
+
create(data: Partial<T>): Promise<T>;
|
|
32
|
+
update(id: number | string, data: Partial<T>): Promise<T>;
|
|
33
|
+
delete(id: number | string): Promise<void>;
|
|
34
|
+
paginate(page: number, perPage?: number): Promise<PaginatedResult<T>>;
|
|
35
|
+
}
|
|
36
|
+
export interface PaginatedResult<T> {
|
|
37
|
+
data: T[];
|
|
38
|
+
total: number;
|
|
39
|
+
perPage: number;
|
|
40
|
+
currentPage: number;
|
|
41
|
+
lastPage: number;
|
|
42
|
+
from: number;
|
|
43
|
+
to: number;
|
|
44
|
+
}
|
|
45
|
+
export declare abstract class Model {
|
|
46
|
+
/** The table name — defaults to lowercase class name + 's' */
|
|
47
|
+
static table: string;
|
|
48
|
+
/** Primary key column */
|
|
49
|
+
static primaryKey: string;
|
|
50
|
+
/** Columns to hide from JSON output */
|
|
51
|
+
static hidden: string[];
|
|
52
|
+
/** Columns that are mass-assignable */
|
|
53
|
+
static fillable: string[];
|
|
54
|
+
/** Get the table name, auto-pluralizing if not set */
|
|
55
|
+
static getTable(this: typeof Model): string;
|
|
56
|
+
/** Return a query builder for this model */
|
|
57
|
+
static query<T extends typeof Model>(this: T): QueryBuilder<InstanceType<T>>;
|
|
58
|
+
private static _q;
|
|
59
|
+
/** Shorthand — find by primary key */
|
|
60
|
+
static find<T extends typeof Model>(this: T, id: number | string): Promise<InstanceType<T> | null>;
|
|
61
|
+
/** Shorthand — get all records */
|
|
62
|
+
static all<T extends typeof Model>(this: T): Promise<InstanceType<T>[]>;
|
|
63
|
+
/** Shorthand — where clause */
|
|
64
|
+
static where<T extends typeof Model>(this: T, column: string, value: unknown): QueryBuilder<InstanceType<T>>;
|
|
65
|
+
/** Shorthand — create a record */
|
|
66
|
+
static create<T extends typeof Model>(this: T, data: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
|
|
67
|
+
/** Shorthand — eager load relations */
|
|
68
|
+
static with<T extends typeof Model>(this: T, ...relations: string[]): QueryBuilder<InstanceType<T>>;
|
|
69
|
+
/** Convert model to JSON, respecting hidden fields */
|
|
70
|
+
toJSON(): Record<string, unknown>;
|
|
71
|
+
}
|
|
72
|
+
export interface OrmAdapter {
|
|
73
|
+
query<T>(table: string): QueryBuilder<T>;
|
|
74
|
+
connect(): Promise<void>;
|
|
75
|
+
disconnect(): Promise<void>;
|
|
76
|
+
}
|
|
77
|
+
export interface OrmAdapterProvider {
|
|
78
|
+
create(): OrmAdapter | Promise<OrmAdapter>;
|
|
79
|
+
}
|
|
80
|
+
export declare class ModelRegistry {
|
|
81
|
+
private static adapter;
|
|
82
|
+
static set(adapter: OrmAdapter): void;
|
|
83
|
+
static get(): OrmAdapter | null;
|
|
84
|
+
static getAdapter(): OrmAdapter;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// ─── Types ─────────────────────────────────────────────────
|
|
2
|
+
// ─── Model Base Class ──────────────────────────────────────
|
|
3
|
+
export class Model {
|
|
4
|
+
/** The table name — defaults to lowercase class name + 's' */
|
|
5
|
+
static table;
|
|
6
|
+
/** Primary key column */
|
|
7
|
+
static primaryKey = 'id';
|
|
8
|
+
/** Columns to hide from JSON output */
|
|
9
|
+
static hidden = [];
|
|
10
|
+
/** Columns that are mass-assignable */
|
|
11
|
+
static fillable = [];
|
|
12
|
+
/** Get the table name, auto-pluralizing if not set */
|
|
13
|
+
static getTable() {
|
|
14
|
+
return this.table ?? `${this.name.toLowerCase()}s`;
|
|
15
|
+
}
|
|
16
|
+
/** Return a query builder for this model */
|
|
17
|
+
static query() {
|
|
18
|
+
return ModelRegistry.getAdapter().query(this.getTable());
|
|
19
|
+
}
|
|
20
|
+
static _q(self) {
|
|
21
|
+
return ModelRegistry.getAdapter().query(self.getTable());
|
|
22
|
+
}
|
|
23
|
+
/** Shorthand — find by primary key */
|
|
24
|
+
static find(id) {
|
|
25
|
+
return Model._q(this).find(id);
|
|
26
|
+
}
|
|
27
|
+
/** Shorthand — get all records */
|
|
28
|
+
static all() {
|
|
29
|
+
return Model._q(this).all();
|
|
30
|
+
}
|
|
31
|
+
/** Shorthand — where clause */
|
|
32
|
+
static where(column, value) {
|
|
33
|
+
return Model._q(this).where(column, value);
|
|
34
|
+
}
|
|
35
|
+
/** Shorthand — create a record */
|
|
36
|
+
static create(data) {
|
|
37
|
+
return Model._q(this).create(data);
|
|
38
|
+
}
|
|
39
|
+
/** Shorthand — eager load relations */
|
|
40
|
+
static with(...relations) {
|
|
41
|
+
return Model._q(this).with(...relations);
|
|
42
|
+
}
|
|
43
|
+
/** Convert model to JSON, respecting hidden fields */
|
|
44
|
+
toJSON() {
|
|
45
|
+
const hidden = this.constructor.hidden;
|
|
46
|
+
return Object.fromEntries(Object.entries(this).filter(([k]) => !hidden.includes(k)));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// ─── Global ORM Registry ───────────────────────────────────
|
|
50
|
+
export class ModelRegistry {
|
|
51
|
+
static adapter = null;
|
|
52
|
+
static set(adapter) {
|
|
53
|
+
this.adapter = adapter;
|
|
54
|
+
}
|
|
55
|
+
static get() {
|
|
56
|
+
return this.adapter;
|
|
57
|
+
}
|
|
58
|
+
static getAdapter() {
|
|
59
|
+
if (!this.adapter) {
|
|
60
|
+
throw new Error('[BoostKit ORM] No ORM adapter registered. Did you configure one in forge.config.ts?');
|
|
61
|
+
}
|
|
62
|
+
return this.adapter;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAwD9D,8DAA8D;AAE9D,MAAM,OAAgB,KAAK;IACzB,8DAA8D;IAC9D,MAAM,CAAC,KAAK,CAAQ;IAEpB,yBAAyB;IACzB,MAAM,CAAC,UAAU,GAAG,IAAI,CAAA;IAExB,uCAAuC;IACvC,MAAM,CAAC,MAAM,GAAa,EAAE,CAAA;IAE5B,uCAAuC;IACvC,MAAM,CAAC,QAAQ,GAAa,EAAE,CAAA;IAE9B,sDAAsD;IACtD,MAAM,CAAC,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAA;IACpD,CAAC;IAED,4CAA4C;IAC5C,MAAM,CAAC,KAAK;QACV,OAAO,aAAa,CAAC,UAAU,EAAE,CAAC,KAAK,CACpC,IAAqB,CAAC,QAAQ,EAAE,CAClC,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,EAAE,CAAyB,IAAO;QAC/C,OAAO,aAAa,CAAC,UAAU,EAAE,CAAC,KAAK,CAAmB,IAAqB,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7F,CAAC;IAED,sCAAsC;IACtC,MAAM,CAAC,IAAI,CAAkC,EAAmB;QAC9D,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChC,CAAC;IAED,kCAAkC;IAClC,MAAM,CAAC,GAAG;QACR,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAA;IAC7B,CAAC;IAED,+BAA+B;IAC/B,MAAM,CAAC,KAAK,CAAkC,MAAc,EAAE,KAAc;QAC1E,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC5C,CAAC;IAED,kCAAkC;IAClC,MAAM,CAAC,MAAM,CAAkC,IAA8B;QAC3E,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,IAAI,CAAkC,GAAG,SAAmB;QACjE,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;IAC1C,CAAC;IAED,sDAAsD;IACtD,MAAM;QACJ,MAAM,MAAM,GAAI,IAAI,CAAC,WAA4B,CAAC,MAAM,CAAA;QACxD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC1D,CAAA;IACH,CAAC;;AAeH,8DAA8D;AAE9D,MAAM,OAAO,aAAa;IAChB,MAAM,CAAC,OAAO,GAAsB,IAAI,CAAA;IAEhD,MAAM,CAAC,GAAG,CAAC,OAAmB;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,MAAM,CAAC,GAAG;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,MAAM,CAAC,UAAU;QACf,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAA;QACxG,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@boostkit/orm",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/boostkitjs/boostkit",
|
|
8
|
+
"directory": "packages/orm"
|
|
9
|
+
},
|
|
10
|
+
"type": "module",
|
|
11
|
+
"files": [
|
|
12
|
+
"dist"
|
|
13
|
+
],
|
|
14
|
+
"main": "./dist/index.js",
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"import": "./dist/index.js",
|
|
19
|
+
"types": "./dist/index.d.ts"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@boostkit/core": "0.0.1"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"@types/node": "^20.0.0",
|
|
27
|
+
"typescript": "^5.4.0",
|
|
28
|
+
"tsx": "^4.0.0"
|
|
29
|
+
},
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "tsc",
|
|
32
|
+
"dev": "tsc --watch",
|
|
33
|
+
"typecheck": "tsc --noEmit",
|
|
34
|
+
"clean": "rm -rf dist",
|
|
35
|
+
"test": "tsc -p tsconfig.test.json && node --test dist-test/index.test.js; rm -rf dist-test"
|
|
36
|
+
}
|
|
37
|
+
}
|