@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 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
- - ✅ **HTTP-Based** - Communicates with TORM Server
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 TORM server is running:
28
+ Make sure Redis is running:
29
29
  ```bash
30
- cargo run --package torm-server --release
31
- # Server runs on http://localhost:3001
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
- baseURL: 'http://localhost:3001',
42
- timeout: 5000,
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
- - `baseURL` (string) - TORM server URL (default: `http://localhost:3001`)
114
- - `timeout` (number) - Request timeout in ms (default: `5000`)
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 server health
120
- - `info()` - Get server info
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 { AxiosInstance } from 'axios';
7
- export interface TormClientOptions {
8
- baseURL?: string;
9
- timeout?: number;
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 client;
46
- private baseURL;
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 HTTP client instance
54
+ * Get Redis client instance
54
55
  */
55
- getClient(): AxiosInstance;
56
+ getRedis(): Redis;
56
57
  /**
57
- * Check server health
58
+ * Check connection health
58
59
  */
59
60
  health(): Promise<{
60
61
  status: string;
61
- database?: string;
62
+ connected: boolean;
62
63
  }>;
63
64
  /**
64
- * Get server info
65
+ * Close Redis connection
66
+ */
67
+ disconnect(): Promise<void>;
68
+ /**
69
+ * Check if connected
65
70
  */
66
- info(): Promise<any>;
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 | null>;
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 isEmail;
107
- private isURL;
137
+ private isValidEmail;
138
+ private isValidUrl;
108
139
  }
