@m4rctr3y/reutjs 0.1.0 → 1.0.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 +189 -12
- package/dist/query-builder.d.ts +31 -3
- package/dist/query-builder.d.ts.map +1 -1
- package/dist/query-builder.js +34 -0
- package/dist/query-builder.js.map +1 -1
- package/dist/table.d.ts +38 -2
- package/dist/table.d.ts.map +1 -1
- package/dist/table.js +70 -0
- package/dist/table.js.map +1 -1
- package/dist/types.d.ts +17 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +27 -1
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,7 +6,8 @@ TypeScript/JavaScript client library for Reut backend API. Provides a type-safe,
|
|
|
6
6
|
|
|
7
7
|
- 🎯 **Type Safety**: Full TypeScript support with generics
|
|
8
8
|
- 🔗 **Fluent API**: Chainable query builder methods
|
|
9
|
-
- 🔄 **Relationship Loading**: Easy eager loading with `.with()`
|
|
9
|
+
- 🔄 **Relationship Loading**: Easy eager loading with `.with()` and relationship aliasing
|
|
10
|
+
- 📊 **Efficient Counts**: Get counts without loading data using `.withCount()` and `.count()`
|
|
10
11
|
- 🔍 **Advanced Filtering**: Support for relationship filters and operators
|
|
11
12
|
- 📄 **Pagination**: Built-in pagination support
|
|
12
13
|
- 🌐 **Framework Agnostic**: Works in Node.js, React, Vue, Angular, etc.
|
|
@@ -15,25 +16,25 @@ TypeScript/JavaScript client library for Reut backend API. Provides a type-safe,
|
|
|
15
16
|
## Installation
|
|
16
17
|
|
|
17
18
|
```bash
|
|
18
|
-
npm install @
|
|
19
|
+
npm install @m4rctr3y/reutjs axios
|
|
19
20
|
```
|
|
20
21
|
|
|
21
22
|
or
|
|
22
23
|
|
|
23
24
|
```bash
|
|
24
|
-
yarn add @
|
|
25
|
+
yarn add @m4rctr3y/reutjs axios
|
|
25
26
|
```
|
|
26
27
|
|
|
27
28
|
or
|
|
28
29
|
|
|
29
30
|
```bash
|
|
30
|
-
pnpm add @
|
|
31
|
+
pnpm add @m4rctr3y/reutjs axios
|
|
31
32
|
```
|
|
32
33
|
|
|
33
34
|
## Quick Start
|
|
34
35
|
|
|
35
36
|
```typescript
|
|
36
|
-
import { ReutClient } from '@
|
|
37
|
+
import { ReutClient } from '@m4rctr3y/reutjs';
|
|
37
38
|
|
|
38
39
|
// Initialize client
|
|
39
40
|
const client = new ReutClient({
|
|
@@ -50,16 +51,23 @@ interface Post {
|
|
|
50
51
|
updated_at: string;
|
|
51
52
|
}
|
|
52
53
|
|
|
53
|
-
// Query data
|
|
54
|
+
// Query data with relationship aliasing
|
|
54
55
|
const posts = await client.from<Post>('posts')
|
|
55
|
-
.select(['title', '
|
|
56
|
+
.select(['id', 'title', 'content'])
|
|
56
57
|
.where('user_id', 1)
|
|
57
|
-
.with(['user_id'])
|
|
58
|
+
.with([['user', 'user_id']]) // Load user relationship with alias
|
|
59
|
+
.withCount([['comments', 'post_id']]) // Get comment count (efficient!)
|
|
58
60
|
.page(1)
|
|
59
61
|
.limit(10)
|
|
60
62
|
.all();
|
|
61
63
|
|
|
62
64
|
console.log(posts.results);
|
|
65
|
+
// Each post will have: { id, title, content, user: {...}, comments_count: 5 }
|
|
66
|
+
// Note: user_id is removed from results when using alias
|
|
67
|
+
|
|
68
|
+
// Get total count (efficient COUNT query)
|
|
69
|
+
const totalPosts = await client.from<Post>('posts').count();
|
|
70
|
+
console.log(`Total posts: ${totalPosts}`);
|
|
63
71
|
```
|
|
64
72
|
|
|
65
73
|
## API Reference
|
|
@@ -225,14 +233,28 @@ Filter where column is not null.
|
|
|
225
233
|
.whereIsNotNull('email')
|
|
226
234
|
```
|
|
227
235
|
|
|
228
|
-
##### `with(relationships:
|
|
236
|
+
##### `with(relationships: WithRelationships): Table<T>`
|
|
229
237
|
|
|
230
|
-
Eager load relationships.
|
|
238
|
+
Eager load relationships. Supports both old format (backward compatible) and new format with aliases.
|
|
231
239
|
|
|
240
|
+
**Old Format (Backward Compatible):**
|
|
232
241
|
```typescript
|
|
233
242
|
.with(['user_id', 'comments'])
|
|
243
|
+
// Results: { user_id: {...}, comments: [...] }
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
**New Format with Aliases (Recommended):**
|
|
247
|
+
```typescript
|
|
248
|
+
.with([['user', 'user_id'], ['category', 'category_id']])
|
|
249
|
+
// Results: { user: {...}, category: {...} }
|
|
250
|
+
// Note: user_id and category_id are removed from results
|
|
234
251
|
```
|
|
235
252
|
|
|
253
|
+
**Benefits of Aliases:**
|
|
254
|
+
- Cleaner code: `post.user.name` instead of `post.user_id.name`
|
|
255
|
+
- Foreign key columns are automatically removed from results
|
|
256
|
+
- More readable and maintainable code
|
|
257
|
+
|
|
236
258
|
##### `join(joinConfig: JoinConfig): Table<T>`
|
|
237
259
|
|
|
238
260
|
Add a manual join.
|
|
@@ -279,6 +301,47 @@ Order results by column.
|
|
|
279
301
|
.orderBy('created_at', 'desc')
|
|
280
302
|
```
|
|
281
303
|
|
|
304
|
+
##### `withCount(relationships: RelationshipAlias[]): Table<T>`
|
|
305
|
+
|
|
306
|
+
Get count of related records (efficient COUNT query, doesn't load data).
|
|
307
|
+
|
|
308
|
+
```typescript
|
|
309
|
+
.withCount([['comments', 'post_id']])
|
|
310
|
+
// Returns: { comments_count: 5 } (no comments array loaded)
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
**Example:**
|
|
314
|
+
```typescript
|
|
315
|
+
const posts = await client.from<Post>('posts')
|
|
316
|
+
.select(['id', 'title'])
|
|
317
|
+
.withCount([['comments', 'post_id']])
|
|
318
|
+
.all();
|
|
319
|
+
|
|
320
|
+
// Each post will have: { id, title, comments_count: 5 }
|
|
321
|
+
// Comments data is NOT loaded, only the count
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
##### `count(): Promise<number>`
|
|
325
|
+
|
|
326
|
+
Get total count of records matching the query (efficient COUNT query, no data).
|
|
327
|
+
|
|
328
|
+
```typescript
|
|
329
|
+
// Get total count
|
|
330
|
+
const total = await client.from<Post>('posts').count();
|
|
331
|
+
// Returns: 10 (just the number)
|
|
332
|
+
|
|
333
|
+
// Get count with filters
|
|
334
|
+
const count = await client.from<Post>('posts')
|
|
335
|
+
.where('user_id', 1)
|
|
336
|
+
.count();
|
|
337
|
+
// Returns: 5 (just the number)
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
**Benefits:**
|
|
341
|
+
- Efficient: Only executes `SELECT COUNT(*)`, doesn't load data
|
|
342
|
+
- Fast: Perfect for pagination, statistics, and dashboards
|
|
343
|
+
- Works with all query builder methods (where, joins, etc.)
|
|
344
|
+
|
|
282
345
|
#### CRUD Methods
|
|
283
346
|
|
|
284
347
|
##### `all(options?: QueryOptions): Promise<PaginatedResponse<T>>`
|
|
@@ -362,10 +425,22 @@ const posts = await client.from<Post>('posts')
|
|
|
362
425
|
|
|
363
426
|
### Eager Load Relationships
|
|
364
427
|
|
|
428
|
+
**Old Format (Backward Compatible):**
|
|
365
429
|
```typescript
|
|
366
430
|
const posts = await client.from<Post>('posts')
|
|
367
431
|
.with(['user_id'])
|
|
368
432
|
.all();
|
|
433
|
+
// Results: { user_id: {...} }
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
**New Format with Aliases (Recommended):**
|
|
437
|
+
```typescript
|
|
438
|
+
const posts = await client.from<Post>('posts')
|
|
439
|
+
.select(['id', 'title', 'content'])
|
|
440
|
+
.with([['user', 'user_id']])
|
|
441
|
+
.all();
|
|
442
|
+
// Results: { id, title, content, user: {...} }
|
|
443
|
+
// Note: user_id is removed from results
|
|
369
444
|
```
|
|
370
445
|
|
|
371
446
|
### Filter by Column
|
|
@@ -388,16 +463,44 @@ const posts = await client.from<Post>('posts')
|
|
|
388
463
|
|
|
389
464
|
```typescript
|
|
390
465
|
const posts = await client.from<Post>('posts')
|
|
391
|
-
.select(['id', 'title', '
|
|
466
|
+
.select(['id', 'title', 'content'])
|
|
392
467
|
.where('user_id', 1)
|
|
393
468
|
.whereGt('created_at', '2024-01-01')
|
|
394
|
-
.with(['user_id'])
|
|
469
|
+
.with([['user', 'user_id']]) // Load user with alias
|
|
470
|
+
.withCount([['comments', 'post_id']]) // Get comment count
|
|
395
471
|
.page(1)
|
|
396
472
|
.limit(10)
|
|
397
473
|
.orderBy('created_at', 'desc')
|
|
398
474
|
.all();
|
|
399
475
|
```
|
|
400
476
|
|
|
477
|
+
### Get Relationship Counts (Efficient)
|
|
478
|
+
|
|
479
|
+
```typescript
|
|
480
|
+
// Get posts with comment counts (doesn't load comment data)
|
|
481
|
+
const posts = await client.from<Post>('posts')
|
|
482
|
+
.select(['id', 'title'])
|
|
483
|
+
.withCount([['comments', 'post_id']])
|
|
484
|
+
.all();
|
|
485
|
+
|
|
486
|
+
// Each post: { id, title, comments_count: 5 }
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
### Get Total Count
|
|
490
|
+
|
|
491
|
+
```typescript
|
|
492
|
+
// Get total number of posts
|
|
493
|
+
const total = await client.from<Post>('posts').count();
|
|
494
|
+
console.log(`Total posts: ${total}`);
|
|
495
|
+
|
|
496
|
+
// Get count with filters
|
|
497
|
+
const filteredCount = await client.from<Post>('posts')
|
|
498
|
+
.where('user_id', 1)
|
|
499
|
+
.where('status', 'published')
|
|
500
|
+
.count();
|
|
501
|
+
console.log(`Published posts by user 1: ${filteredCount}`);
|
|
502
|
+
```
|
|
503
|
+
|
|
401
504
|
### Create Record
|
|
402
505
|
|
|
403
506
|
```typescript
|
|
@@ -461,6 +564,55 @@ type WhereOperator =
|
|
|
461
564
|
| 'isn'; // is not null
|
|
462
565
|
```
|
|
463
566
|
|
|
567
|
+
### RelationshipAlias
|
|
568
|
+
|
|
569
|
+
```typescript
|
|
570
|
+
type RelationshipAlias = [string, string]; // [alias, fkColumn]
|
|
571
|
+
|
|
572
|
+
// Example:
|
|
573
|
+
[['user', 'user_id'], ['category', 'category_id']]
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
### WithRelationships
|
|
577
|
+
|
|
578
|
+
```typescript
|
|
579
|
+
type WithRelationships = string[] | RelationshipAlias[];
|
|
580
|
+
|
|
581
|
+
// Old format (backward compatible):
|
|
582
|
+
string[] // e.g., ['user_id', 'comments']
|
|
583
|
+
|
|
584
|
+
// New format (recommended):
|
|
585
|
+
RelationshipAlias[] // e.g., [['user', 'user_id'], ['comments', 'post_id']]
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
## Recent Updates
|
|
589
|
+
|
|
590
|
+
### v0.1.0 - Latest Features
|
|
591
|
+
|
|
592
|
+
#### ✨ Relationship Aliasing
|
|
593
|
+
- Use cleaner aliases for relationships: `with([['user', 'user_id']])`
|
|
594
|
+
- Foreign key columns are automatically removed from results
|
|
595
|
+
- More readable code: `post.user.name` instead of `post.user_id.name`
|
|
596
|
+
- Backward compatible with old `with(['user_id'])` format
|
|
597
|
+
|
|
598
|
+
#### 📊 Efficient Count Queries
|
|
599
|
+
- **`withCount()`**: Get relationship counts without loading data
|
|
600
|
+
```typescript
|
|
601
|
+
.withCount([['comments', 'post_id']])
|
|
602
|
+
// Returns: { comments_count: 5 } (no comments array)
|
|
603
|
+
```
|
|
604
|
+
- **`.count()`**: Get total count of records matching query
|
|
605
|
+
```typescript
|
|
606
|
+
const total = await client.from('posts').count();
|
|
607
|
+
// Returns: 10 (just the number, no data loaded)
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
#### 🎯 Benefits
|
|
611
|
+
- **Performance**: COUNT queries are much faster than loading all data
|
|
612
|
+
- **Memory**: Reduces memory usage by not loading unnecessary data
|
|
613
|
+
- **Readability**: Cleaner code with relationship aliases
|
|
614
|
+
- **Backward Compatible**: Old code continues to work
|
|
615
|
+
|
|
464
616
|
## Error Handling
|
|
465
617
|
|
|
466
618
|
The library throws errors for failed requests. Always wrap API calls in try-catch blocks:
|
|
@@ -473,6 +625,31 @@ try {
|
|
|
473
625
|
}
|
|
474
626
|
```
|
|
475
627
|
|
|
628
|
+
## Migration Guide
|
|
629
|
+
|
|
630
|
+
### Upgrading to Relationship Aliases
|
|
631
|
+
|
|
632
|
+
**Before:**
|
|
633
|
+
```typescript
|
|
634
|
+
const posts = await client.from<Post>('posts')
|
|
635
|
+
.select(['id', 'title', 'user_id'])
|
|
636
|
+
.with(['user_id'])
|
|
637
|
+
.all();
|
|
638
|
+
// Results: { id, title, user_id: {...} }
|
|
639
|
+
```
|
|
640
|
+
|
|
641
|
+
**After (Recommended):**
|
|
642
|
+
```typescript
|
|
643
|
+
const posts = await client.from<Post>('posts')
|
|
644
|
+
.select(['id', 'title']) // user_id removed from select
|
|
645
|
+
.with([['user', 'user_id']])
|
|
646
|
+
.all();
|
|
647
|
+
// Results: { id, title, user: {...} }
|
|
648
|
+
// Note: user_id is automatically removed
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
**Old code still works!** The old format is fully backward compatible.
|
|
652
|
+
|
|
476
653
|
## License
|
|
477
654
|
|
|
478
655
|
MIT
|
package/dist/query-builder.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { QueryOptions, JoinConfig, WhereOperator, WhereValue } from './types.js';
|
|
1
|
+
import type { QueryOptions, JoinConfig, WhereOperator, WhereValue, WithRelationships } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Query builder for constructing complex queries
|
|
4
4
|
*/
|
|
@@ -57,8 +57,36 @@ export declare class QueryBuilder {
|
|
|
57
57
|
whereIsNotNull(column: string): this;
|
|
58
58
|
/**
|
|
59
59
|
* Eager load relationships
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
* Supports both old format (string[]) and new format (RelationshipAlias[])
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* // Old format (backward compatible)
|
|
64
|
+
* .with(['user_id'])
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* // New format with aliases
|
|
68
|
+
* .with([['user', 'user_id']])
|
|
69
|
+
* .with([['user', 'user_id'], ['category', 'category_id']])
|
|
70
|
+
*/
|
|
71
|
+
with(relationships: WithRelationships): this;
|
|
72
|
+
/**
|
|
73
|
+
* Get count of related records (efficient COUNT query, doesn't load data)
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* // Get comment count for posts
|
|
77
|
+
* .withCount([['comments', 'post_id']])
|
|
78
|
+
* // Returns: { comments_count: 5 } (no comments array)
|
|
79
|
+
*/
|
|
80
|
+
withCount(relationships: import('./types.js').RelationshipAlias[]): this;
|
|
81
|
+
/**
|
|
82
|
+
* Set count-only mode (returns only the count, no data)
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* // Get total number of posts matching criteria
|
|
86
|
+
* .where('user_id', 1).count()
|
|
87
|
+
* // Returns: 5 (just the number)
|
|
88
|
+
*/
|
|
89
|
+
count(): this;
|
|
62
90
|
/**
|
|
63
91
|
* Add a manual join
|
|
64
92
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../src/query-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../src/query-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEzG;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAoB;IAEnC;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAK/B;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,GAAG,UAAU,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI;IAqB5F;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI;IAI1D;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI;IAI7D;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI9C;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI5C;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7C;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI5C;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7C;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAIhD;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpC;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,aAAa,EAAE,iBAAiB,GAAG,IAAI;IAK5C;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,EAAE,OAAO,YAAY,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAKxE;;;;;;;OAOG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAQlC;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxB;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,KAAK,GAAG,MAAc,GAAG,IAAI;IAMhE;;OAEG;IACH,UAAU,IAAI,YAAY;IAI1B;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}
|
package/dist/query-builder.js
CHANGED
|
@@ -99,11 +99,45 @@ export class QueryBuilder {
|
|
|
99
99
|
}
|
|
100
100
|
/**
|
|
101
101
|
* Eager load relationships
|
|
102
|
+
* Supports both old format (string[]) and new format (RelationshipAlias[])
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* // Old format (backward compatible)
|
|
106
|
+
* .with(['user_id'])
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* // New format with aliases
|
|
110
|
+
* .with([['user', 'user_id']])
|
|
111
|
+
* .with([['user', 'user_id'], ['category', 'category_id']])
|
|
102
112
|
*/
|
|
103
113
|
with(relationships) {
|
|
104
114
|
this.options.with = relationships;
|
|
105
115
|
return this;
|
|
106
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Get count of related records (efficient COUNT query, doesn't load data)
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* // Get comment count for posts
|
|
122
|
+
* .withCount([['comments', 'post_id']])
|
|
123
|
+
* // Returns: { comments_count: 5 } (no comments array)
|
|
124
|
+
*/
|
|
125
|
+
withCount(relationships) {
|
|
126
|
+
this.options.withCount = relationships;
|
|
127
|
+
return this;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Set count-only mode (returns only the count, no data)
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* // Get total number of posts matching criteria
|
|
134
|
+
* .where('user_id', 1).count()
|
|
135
|
+
* // Returns: 5 (just the number)
|
|
136
|
+
*/
|
|
137
|
+
count() {
|
|
138
|
+
this.options.count = true;
|
|
139
|
+
return this;
|
|
140
|
+
}
|
|
107
141
|
/**
|
|
108
142
|
* Add a manual join
|
|
109
143
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../src/query-builder.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,YAAY;IAAzB;QACU,YAAO,GAAiB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../src/query-builder.ts"],"names":[],"mappings":"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"}
|
package/dist/table.d.ts
CHANGED
|
@@ -24,7 +24,43 @@ export declare class Table<T = any> {
|
|
|
24
24
|
whereNe(column: string, value: WhereValue): this;
|
|
25
25
|
whereIsNull(column: string): this;
|
|
26
26
|
whereIsNotNull(column: string): this;
|
|
27
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Eager load relationships
|
|
29
|
+
* Supports both old format (string[]) and new format (RelationshipAlias[])
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* // Old format (backward compatible)
|
|
33
|
+
* .with(['user_id'])
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* // New format with aliases
|
|
37
|
+
* .with([['user', 'user_id']])
|
|
38
|
+
* .with([['user', 'user_id'], ['category', 'category_id']])
|
|
39
|
+
*/
|
|
40
|
+
with(relationships: import('./types.js').WithRelationships): this;
|
|
41
|
+
/**
|
|
42
|
+
* Get count of related records (efficient COUNT query, doesn't load data)
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* // Get comment count for posts
|
|
46
|
+
* .withCount([['comments', 'post_id']])
|
|
47
|
+
* // Returns: { comments_count: 5 } (no comments array)
|
|
48
|
+
*/
|
|
49
|
+
withCount(relationships: import('./types.js').RelationshipAlias[]): this;
|
|
50
|
+
/**
|
|
51
|
+
* Get total count of records matching the query (efficient COUNT query, no data)
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* // Get total number of posts
|
|
55
|
+
* const total = await client.from('posts').count();
|
|
56
|
+
* // Returns: 10 (just the number)
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* // Get count with filters
|
|
60
|
+
* const count = await client.from('posts').where('user_id', 1).count();
|
|
61
|
+
* // Returns: 5 (just the number)
|
|
62
|
+
*/
|
|
63
|
+
count(): Promise<number>;
|
|
28
64
|
join(joinConfig: Parameters<QueryBuilder['join']>[0]): this;
|
|
29
65
|
page(page: number): this;
|
|
30
66
|
limit(limit: number): this;
|
|
@@ -38,7 +74,7 @@ export declare class Table<T = any> {
|
|
|
38
74
|
* Find a single record by ID
|
|
39
75
|
*/
|
|
40
76
|
find(id: string | number, options?: {
|
|
41
|
-
with?:
|
|
77
|
+
with?: import('./types.js').WithRelationships;
|
|
42
78
|
}): Promise<SingleResponse<T>>;
|
|
43
79
|
/**
|
|
44
80
|
* Create a new record
|
package/dist/table.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7G;;GAEG;AACH,qBAAa,KAAK,CAAC,CAAC,GAAG,GAAG;IACxB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAe;gBAEvB,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM;IAM3D;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAK/B,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,GAAG,UAAU,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI;IAK5F,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI;IAK1D,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI;IAK7D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK5C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK5C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAKhD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKjC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKpC,IAAI,CAAC,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7G;;GAEG;AACH,qBAAa,KAAK,CAAC,CAAC,GAAG,GAAG;IACxB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAe;gBAEvB,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM;IAM3D;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAK/B,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,GAAG,UAAU,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI;IAK5F,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI;IAK1D,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI;IAK7D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK5C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK5C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAKhD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKjC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKpC;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,aAAa,EAAE,OAAO,YAAY,EAAE,iBAAiB,GAAG,IAAI;IAKjE;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,EAAE,OAAO,YAAY,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAKxE;;;;;;;;;;;;OAYG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAsC9B,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAK3D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,KAAK,GAAG,MAAc,GAAG,IAAI;IAKhE;;OAEG;IACG,GAAG,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAwBhE;;OAEG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,YAAY,EAAE,iBAAiB,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAyBxH;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAqDvD;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAoC/E;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAUjD"}
|
package/dist/table.js
CHANGED
|
@@ -61,10 +61,80 @@ export class Table {
|
|
|
61
61
|
this.queryBuilder.whereIsNotNull(column);
|
|
62
62
|
return this;
|
|
63
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Eager load relationships
|
|
66
|
+
* Supports both old format (string[]) and new format (RelationshipAlias[])
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* // Old format (backward compatible)
|
|
70
|
+
* .with(['user_id'])
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* // New format with aliases
|
|
74
|
+
* .with([['user', 'user_id']])
|
|
75
|
+
* .with([['user', 'user_id'], ['category', 'category_id']])
|
|
76
|
+
*/
|
|
64
77
|
with(relationships) {
|
|
65
78
|
this.queryBuilder.with(relationships);
|
|
66
79
|
return this;
|
|
67
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Get count of related records (efficient COUNT query, doesn't load data)
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* // Get comment count for posts
|
|
86
|
+
* .withCount([['comments', 'post_id']])
|
|
87
|
+
* // Returns: { comments_count: 5 } (no comments array)
|
|
88
|
+
*/
|
|
89
|
+
withCount(relationships) {
|
|
90
|
+
this.queryBuilder.withCount(relationships);
|
|
91
|
+
return this;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get total count of records matching the query (efficient COUNT query, no data)
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* // Get total number of posts
|
|
98
|
+
* const total = await client.from('posts').count();
|
|
99
|
+
* // Returns: 10 (just the number)
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* // Get count with filters
|
|
103
|
+
* const count = await client.from('posts').where('user_id', 1).count();
|
|
104
|
+
* // Returns: 5 (just the number)
|
|
105
|
+
*/
|
|
106
|
+
async count() {
|
|
107
|
+
const queryOptions = this.queryBuilder.getOptions();
|
|
108
|
+
queryOptions.count = true;
|
|
109
|
+
const queryString = buildQueryString(queryOptions);
|
|
110
|
+
try {
|
|
111
|
+
const response = await this.axiosInstance.get(`/${this.tableName}/all${queryString}`);
|
|
112
|
+
if (isErrorResponse(response.data)) {
|
|
113
|
+
throw new Error(extractErrorMessage(response.data));
|
|
114
|
+
}
|
|
115
|
+
const data = parseResponse(response.data);
|
|
116
|
+
// Backend may return count wrapped in pagination format: { results: { count: number }, ... }
|
|
117
|
+
// or directly: { count: number }
|
|
118
|
+
if (data && typeof data === 'object') {
|
|
119
|
+
if ('results' in data && typeof data.results === 'object' && 'count' in data.results) {
|
|
120
|
+
return data.results.count;
|
|
121
|
+
}
|
|
122
|
+
if ('count' in data) {
|
|
123
|
+
return data.count;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return 0;
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
if (axios.isAxiosError(error)) {
|
|
130
|
+
throw new Error(error.response?.data?.error || error.message);
|
|
131
|
+
}
|
|
132
|
+
throw error;
|
|
133
|
+
}
|
|
134
|
+
finally {
|
|
135
|
+
this.queryBuilder.reset();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
68
138
|
join(joinConfig) {
|
|
69
139
|
this.queryBuilder.join(joinConfig);
|
|
70
140
|
return this;
|
package/dist/table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGnG;;GAEG;AACH,MAAM,OAAO,KAAK;IAKhB,YAAY,aAA4B,EAAE,SAAiB;QACzD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAiB;QACtB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAc,EAAE,eAA2C,EAAE,KAAkB;QACnF,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,MAAc,EAAE,MAA2B;QACjD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,MAAc,EAAE,MAA2B;QACpD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,MAAc,EAAE,KAAa;QACrC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,MAAc,EAAE,KAAa;QACnC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,KAAa;QACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,MAAc,EAAE,KAAa;QACnC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,KAAa;QACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,MAAc,EAAE,KAAiB;QACvC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,MAAc;QACxB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,MAAc;QAC3B,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -40,6 +40,17 @@ export interface WhereCondition {
|
|
|
40
40
|
operator?: WhereOperator;
|
|
41
41
|
value?: WhereValue;
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Relationship alias tuple: [alias, foreignKeyColumn]
|
|
45
|
+
* Example: ['user', 'user_id'] means load relationship using 'user_id' FK but expose as 'user'
|
|
46
|
+
*/
|
|
47
|
+
export type RelationshipAlias = [string, string];
|
|
48
|
+
/**
|
|
49
|
+
* Relationships can be specified as:
|
|
50
|
+
* - string[]: Old format for backward compatibility (e.g., ['user_id'])
|
|
51
|
+
* - RelationshipAlias[]: New format with aliases (e.g., [['user', 'user_id']])
|
|
52
|
+
*/
|
|
53
|
+
export type WithRelationships = string[] | RelationshipAlias[];
|
|
43
54
|
/**
|
|
44
55
|
* Query options for building queries
|
|
45
56
|
*/
|
|
@@ -48,8 +59,10 @@ export interface QueryOptions {
|
|
|
48
59
|
select?: string[];
|
|
49
60
|
/** Where conditions */
|
|
50
61
|
where?: Record<string, WhereValue | Record<WhereOperator, WhereValue>>;
|
|
51
|
-
/** Relationships to eager load */
|
|
52
|
-
with?:
|
|
62
|
+
/** Relationships to eager load - supports both old and new formats */
|
|
63
|
+
with?: WithRelationships;
|
|
64
|
+
/** Relationships to count only (efficient COUNT queries) - format: [['comments', 'post_id']] */
|
|
65
|
+
withCount?: RelationshipAlias[];
|
|
53
66
|
/** Manual joins */
|
|
54
67
|
joins?: JoinConfig[];
|
|
55
68
|
/** Page number for pagination */
|
|
@@ -62,6 +75,8 @@ export interface QueryOptions {
|
|
|
62
75
|
orderBy?: string;
|
|
63
76
|
/** Order direction */
|
|
64
77
|
order?: 'asc' | 'desc';
|
|
78
|
+
/** Return only count (efficient COUNT query, no data) */
|
|
79
|
+
count?: boolean;
|
|
65
80
|
}
|
|
66
81
|
/**
|
|
67
82
|
* Paginated response structure
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,OAAO,EAAE,kBAAkB,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3C,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,MAAM,GACN,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;IACvE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAA4D,MAAM,YAAY,CAAC;AAEzG;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAsG9D;AAiBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,CAI7C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAElD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAQrD"}
|
package/dist/utils.js
CHANGED
|
@@ -9,7 +9,33 @@ export function buildQueryString(options) {
|
|
|
9
9
|
}
|
|
10
10
|
// Eager load relationships
|
|
11
11
|
if (options.with && options.with.length > 0) {
|
|
12
|
-
|
|
12
|
+
// Check if it's new format (array of tuples) or old format (array of strings)
|
|
13
|
+
// Handle case where first element might be undefined (empty array check)
|
|
14
|
+
const firstItem = options.with[0];
|
|
15
|
+
const isNewFormat = firstItem !== undefined && Array.isArray(firstItem) && firstItem.length === 2;
|
|
16
|
+
let withValue;
|
|
17
|
+
if (isNewFormat) {
|
|
18
|
+
// New format: [['user', 'user_id'], ['category', 'category_id']] -> "user:user_id,category:category_id"
|
|
19
|
+
withValue = options.with
|
|
20
|
+
.map(([alias, fkColumn]) => `${alias}:${fkColumn}`)
|
|
21
|
+
.join(',');
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
// Old format: ['user_id', 'comments'] -> "user_id,comments"
|
|
25
|
+
withValue = options.with.join(',');
|
|
26
|
+
}
|
|
27
|
+
params.push(`with=${encodeURIComponent(withValue)}`);
|
|
28
|
+
}
|
|
29
|
+
// Relationship counts (efficient COUNT queries)
|
|
30
|
+
if (options.withCount && options.withCount.length > 0) {
|
|
31
|
+
const withCountValue = options.withCount
|
|
32
|
+
.map(([alias, fkColumn]) => `${alias}:${fkColumn}`)
|
|
33
|
+
.join(',');
|
|
34
|
+
params.push(`withCount=${encodeURIComponent(withCountValue)}`);
|
|
35
|
+
}
|
|
36
|
+
// Count-only mode (returns only count, no data)
|
|
37
|
+
if (options.count === true) {
|
|
38
|
+
params.push('count=true');
|
|
13
39
|
}
|
|
14
40
|
// Manual joins
|
|
15
41
|
if (options.joins && options.joins.length > 0) {
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAqB;IACpD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,iBAAiB;IACjB,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,UAAU,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,2BAA2B;IAC3B,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,QAAQ,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@m4rctr3y/reutjs",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "TypeScript/JavaScript client library for Reut backend API. Provides a type-safe, fluent API similar to Supabase's JavaScript client.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|