@toonstore/torm 0.1.0 → 0.2.0
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/README.md +16 -11
- package/dist/index.d.ts +69 -39
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +233 -124
- package/dist/index.js.map +1 -1
- package/package.json +11 -7
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ A Mongoose-style ORM client for ToonStore, providing type-safe models, validatio
|
|
|
11
11
|
- ✅ **Query Builder** - Fluent API for filtering and sorting
|
|
12
12
|
- ✅ **Schema Definition** - Define your data models
|
|
13
13
|
- ✅ **Async/Await** - Promise-based API
|
|
14
|
-
- ✅ **
|
|
14
|
+
- ✅ **Direct Redis Connection** - No server required, connects directly to Redis/ToonStore
|
|
15
15
|
|
|
16
16
|
## 📦 Installation
|
|
17
17
|
|
|
@@ -25,10 +25,10 @@ yarn add @toonstore/torm
|
|
|
25
25
|
|
|
26
26
|
### Prerequisites
|
|
27
27
|
|
|
28
|
-
Make sure
|
|
28
|
+
Make sure Redis is running:
|
|
29
29
|
```bash
|
|
30
|
-
|
|
31
|
-
#
|
|
30
|
+
redis-server
|
|
31
|
+
# Default: localhost:6379
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
### Basic Usage
|
|
@@ -36,10 +36,12 @@ cargo run --package torm-server --release
|
|
|
36
36
|
```typescript
|
|
37
37
|
import { TormClient } from '@toonstore/torm';
|
|
38
38
|
|
|
39
|
-
// 1. Create client
|
|
39
|
+
// 1. Create client (connects directly to Redis)
|
|
40
40
|
const torm = new TormClient({
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
host: 'localhost',
|
|
42
|
+
port: 6379,
|
|
43
|
+
// Or use connection URL:
|
|
44
|
+
// url: 'redis://localhost:6379'
|
|
43
45
|
});
|
|
44
46
|
|
|
45
47
|
// 2. Define model with schema
|
|
@@ -110,14 +112,17 @@ const torm = new TormClient(options?: TormClientOptions);
|
|
|
110
112
|
```
|
|
111
113
|
|
|
112
114
|
**Options:**
|
|
113
|
-
- `
|
|
114
|
-
- `
|
|
115
|
+
- `host` (string) - Redis host (default: `localhost`)
|
|
116
|
+
- `port` (number) - Redis port (default: `6379`)
|
|
117
|
+
- `url` (string) - Redis connection URL (e.g., `redis://localhost:6379`)
|
|
118
|
+
- All standard `ioredis` options are supported
|
|
115
119
|
|
|
116
120
|
#### Methods
|
|
117
121
|
|
|
118
122
|
- `model<T>(name, schema?, options?)` - Create a model
|
|
119
|
-
- `health()` - Check
|
|
120
|
-
- `
|
|
123
|
+
- `health()` - Check Redis connection health
|
|
124
|
+
- `disconnect()` - Close Redis connection
|
|
125
|
+
- `isConnected()` - Check if connected to Redis
|
|
121
126
|
|
|
122
127
|
### Model
|
|
123
128
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @toonstore/torm - ToonStore ORM Client for Node.js
|
|
3
3
|
*
|
|
4
|
-
* A Mongoose-style ORM client for ToonStore
|
|
4
|
+
* A Mongoose-style ORM client for ToonStore connecting directly to Redis
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
7
|
-
export interface TormClientOptions {
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
import Redis, { RedisOptions } from 'ioredis';
|
|
7
|
+
export interface TormClientOptions extends RedisOptions {
|
|
8
|
+
host?: string;
|
|
9
|
+
port?: number;
|
|
10
|
+
url?: string;
|
|
10
11
|
}
|
|
11
12
|
export interface QueryFilter {
|
|
12
13
|
field: string;
|
|
@@ -42,28 +43,32 @@ export interface ModelOptions {
|
|
|
42
43
|
validate?: boolean;
|
|
43
44
|
}
|
|
44
45
|
export declare class TormClient {
|
|
45
|
-
private
|
|
46
|
-
private
|
|
46
|
+
private redis;
|
|
47
|
+
private connected;
|
|
47
48
|
constructor(options?: TormClientOptions);
|
|
48
49
|
/**
|
|
49
50
|
* Create a new model class
|
|
50
51
|
*/
|
|
51
52
|
model<T extends Record<string, any>>(name: string, schema?: ModelSchema, options?: ModelOptions): Model<T>;
|
|
52
53
|
/**
|
|
53
|
-
* Get
|
|
54
|
+
* Get Redis client instance
|
|
54
55
|
*/
|
|
55
|
-
|
|
56
|
+
getRedis(): Redis;
|
|
56
57
|
/**
|
|
57
|
-
* Check
|
|
58
|
+
* Check connection health
|
|
58
59
|
*/
|
|
59
60
|
health(): Promise<{
|
|
60
61
|
status: string;
|
|
61
|
-
|
|
62
|
+
connected: boolean;
|
|
62
63
|
}>;
|
|
63
64
|
/**
|
|
64
|
-
*
|
|
65
|
+
* Close Redis connection
|
|
66
|
+
*/
|
|
67
|
+
disconnect(): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Check if connected
|
|
65
70
|
*/
|
|
66
|
-
|
|
71
|
+
isConnected(): boolean;
|
|
67
72
|
}
|
|
68
73
|
export declare class Model<T extends Record<string, any>> {
|
|
69
74
|
private client;
|
|
@@ -71,22 +76,44 @@ export declare class Model<T extends Record<string, any>> {
|
|
|
71
76
|
private schema?;
|
|
72
77
|
private options;
|
|
73
78
|
constructor(client: TormClient, name: string, schema?: ModelSchema, options?: ModelOptions);
|
|
79
|
+
/**
|
|
80
|
+
* Get the Redis key pattern for this collection
|
|
81
|
+
*/
|
|
82
|
+
private getKeyPattern;
|
|
83
|
+
/**
|
|
84
|
+
* Generate a unique ID
|
|
85
|
+
*/
|
|
86
|
+
private generateId;
|
|
74
87
|
/**
|
|
75
88
|
* Create a new document
|
|
76
89
|
*/
|
|
77
|
-
create(data: Partial<T>): Promise<T
|
|
90
|
+
create(data: Partial<T>): Promise<T & {
|
|
91
|
+
_id: string;
|
|
92
|
+
}>;
|
|
78
93
|
/**
|
|
79
94
|
* Find all documents
|
|
80
95
|
*/
|
|
81
|
-
find(): Promise<T
|
|
96
|
+
find(): Promise<Array<T & {
|
|
97
|
+
_id: string;
|
|
98
|
+
}>>;
|
|
82
99
|
/**
|
|
83
100
|
* Find document by ID
|
|
84
101
|
*/
|
|
85
|
-
findById(id: string): Promise<T
|
|
102
|
+
findById(id: string): Promise<(T & {
|
|
103
|
+
_id: string;
|
|
104
|
+
}) | null>;
|
|
105
|
+
/**
|
|
106
|
+
* Find one document matching criteria
|
|
107
|
+
*/
|
|
108
|
+
findOne(filter: Partial<T>): Promise<(T & {
|
|
109
|
+
_id: string;
|
|
110
|
+
}) | null>;
|
|
86
111
|
/**
|
|
87
112
|
* Update document by ID
|
|
88
113
|
*/
|
|
89
|
-
update(id: string, data: Partial<T>): Promise<T
|
|
114
|
+
update(id: string, data: Partial<T>): Promise<(T & {
|
|
115
|
+
_id: string;
|
|
116
|
+
}) | null>;
|
|
90
117
|
/**
|
|
91
118
|
* Delete document by ID
|
|
92
119
|
*/
|
|
@@ -99,51 +126,54 @@ export declare class Model<T extends Record<string, any>> {
|
|
|
99
126
|
* Query documents with filters
|
|
100
127
|
*/
|
|
101
128
|
query(): QueryBuilder<T>;
|
|
129
|
+
/**
|
|
130
|
+
* Delete all documents in collection
|
|
131
|
+
*/
|
|
132
|
+
deleteMany(filter?: Partial<T>): Promise<number>;
|
|
102
133
|
/**
|
|
103
134
|
* Validate data against schema
|
|
104
135
|
*/
|
|
105
136
|
private validate;
|
|
106
|
-
private
|
|
107
|
-
private
|
|
137
|
+
private isValidEmail;
|
|
138
|
+
private isValidUrl;
|
|
108
139
|
}
|
|
109
|
-
export declare class QueryBuilder<T
|
|
110
|
-
private
|
|
111
|
-
private
|
|
112
|
-
private
|
|
113
|
-
private sortField?;
|
|
114
|
-
private sortOrder?;
|
|
140
|
+
export declare class QueryBuilder<T extends Record<string, any>> {
|
|
141
|
+
private model;
|
|
142
|
+
private filterConditions;
|
|
143
|
+
private sortOptions?;
|
|
115
144
|
private limitValue?;
|
|
116
145
|
private skipValue?;
|
|
117
|
-
constructor(
|
|
146
|
+
constructor(model: Model<T>);
|
|
118
147
|
/**
|
|
119
|
-
* Add
|
|
148
|
+
* Add filter condition
|
|
120
149
|
*/
|
|
121
|
-
|
|
150
|
+
where(field: string, operator: QueryFilter['operator'], value: any): this;
|
|
122
151
|
/**
|
|
123
|
-
*
|
|
152
|
+
* Shorthand for equals filter
|
|
124
153
|
*/
|
|
125
|
-
|
|
154
|
+
equals(field: string, value: any): this;
|
|
126
155
|
/**
|
|
127
156
|
* Sort results
|
|
128
157
|
*/
|
|
129
|
-
sort(field: string, order?: 'asc' | 'desc'):
|
|
158
|
+
sort(field: string, order?: 'asc' | 'desc'): this;
|
|
130
159
|
/**
|
|
131
|
-
* Limit results
|
|
160
|
+
* Limit number of results
|
|
132
161
|
*/
|
|
133
|
-
limit(
|
|
162
|
+
limit(value: number): this;
|
|
134
163
|
/**
|
|
135
|
-
* Skip results
|
|
164
|
+
* Skip number of results
|
|
136
165
|
*/
|
|
137
|
-
skip(
|
|
166
|
+
skip(value: number): this;
|
|
138
167
|
/**
|
|
139
|
-
* Execute query
|
|
168
|
+
* Execute the query
|
|
140
169
|
*/
|
|
141
|
-
exec(): Promise<T
|
|
170
|
+
exec(): Promise<Array<T & {
|
|
171
|
+
_id: string;
|
|
172
|
+
}>>;
|
|
142
173
|
/**
|
|
143
|
-
*
|
|
174
|
+
* Get count of matching documents
|
|
144
175
|
*/
|
|
145
176
|
count(): Promise<number>;
|
|
146
|
-
private matchesFilter;
|
|
147
177
|
}
|
|
148
178
|
export default TormClient;
|
|
149
179
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,26 +2,37 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* @toonstore/torm - ToonStore ORM Client for Node.js
|
|
4
4
|
*
|
|
5
|
-
* A Mongoose-style ORM client for ToonStore
|
|
5
|
+
* A Mongoose-style ORM client for ToonStore connecting directly to Redis
|
|
6
6
|
*/
|
|
7
7
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
8
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
9
|
};
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
11
|
exports.QueryBuilder = exports.Model = exports.TormClient = void 0;
|
|
12
|
-
const
|
|
12
|
+
const ioredis_1 = __importDefault(require("ioredis"));
|
|
13
13
|
// ============================================================================
|
|
14
14
|
// TormClient
|
|
15
15
|
// ============================================================================
|
|
16
16
|
class TormClient {
|
|
17
17
|
constructor(options = {}) {
|
|
18
|
-
this.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
this.connected = false;
|
|
19
|
+
const redisOptions = {
|
|
20
|
+
host: options.host || 'localhost',
|
|
21
|
+
port: options.port || 6379,
|
|
22
|
+
...options,
|
|
23
|
+
};
|
|
24
|
+
if (options.url) {
|
|
25
|
+
this.redis = new ioredis_1.default(options.url, redisOptions);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
this.redis = new ioredis_1.default(redisOptions);
|
|
29
|
+
}
|
|
30
|
+
this.redis.on('connect', () => {
|
|
31
|
+
this.connected = true;
|
|
32
|
+
});
|
|
33
|
+
this.redis.on('error', (err) => {
|
|
34
|
+
console.error('Redis connection error:', err);
|
|
35
|
+
this.connected = false;
|
|
25
36
|
});
|
|
26
37
|
}
|
|
27
38
|
/**
|
|
@@ -31,24 +42,35 @@ class TormClient {
|
|
|
31
42
|
return new Model(this, name, schema, options);
|
|
32
43
|
}
|
|
33
44
|
/**
|
|
34
|
-
* Get
|
|
45
|
+
* Get Redis client instance
|
|
35
46
|
*/
|
|
36
|
-
|
|
37
|
-
return this.
|
|
47
|
+
getRedis() {
|
|
48
|
+
return this.redis;
|
|
38
49
|
}
|
|
39
50
|
/**
|
|
40
|
-
* Check
|
|
51
|
+
* Check connection health
|
|
41
52
|
*/
|
|
42
53
|
async health() {
|
|
43
|
-
|
|
44
|
-
|
|
54
|
+
try {
|
|
55
|
+
await this.redis.ping();
|
|
56
|
+
return { status: 'ok', connected: true };
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
return { status: 'error', connected: false };
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Close Redis connection
|
|
64
|
+
*/
|
|
65
|
+
async disconnect() {
|
|
66
|
+
await this.redis.quit();
|
|
67
|
+
this.connected = false;
|
|
45
68
|
}
|
|
46
69
|
/**
|
|
47
|
-
*
|
|
70
|
+
* Check if connected
|
|
48
71
|
*/
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return response.data;
|
|
72
|
+
isConnected() {
|
|
73
|
+
return this.connected;
|
|
52
74
|
}
|
|
53
75
|
}
|
|
54
76
|
exports.TormClient = TormClient;
|
|
@@ -62,72 +84,156 @@ class Model {
|
|
|
62
84
|
this.schema = schema;
|
|
63
85
|
this.options = { validate: true, ...options };
|
|
64
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Get the Redis key pattern for this collection
|
|
89
|
+
*/
|
|
90
|
+
getKeyPattern(id) {
|
|
91
|
+
return id ? `toonstore:${this.collectionName}:${id}` : `toonstore:${this.collectionName}:*`;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Generate a unique ID
|
|
95
|
+
*/
|
|
96
|
+
generateId() {
|
|
97
|
+
return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
98
|
+
}
|
|
65
99
|
/**
|
|
66
100
|
* Create a new document
|
|
67
101
|
*/
|
|
68
102
|
async create(data) {
|
|
69
103
|
if (this.options.validate && this.schema) {
|
|
70
|
-
this.validate(data);
|
|
104
|
+
await this.validate(data);
|
|
71
105
|
}
|
|
72
|
-
const
|
|
73
|
-
|
|
106
|
+
const id = this.generateId();
|
|
107
|
+
const document = {
|
|
108
|
+
...data,
|
|
109
|
+
_id: id,
|
|
110
|
+
_createdAt: new Date().toISOString(),
|
|
111
|
+
_updatedAt: new Date().toISOString(),
|
|
112
|
+
};
|
|
113
|
+
const key = this.getKeyPattern(id);
|
|
114
|
+
await this.client.getRedis().set(key, JSON.stringify(document));
|
|
115
|
+
return document;
|
|
74
116
|
}
|
|
75
117
|
/**
|
|
76
118
|
* Find all documents
|
|
77
119
|
*/
|
|
78
120
|
async find() {
|
|
79
|
-
const
|
|
80
|
-
|
|
121
|
+
const redis = this.client.getRedis();
|
|
122
|
+
const pattern = this.getKeyPattern();
|
|
123
|
+
const keys = await redis.keys(pattern);
|
|
124
|
+
if (keys.length === 0) {
|
|
125
|
+
return [];
|
|
126
|
+
}
|
|
127
|
+
const values = await redis.mget(...keys);
|
|
128
|
+
return values
|
|
129
|
+
.filter((v) => v !== null)
|
|
130
|
+
.map(v => JSON.parse(v));
|
|
81
131
|
}
|
|
82
132
|
/**
|
|
83
133
|
* Find document by ID
|
|
84
134
|
*/
|
|
85
135
|
async findById(id) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
136
|
+
const key = this.getKeyPattern(id);
|
|
137
|
+
const value = await this.client.getRedis().get(key);
|
|
138
|
+
if (!value) {
|
|
139
|
+
return null;
|
|
89
140
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
141
|
+
return JSON.parse(value);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Find one document matching criteria
|
|
145
|
+
*/
|
|
146
|
+
async findOne(filter) {
|
|
147
|
+
const documents = await this.find();
|
|
148
|
+
for (const doc of documents) {
|
|
149
|
+
let matches = true;
|
|
150
|
+
for (const [key, value] of Object.entries(filter)) {
|
|
151
|
+
if (doc[key] !== value) {
|
|
152
|
+
matches = false;
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (matches) {
|
|
157
|
+
return doc;
|
|
93
158
|
}
|
|
94
|
-
throw error;
|
|
95
159
|
}
|
|
160
|
+
return null;
|
|
96
161
|
}
|
|
97
162
|
/**
|
|
98
163
|
* Update document by ID
|
|
99
164
|
*/
|
|
100
165
|
async update(id, data) {
|
|
166
|
+
const existing = await this.findById(id);
|
|
167
|
+
if (!existing) {
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
101
170
|
if (this.options.validate && this.schema) {
|
|
102
|
-
this.validate(data);
|
|
171
|
+
await this.validate(data);
|
|
103
172
|
}
|
|
104
|
-
const
|
|
105
|
-
|
|
173
|
+
const updated = {
|
|
174
|
+
...existing,
|
|
175
|
+
...data,
|
|
176
|
+
_updatedAt: new Date().toISOString(),
|
|
177
|
+
};
|
|
178
|
+
const key = this.getKeyPattern(id);
|
|
179
|
+
await this.client.getRedis().set(key, JSON.stringify(updated));
|
|
180
|
+
return updated;
|
|
106
181
|
}
|
|
107
182
|
/**
|
|
108
183
|
* Delete document by ID
|
|
109
184
|
*/
|
|
110
185
|
async delete(id) {
|
|
111
|
-
const
|
|
112
|
-
|
|
186
|
+
const key = this.getKeyPattern(id);
|
|
187
|
+
const result = await this.client.getRedis().del(key);
|
|
188
|
+
return result > 0;
|
|
113
189
|
}
|
|
114
190
|
/**
|
|
115
191
|
* Count documents
|
|
116
192
|
*/
|
|
117
193
|
async count() {
|
|
118
|
-
const
|
|
119
|
-
return
|
|
194
|
+
const keys = await this.client.getRedis().keys(this.getKeyPattern());
|
|
195
|
+
return keys.length;
|
|
120
196
|
}
|
|
121
197
|
/**
|
|
122
198
|
* Query documents with filters
|
|
123
199
|
*/
|
|
124
200
|
query() {
|
|
125
|
-
return new QueryBuilder(this
|
|
201
|
+
return new QueryBuilder(this);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Delete all documents in collection
|
|
205
|
+
*/
|
|
206
|
+
async deleteMany(filter) {
|
|
207
|
+
if (!filter || Object.keys(filter).length === 0) {
|
|
208
|
+
// Delete all documents in collection
|
|
209
|
+
const keys = await this.client.getRedis().keys(this.getKeyPattern());
|
|
210
|
+
if (keys.length === 0)
|
|
211
|
+
return 0;
|
|
212
|
+
await this.client.getRedis().del(...keys);
|
|
213
|
+
return keys.length;
|
|
214
|
+
}
|
|
215
|
+
// Delete documents matching filter
|
|
216
|
+
const documents = await this.find();
|
|
217
|
+
let deleted = 0;
|
|
218
|
+
for (const doc of documents) {
|
|
219
|
+
let matches = true;
|
|
220
|
+
for (const [key, value] of Object.entries(filter)) {
|
|
221
|
+
if (doc[key] !== value) {
|
|
222
|
+
matches = false;
|
|
223
|
+
break;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
if (matches) {
|
|
227
|
+
await this.delete(doc._id);
|
|
228
|
+
deleted++;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return deleted;
|
|
126
232
|
}
|
|
127
233
|
/**
|
|
128
234
|
* Validate data against schema
|
|
129
235
|
*/
|
|
130
|
-
validate(data) {
|
|
236
|
+
async validate(data) {
|
|
131
237
|
if (!this.schema)
|
|
132
238
|
return;
|
|
133
239
|
for (const [field, rules] of Object.entries(this.schema)) {
|
|
@@ -155,12 +261,12 @@ class Model {
|
|
|
155
261
|
throw new Error(`Validation error: Field '${field}' must be at most ${rules.maxLength} characters`);
|
|
156
262
|
}
|
|
157
263
|
if (rules.pattern && !rules.pattern.test(value)) {
|
|
158
|
-
throw new Error(`Validation error: Field '${field}' does not match pattern`);
|
|
264
|
+
throw new Error(`Validation error: Field '${field}' does not match required pattern`);
|
|
159
265
|
}
|
|
160
|
-
if (rules.email && !this.
|
|
266
|
+
if (rules.email && !this.isValidEmail(value)) {
|
|
161
267
|
throw new Error(`Validation error: Field '${field}' must be a valid email`);
|
|
162
268
|
}
|
|
163
|
-
if (rules.url && !this.
|
|
269
|
+
if (rules.url && !this.isValidUrl(value)) {
|
|
164
270
|
throw new Error(`Validation error: Field '${field}' must be a valid URL`);
|
|
165
271
|
}
|
|
166
272
|
}
|
|
@@ -174,16 +280,26 @@ class Model {
|
|
|
174
280
|
}
|
|
175
281
|
}
|
|
176
282
|
// Custom validation
|
|
177
|
-
if (rules.validate
|
|
178
|
-
|
|
283
|
+
if (rules.validate) {
|
|
284
|
+
const isValid = await rules.validate(value);
|
|
285
|
+
if (!isValid) {
|
|
286
|
+
throw new Error(`Validation error: Field '${field}' failed custom validation`);
|
|
287
|
+
}
|
|
179
288
|
}
|
|
180
289
|
}
|
|
181
290
|
}
|
|
182
|
-
|
|
183
|
-
|
|
291
|
+
isValidEmail(email) {
|
|
292
|
+
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
293
|
+
return emailRegex.test(email);
|
|
184
294
|
}
|
|
185
|
-
|
|
186
|
-
|
|
295
|
+
isValidUrl(url) {
|
|
296
|
+
try {
|
|
297
|
+
new URL(url);
|
|
298
|
+
return true;
|
|
299
|
+
}
|
|
300
|
+
catch {
|
|
301
|
+
return false;
|
|
302
|
+
}
|
|
187
303
|
}
|
|
188
304
|
}
|
|
189
305
|
exports.Model = Model;
|
|
@@ -191,115 +307,108 @@ exports.Model = Model;
|
|
|
191
307
|
// QueryBuilder
|
|
192
308
|
// ============================================================================
|
|
193
309
|
class QueryBuilder {
|
|
194
|
-
constructor(
|
|
195
|
-
this.
|
|
196
|
-
this.
|
|
197
|
-
this.collectionName = collectionName;
|
|
310
|
+
constructor(model) {
|
|
311
|
+
this.filterConditions = [];
|
|
312
|
+
this.model = model;
|
|
198
313
|
}
|
|
199
314
|
/**
|
|
200
|
-
* Add
|
|
315
|
+
* Add filter condition
|
|
201
316
|
*/
|
|
202
|
-
|
|
203
|
-
this.
|
|
317
|
+
where(field, operator, value) {
|
|
318
|
+
this.filterConditions.push({ field, operator, value });
|
|
204
319
|
return this;
|
|
205
320
|
}
|
|
206
321
|
/**
|
|
207
|
-
*
|
|
322
|
+
* Shorthand for equals filter
|
|
208
323
|
*/
|
|
209
|
-
|
|
210
|
-
return this.
|
|
324
|
+
equals(field, value) {
|
|
325
|
+
return this.where(field, 'eq', value);
|
|
211
326
|
}
|
|
212
327
|
/**
|
|
213
328
|
* Sort results
|
|
214
329
|
*/
|
|
215
330
|
sort(field, order = 'asc') {
|
|
216
|
-
this.
|
|
217
|
-
this.sortOrder = order;
|
|
331
|
+
this.sortOptions = { field, order };
|
|
218
332
|
return this;
|
|
219
333
|
}
|
|
220
334
|
/**
|
|
221
|
-
* Limit results
|
|
335
|
+
* Limit number of results
|
|
222
336
|
*/
|
|
223
|
-
limit(
|
|
224
|
-
this.limitValue =
|
|
337
|
+
limit(value) {
|
|
338
|
+
this.limitValue = value;
|
|
225
339
|
return this;
|
|
226
340
|
}
|
|
227
341
|
/**
|
|
228
|
-
* Skip results
|
|
342
|
+
* Skip number of results
|
|
229
343
|
*/
|
|
230
|
-
skip(
|
|
231
|
-
this.skipValue =
|
|
344
|
+
skip(value) {
|
|
345
|
+
this.skipValue = value;
|
|
232
346
|
return this;
|
|
233
347
|
}
|
|
234
348
|
/**
|
|
235
|
-
* Execute query
|
|
349
|
+
* Execute the query
|
|
236
350
|
*/
|
|
237
351
|
async exec() {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
352
|
+
let results = await this.model.find();
|
|
353
|
+
// Apply filters
|
|
354
|
+
if (this.filterConditions.length > 0) {
|
|
355
|
+
results = results.filter(doc => {
|
|
356
|
+
return this.filterConditions.every(filter => {
|
|
357
|
+
const fieldValue = doc[filter.field];
|
|
358
|
+
switch (filter.operator) {
|
|
359
|
+
case 'eq':
|
|
360
|
+
return fieldValue === filter.value;
|
|
361
|
+
case 'ne':
|
|
362
|
+
return fieldValue !== filter.value;
|
|
363
|
+
case 'gt':
|
|
364
|
+
return fieldValue > filter.value;
|
|
365
|
+
case 'gte':
|
|
366
|
+
return fieldValue >= filter.value;
|
|
367
|
+
case 'lt':
|
|
368
|
+
return fieldValue < filter.value;
|
|
369
|
+
case 'lte':
|
|
370
|
+
return fieldValue <= filter.value;
|
|
371
|
+
case 'contains':
|
|
372
|
+
return String(fieldValue).includes(String(filter.value));
|
|
373
|
+
case 'in':
|
|
374
|
+
return Array.isArray(filter.value) && filter.value.includes(fieldValue);
|
|
375
|
+
case 'not_in':
|
|
376
|
+
return Array.isArray(filter.value) && !filter.value.includes(fieldValue);
|
|
377
|
+
default:
|
|
378
|
+
return false;
|
|
379
|
+
}
|
|
259
380
|
});
|
|
260
381
|
});
|
|
261
382
|
}
|
|
262
|
-
// Apply
|
|
263
|
-
if (this.
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
const
|
|
267
|
-
const
|
|
268
|
-
|
|
383
|
+
// Apply sorting
|
|
384
|
+
if (this.sortOptions) {
|
|
385
|
+
const { field, order } = this.sortOptions;
|
|
386
|
+
results.sort((a, b) => {
|
|
387
|
+
const aVal = a[field];
|
|
388
|
+
const bVal = b[field];
|
|
389
|
+
if (aVal < bVal)
|
|
390
|
+
return order === 'asc' ? -1 : 1;
|
|
391
|
+
if (aVal > bVal)
|
|
392
|
+
return order === 'asc' ? 1 : -1;
|
|
393
|
+
return 0;
|
|
269
394
|
});
|
|
270
395
|
}
|
|
271
|
-
|
|
396
|
+
// Apply skip
|
|
397
|
+
if (this.skipValue) {
|
|
398
|
+
results = results.slice(this.skipValue);
|
|
399
|
+
}
|
|
400
|
+
// Apply limit
|
|
401
|
+
if (this.limitValue) {
|
|
402
|
+
results = results.slice(0, this.limitValue);
|
|
403
|
+
}
|
|
404
|
+
return results;
|
|
272
405
|
}
|
|
273
406
|
/**
|
|
274
|
-
*
|
|
407
|
+
* Get count of matching documents
|
|
275
408
|
*/
|
|
276
409
|
async count() {
|
|
277
|
-
const
|
|
278
|
-
return
|
|
279
|
-
}
|
|
280
|
-
matchesFilter(value, operator, filterValue) {
|
|
281
|
-
switch (operator) {
|
|
282
|
-
case 'eq':
|
|
283
|
-
return value === filterValue;
|
|
284
|
-
case 'ne':
|
|
285
|
-
return value !== filterValue;
|
|
286
|
-
case 'gt':
|
|
287
|
-
return value > filterValue;
|
|
288
|
-
case 'gte':
|
|
289
|
-
return value >= filterValue;
|
|
290
|
-
case 'lt':
|
|
291
|
-
return value < filterValue;
|
|
292
|
-
case 'lte':
|
|
293
|
-
return value <= filterValue;
|
|
294
|
-
case 'contains':
|
|
295
|
-
return String(value).includes(String(filterValue));
|
|
296
|
-
case 'in':
|
|
297
|
-
return Array.isArray(filterValue) && filterValue.includes(value);
|
|
298
|
-
case 'not_in':
|
|
299
|
-
return Array.isArray(filterValue) && !filterValue.includes(value);
|
|
300
|
-
default:
|
|
301
|
-
return false;
|
|
302
|
-
}
|
|
410
|
+
const results = await this.exec();
|
|
411
|
+
return results.length;
|
|
303
412
|
}
|
|
304
413
|
}
|
|
305
414
|
exports.QueryBuilder = QueryBuilder;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toonstore/torm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "ToonStore ORM client for Node.js",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
|
-
"build": "tsc",
|
|
9
|
-
"dev": "tsc --watch",
|
|
8
|
+
"build": "npx tsc",
|
|
9
|
+
"dev": "npx tsc --watch",
|
|
10
10
|
"example": "node examples/basic-usage.js",
|
|
11
|
-
"test": "echo \"No tests yet\" && exit 0"
|
|
11
|
+
"test": "echo \"No tests yet\" && exit 0",
|
|
12
|
+
"prepublishOnly": "npm run build"
|
|
13
|
+
},
|
|
14
|
+
"publishConfig": {
|
|
15
|
+
"access": "public"
|
|
12
16
|
},
|
|
13
17
|
"keywords": [
|
|
14
18
|
"toonstore",
|
|
@@ -20,10 +24,10 @@
|
|
|
20
24
|
"author": "ToonStore Team",
|
|
21
25
|
"license": "MIT",
|
|
22
26
|
"dependencies": {
|
|
23
|
-
"
|
|
27
|
+
"ioredis": "^5.3.0"
|
|
24
28
|
},
|
|
25
29
|
"devDependencies": {
|
|
26
|
-
"@types/node": "^20.
|
|
27
|
-
"typescript": "^5.3
|
|
30
|
+
"@types/node": "^20.19.27",
|
|
31
|
+
"typescript": "^5.9.3"
|
|
28
32
|
}
|
|
29
33
|
}
|