109
- export declare class QueryBuilder<T> {
110
- private client;
111
- private collectionName;
112
- private filters;
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(client: TormClient, collectionName: string);
146
+ constructor(model: Model<T>);
118
147
  /**
119
- * Add a filter
148
+ * Add filter condition
120
149
  */
121
- filter(field: string, operator: QueryFilter['operator'], value: any): QueryBuilder<T>;
150
+ where(field: string, operator: QueryFilter['operator'], value: any): this;
122
151
  /**
123
- * Filter where field equals value
152
+ * Shorthand for equals filter
124
153
  */
125
- where(field: string, value: any): QueryBuilder<T>;
154
+ equals(field: string, value: any): this;
126
155
  /**
127
156
  * Sort results
128
157
  */
129
- sort(field: string, order?: 'asc' | 'desc'): QueryBuilder<T>;
158
+ sort(field: string, order?: 'asc' | 'desc'): this;
130
159
  /**
131
- * Limit results
160
+ * Limit number of results
132
161
  */
133
- limit(n: number): QueryBuilder<T>;
162
+ limit(value: number): this;
134
163
  /**
135
- * Skip results
164
+ * Skip number of results
136
165
  */
137
- skip(n: number): QueryBuilder<T>;
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
- * Count matching documents
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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 axios_1 = __importDefault(require("axios"));
12
+ const ioredis_1 = __importDefault(require("ioredis"));
13
13
  // ============================================================================
14
14
  // TormClient
15
15
  // ============================================================================
16
16
  class TormClient {
17
17
  constructor(options = {}) {
18
- this.baseURL = options.baseURL || 'http://localhost:3001';
19
- this.client = axios_1.default.create({
20
- baseURL: this.baseURL,
21
- timeout: options.timeout || 5000,
22
- headers: {
23
- 'Content-Type': 'application/json',
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 HTTP client instance
45
+ * Get Redis client instance
35
46
  */
36
- getClient() {
37
- return this.client;
47
+ getRedis() {
48
+ return this.redis;
38
49
  }
39
50
  /**
40
- * Check server health
51
+ * Check connection health
41
52
  */
42
53
  async health() {
43
- const response = await this.client.get('/health');
44
- return response.data;
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
- * Get server info
70
+ * Check if connected
48
71
  */
49
- async info() {
50
- const response = await this.client.get('/');
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 response = await this.client.getClient().post(`/api/${this.collectionName}`, { data });
73
- return response.data.data;
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 response = await this.client.getClient().get(`/api/${this.collectionName}`);
80
- return response.data.documents;
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
- try {
87
- const response = await this.client.getClient().get(`/api/${this.collectionName}/${id}`);
88
- return response.data;
136
+ const key = this.getKeyPattern(id);
137
+ const value = await this.client.getRedis().get(key);
138
+ if (!value) {
139
+ return null;
89
140
  }
90
- catch (error) {
91
- if (error.response?.status === 404) {
92
- return null;
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 response = await this.client.getClient().put(`/api/${this.collectionName}/${id}`, { data });
105
- return response.data.data;
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 response = await this.client.getClient().delete(`/api/${this.collectionName}/${id}`);
112
- return response.data.success === true;
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 response = await this.client.getClient().get(`/api/${this.collectionName}/count`);
119
- return response.data.count;
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.client, this.collectionName);
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.isEmail(value)) {
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.isURL(value)) {
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 && !rules.validate(value)) {
178
- throw new Error(`Validation error: Field '${field}' failed custom validation`);
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
- isEmail(value) {
183
- return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
291
+ isValidEmail(email) {
292
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
293
+ return emailRegex.test(email);
184
294
  }
185
- isURL(value) {
186
- return /^https?:\/\/.+/.test(value);
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(client, collectionName) {
195
- this.filters = [];
196
- this.client = client;
197
- this.collectionName = collectionName;
310
+ constructor(model) {
311
+ this.filterConditions = [];
312
+ this.model = model;
198
313
  }
199
314
  /**
200
- * Add a filter
315
+ * Add filter condition
201
316
  */
202
- filter(field, operator, value) {
203
- this.filters.push({ field, operator, value });
317
+ where(field, operator, value) {
318
+ this.filterConditions.push({ field, operator, value });
204
319
  return this;
205
320
  }
206
321
  /**
207
- * Filter where field equals value
322
+ * Shorthand for equals filter
208
323
  */
209
- where(field, value) {
210
- return this.filter(field, 'eq', value);
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.sortField = field;
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(n) {
224
- this.limitValue = n;
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(n) {
231
- this.skipValue = n;
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
- const queryOptions = {};
239
- if (this.filters.length > 0) {
240
- queryOptions.filters = this.filters;
241
- }
242
- if (this.sortField) {
243
- queryOptions.sort = { field: this.sortField, order: this.sortOrder };
244
- }
245
- if (this.limitValue !== undefined) {
246
- queryOptions.limit = this.limitValue;
247
- }
248
- if (this.skipValue !== undefined) {
249
- queryOptions.skip = this.skipValue;
250
- }
251
- const response = await this.client.getClient().post(`/api/${this.collectionName}/query`, queryOptions);
252
- let documents = response.data.documents;
253
- // Apply client-side filtering (since server returns all for now)
254
- if (this.filters.length > 0) {
255
- documents = documents.filter((doc) => {
256
- return this.filters.every((filter) => {
257
- const value = doc[filter.field];
258
- return this.matchesFilter(value, filter.operator, filter.value);
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 client-side sorting
263
- if (this.sortField) {
264
- documents.sort((a, b) => {
265
- const aVal = a[this.sortField];
266
- const bVal = b[this.sortField];
267
- const comparison = aVal > bVal ? 1 : aVal < bVal ? -1 : 0;
268
- return this.sortOrder === 'desc' ? -comparison : comparison;
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
- return documents;
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
- * Count matching documents
407
+ * Get count of matching documents
275
408
  */
276
409
  async count() {
277
- const documents = await this.exec();
278
- return documents.length;
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.1.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
- "axios": "^1.6.0"
27
+ "ioredis": "^5.3.0"
24
28
  },
25
29
  "devDependencies": {
26
- "@types/node": "^20.10.0",
27
- "typescript": "^5.3.0"
30
+ "@types/node": "^20.19.27",
31
+ "typescript": "^5.9.3"
28
32
  }
29
33
  }