dolphin-server-modules 1.5.5 → 1.5.6
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 +197 -125
- package/dist/adapters/mongoose/index.d.ts +4 -1
- package/dist/adapters/mongoose/index.js +54 -6
- package/dist/adapters/mongoose/index.js.map +1 -1
- package/dist/adapters/mongoose/index.test.js +60 -16
- package/dist/adapters/mongoose/index.test.js.map +1 -1
- package/dist/adapters/mongoose/integration.test.d.ts +5 -0
- package/dist/adapters/mongoose/integration.test.js +252 -0
- package/dist/adapters/mongoose/integration.test.js.map +1 -0
- package/dist/curd/crud.test.js +58 -187
- package/dist/curd/crud.test.js.map +1 -1
- package/dist/demo-server.d.ts +1 -0
- package/dist/demo-server.js +221 -0
- package/dist/demo-server.js.map +1 -0
- package/dist/djson/djson.test.d.ts +1 -0
- package/dist/djson/djson.test.js +235 -0
- package/dist/djson/djson.test.js.map +1 -0
- package/dist/router/router.test.d.ts +1 -0
- package/dist/router/router.test.js +47 -0
- package/dist/router/router.test.js.map +1 -0
- package/dist/swagger/swagger.test.d.ts +1 -0
- package/dist/swagger/swagger.test.js +40 -0
- package/dist/swagger/swagger.test.js.map +1 -0
- package/package.json +72 -70
package/README.md
CHANGED
|
@@ -1,125 +1,197 @@
|
|
|
1
|
-
# 🐬 Dolphin Framework (v1.
|
|
2
|
-
|
|
3
|
-
**Dolphin** is a 2026-ready, ultra-lightweight, and 100% modular backend ecosystem built on native Node.js. It
|
|
4
|
-
|
|
5
|
-
> "Native performance. Express compatibility. IoT-ready."
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
### 📘 Official Master Guide (Nepal)
|
|
10
|
-
Dolphin Framework को विस्तृत र आधिकारिक गाइड
|
|
11
|
-
|
|
12
|
-
👉 **[Dolphin Master Guide (Markdown)](https://github.com/Phuyalshankar/dolphin-server-modules/blob/main/DOLPHIN_MASTER_GUIDE_NEPALI.md)** *(Most Up-to-Date)*
|
|
13
|
-
👉 **[Dolphin Master Guide (PDF)](https://github.com/Phuyalshankar/dolphin-server-modules/blob/main/DOLPHIN_MASTER_GUIDE_NEPALI.pdf)**
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## 🌟 Why Dolphin in 2026?
|
|
18
|
-
|
|
19
|
-
- **Zero-Dependency Core**: Built on native `http` & `events`. No bloat.
|
|
20
|
-
- **Universal Compatibility**:
|
|
21
|
-
- **Multi-Handler Middleware**: Support for Express-style middleware chains `(ctx, next)`.
|
|
22
|
-
- **Auto-JSON Serialization**: Simply `return` an object from your handler!
|
|
23
|
-
- **Industrial IoT (IIoT)**: Native support for HL7, Modbus, and DICOM via binary plugins.
|
|
24
|
-
- **Unified Context (ctx)**: Modern developer experience with legacy middleware support.
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## 📦 Installation
|
|
29
|
-
```bash
|
|
30
|
-
npm install dolphin-server-modules
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## 🚀 Quick Start
|
|
36
|
-
|
|
37
|
-
### 1. High-Performance Web Server
|
|
38
|
-
```typescript
|
|
39
|
-
import { createDolphinServer } from 'dolphin-server-modules/server';
|
|
40
|
-
|
|
41
|
-
const app = createDolphinServer();
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
|
108
|
-
|
|
|
109
|
-
|
|
|
110
|
-
| **
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
-
|
|
116
|
-
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
1
|
+
# 🐬 Dolphin Framework (v1.5.6)
|
|
2
|
+
|
|
3
|
+
**Dolphin** is a 2026-ready, ultra-lightweight, and 100% modular backend ecosystem built on native Node.js. It's not just a framework; it's a universal toolkit for Web, Microservices, and Industrial IoT.
|
|
4
|
+
|
|
5
|
+
> "Native performance. Express compatibility. IoT-ready."
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
### 📘 Official Master Guide (Nepal)
|
|
10
|
+
Dolphin Framework को विस्तृत र आधिकारिक गाइड उपलब्ध छ। यसमा **Auth, CRUD, Models, र Controllers** को १००% ट्युटोरियल समावेश छ।
|
|
11
|
+
|
|
12
|
+
👉 **[Dolphin Master Guide (Markdown)](https://github.com/Phuyalshankar/dolphin-server-modules/blob/main/DOLPHIN_MASTER_GUIDE_NEPALI.md)** *(Most Up-to-Date)*
|
|
13
|
+
👉 **[Dolphin Master Guide (PDF)](https://github.com/Phuyalshankar/dolphin-server-modules/blob/main/DOLPHIN_MASTER_GUIDE_NEPALI.pdf)**
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 🌟 Why Dolphin in 2026?
|
|
18
|
+
|
|
19
|
+
- **Zero-Dependency Core**: Built on native `http` & `events`. No bloat.
|
|
20
|
+
- **Universal Compatibility**: Works with Mongoose, Zod, WebSocket, and Express-compatible middleware.
|
|
21
|
+
- **Multi-Handler Middleware**: Support for Express-style middleware chains `(ctx, next)`.
|
|
22
|
+
- **Auto-JSON Serialization**: Simply `return` an object from your handler!
|
|
23
|
+
- **Industrial IoT (IIoT)**: Native support for HL7, Modbus, and DICOM via binary plugins.
|
|
24
|
+
- **Unified Context (ctx)**: Modern developer experience with legacy middleware support.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 📦 Installation
|
|
29
|
+
```bash
|
|
30
|
+
npm install dolphin-server-modules
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 🚀 Quick Start
|
|
36
|
+
|
|
37
|
+
### 1. High-Performance Web Server
|
|
38
|
+
```typescript
|
|
39
|
+
import { createDolphinServer } from 'dolphin-server-modules/server';
|
|
40
|
+
|
|
41
|
+
const app = createDolphinServer();
|
|
42
|
+
|
|
43
|
+
app.get('/ping', (ctx) => {
|
|
44
|
+
return { message: 'pong', version: '1.5.6' };
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
app.listen(3000, () => console.log("🐬 Dolphin swimming on port 3000"));
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 2. Full CRUD API with Mongoose (v1.5.5)
|
|
51
|
+
|
|
52
|
+
> **Important:** Use `enforceOwnership: false` for public APIs (no auth required).
|
|
53
|
+
> Default is `true` — requires `userId` from auth middleware.
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
import { createDolphinServer } from 'dolphin-server-modules/server';
|
|
57
|
+
import { createMongooseAdapter } from 'dolphin-server-modules/adapters/mongoose';
|
|
58
|
+
import { createCRUD } from 'dolphin-server-modules/crud';
|
|
59
|
+
import mongoose from 'mongoose';
|
|
60
|
+
|
|
61
|
+
// 1. Connect MongoDB
|
|
62
|
+
await mongoose.connect(process.env.MONGO_URI!);
|
|
63
|
+
|
|
64
|
+
// 2. Define Model
|
|
65
|
+
const Product = mongoose.model('Product', new mongoose.Schema({
|
|
66
|
+
name: String, price: Number, category: String
|
|
67
|
+
}));
|
|
68
|
+
|
|
69
|
+
// 3. Create adapter + CRUD service
|
|
70
|
+
const db = createMongooseAdapter({ User, RefreshToken, models: { Product } });
|
|
71
|
+
const crud = createCRUD(db, { enforceOwnership: false }); // public API
|
|
72
|
+
|
|
73
|
+
// 4. Wire routes
|
|
74
|
+
const app = createDolphinServer();
|
|
75
|
+
|
|
76
|
+
app.get('/products', async (ctx) => ctx.json(await crud.read('Product')));
|
|
77
|
+
app.get('/products/:id', async (ctx) => {
|
|
78
|
+
const item = await crud.readOne('Product', ctx.params.id);
|
|
79
|
+
if (!item) return ctx.status(404).json({ error: 'Not Found' });
|
|
80
|
+
ctx.json(item);
|
|
81
|
+
});
|
|
82
|
+
app.post('/products', async (ctx) => ctx.status(201).json(await crud.create('Product', ctx.body)));
|
|
83
|
+
app.put('/products/:id', async (ctx) => ctx.json(await crud.updateOne('Product', ctx.params.id, ctx.body)));
|
|
84
|
+
app.delete('/products/:id', async (ctx) => ctx.json(await crud.deleteOne('Product', ctx.params.id)));
|
|
85
|
+
|
|
86
|
+
app.listen(3000);
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 3. Industrial IoT (Modbus/HL7) Support
|
|
90
|
+
```typescript
|
|
91
|
+
import { RealtimeCore } from 'dolphin-server-modules/realtime';
|
|
92
|
+
import { ModbusPlugin, HL7Plugin } from 'dolphin-server-modules/realtime/plugins';
|
|
93
|
+
|
|
94
|
+
const rt = new RealtimeCore();
|
|
95
|
+
rt.use(ModbusPlugin);
|
|
96
|
+
rt.use(HL7Plugin);
|
|
97
|
+
|
|
98
|
+
rt.subscribe('factory/machine/+', (data) => {
|
|
99
|
+
console.log(`Sensor Data:`, data.payload.value);
|
|
100
|
+
});
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 🛠️ Modular Ecosystem
|
|
106
|
+
|
|
107
|
+
| Module | Path | Description |
|
|
108
|
+
| :--- | :--- | :--- |
|
|
109
|
+
| **Server** | `/server` | Native HTTP server with `ctx` API & Auto-JSON. |
|
|
110
|
+
| **Router** | `/router` | Standalone sub-routers with multi-handler support. |
|
|
111
|
+
| **Auth** | `/auth` | Argon2/JWT based secure auth with 2FA (TOTP). |
|
|
112
|
+
| **CRUD** | `/curd` | Generic CRUD service with ownership & soft-delete. |
|
|
113
|
+
| **Auth Controller** | `/auth-controller` | Pre-built auth routes (register, login, refresh). |
|
|
114
|
+
| **Realtime** | `/realtime` | Pub/Sub engine with `TopicTrie` & binary codecs. |
|
|
115
|
+
| **Validation** | `/middleware/zod` | Type-safe Zod validation middleware. |
|
|
116
|
+
| **Swagger Docs** | `/swagger` | Auto-generated OpenAPI docs from Zod schemas. |
|
|
117
|
+
| **IoT Plugins** | `/realtime/plugins` | Native parsers for HL7, Modbus, and DICOM. |
|
|
118
|
+
| **Mongoose Adapter** | `/adapters/mongoose` | Full Mongoose ↔ CRUD bridge with query mapping. |
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## ⚠️ Important: `enforceOwnership` Option
|
|
123
|
+
|
|
124
|
+
The `createCRUD` function has `enforceOwnership: true` by default. This means **every operation requires a `userId`** (from auth middleware). For public APIs, set it to `false`:
|
|
125
|
+
|
|
126
|
+
```typescript
|
|
127
|
+
// Public API — no auth needed
|
|
128
|
+
const crud = createCRUD(db, { enforceOwnership: false });
|
|
129
|
+
|
|
130
|
+
// Protected API — requires auth middleware to set ctx.req.user
|
|
131
|
+
const crud = createCRUD(db, { enforceOwnership: true });
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 🛣️ Advanced Middleware & Sub-Routing
|
|
137
|
+
|
|
138
|
+
```typescript
|
|
139
|
+
import { createDolphinRouter } from 'dolphin-server-modules/router';
|
|
140
|
+
import { createDolphinAuthController } from 'dolphin-server-modules/auth-controller';
|
|
141
|
+
|
|
142
|
+
const auth = createDolphinAuthController(db, config);
|
|
143
|
+
const apiV1 = createDolphinRouter();
|
|
144
|
+
|
|
145
|
+
// Multi-handler: middleware + route handler
|
|
146
|
+
apiV1.get('/me', auth.requireAuth, async (ctx) => {
|
|
147
|
+
return { user: ctx.req.user };
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
const mainApp = createDolphinServer();
|
|
151
|
+
mainApp.use('/api/v1', apiV1);
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 🧪 Testing
|
|
157
|
+
|
|
158
|
+
The project uses **Jest** with **ts-jest**. Integration tests use `mongodb-memory-server` for real Mongoose testing without an external database.
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
npm test # Run all 167 tests (12 suites)
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
| Suite | Tests |
|
|
165
|
+
| :--- | :--- |
|
|
166
|
+
| `adapters/mongoose/integration.test.ts` | 23 (real Mongoose) |
|
|
167
|
+
| `adapters/mongoose/index.test.ts` | 7 |
|
|
168
|
+
| `auth/auth.test.ts` | — |
|
|
169
|
+
| `curd/crud.test.ts` | — |
|
|
170
|
+
| + 8 more suites | — |
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## 📊 2026 Performance Benchmarks
|
|
175
|
+
|
|
176
|
+
| Framework | RPS (Req/sec) | Cold Start | Bundle Size |
|
|
177
|
+
| :--- | :--- | :--- | :--- |
|
|
178
|
+
| Express.js | ~15,000 | 180ms | 2.4 MB |
|
|
179
|
+
| Fastify | ~35,000 | 90ms | 1.1 MB |
|
|
180
|
+
| **Dolphin** | **45,000+** | **< 10ms** | **~80 KB** |
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## 🗺️ Roadmap
|
|
185
|
+
- [x] Universal Plugin System (HL7/Modbus/Binary)
|
|
186
|
+
- [x] Recursive Sub-routing
|
|
187
|
+
- [x] Auto-Doc: Automatic Swagger/OpenAPI generation from Zod schemas
|
|
188
|
+
- [x] Middleware Chains: Support for `(ctx, next)` in routes
|
|
189
|
+
- [x] Auto-JSON: Return objects directly from handlers
|
|
190
|
+
- [x] Real Mongoose adapter with `$like`, `id→_id` query mapping
|
|
191
|
+
- [x] Integration test suite with `mongodb-memory-server`
|
|
192
|
+
- [ ] **Dolphin CLI**: `npx dolphin init` for automated scaffolding
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 📄 License
|
|
197
|
+
ISC © 2026 Shankar Phuyal & Dolphin Team.
|
|
@@ -18,7 +18,7 @@ export declare function createMongooseAdapter(config: MongooseAdapterConfig): {
|
|
|
18
18
|
deleteRefreshToken(token: string): Promise<void>;
|
|
19
19
|
create(collection: string, data: any, userId?: string): Promise<any>;
|
|
20
20
|
readOne(collection: string, id: string, userId?: string): Promise<any>;
|
|
21
|
-
|
|
21
|
+
readMany(collection: string, query?: any, options?: any, userId?: string): Promise<any>;
|
|
22
22
|
updateOne(collection: string, id: string, data: any, userId?: string): Promise<any>;
|
|
23
23
|
updateMany(collection: string, query: any, data: any, userId?: string): Promise<number>;
|
|
24
24
|
deleteOne(collection: string, id: string, userId?: string): Promise<any>;
|
|
@@ -36,4 +36,7 @@ export declare function createMongooseAdapter(config: MongooseAdapterConfig): {
|
|
|
36
36
|
advancedRead(collection: string, query?: any, options?: any, userId?: string): Promise<any>;
|
|
37
37
|
count(collection: string, filter?: any, userId?: string): Promise<number>;
|
|
38
38
|
exists(collection: string, filter?: any, userId?: string): Promise<boolean>;
|
|
39
|
+
read(collection: string, query?: any): Promise<any>;
|
|
40
|
+
update(collection: string, query: any, data: any): Promise<any>;
|
|
41
|
+
delete(collection: string, query: any): Promise<any>;
|
|
39
42
|
};
|
|
@@ -74,7 +74,7 @@ function createMongooseAdapter(config) {
|
|
|
74
74
|
return mapDoc(user);
|
|
75
75
|
},
|
|
76
76
|
async updateUser(id, data) {
|
|
77
|
-
const user = await User.findByIdAndUpdate(id, data, {
|
|
77
|
+
const user = await User.findByIdAndUpdate(id, data, { returnDocument: 'after' }).lean(leanByDefault);
|
|
78
78
|
return mapDoc(user);
|
|
79
79
|
},
|
|
80
80
|
async saveRefreshToken(data) {
|
|
@@ -108,8 +108,8 @@ function createMongooseAdapter(config) {
|
|
|
108
108
|
const doc = await Model.findOne(query).lean(leanByDefault);
|
|
109
109
|
return mapDoc(doc);
|
|
110
110
|
},
|
|
111
|
-
// Read many
|
|
112
|
-
async
|
|
111
|
+
// Read many (internal use)
|
|
112
|
+
async readMany(collection, query = {}, options = {}, userId) {
|
|
113
113
|
const Model = getModel(collection);
|
|
114
114
|
const filter = mapQuery(query);
|
|
115
115
|
if (userId)
|
|
@@ -135,7 +135,7 @@ function createMongooseAdapter(config) {
|
|
|
135
135
|
query.userId = userId;
|
|
136
136
|
if (softDelete)
|
|
137
137
|
query[softDeleteField] = null;
|
|
138
|
-
const doc = await Model.findOneAndUpdate(query, { ...data, updatedAt: new Date() }, {
|
|
138
|
+
const doc = await Model.findOneAndUpdate(query, { ...data, updatedAt: new Date() }, { returnDocument: 'after' }).lean(leanByDefault);
|
|
139
139
|
return mapDoc(doc);
|
|
140
140
|
},
|
|
141
141
|
// Update many
|
|
@@ -154,7 +154,7 @@ function createMongooseAdapter(config) {
|
|
|
154
154
|
if (userId)
|
|
155
155
|
query.userId = userId;
|
|
156
156
|
if (softDelete) {
|
|
157
|
-
const doc = await Model.findOneAndUpdate(query, { [softDeleteField]: new Date(), updatedAt: new Date() }, {
|
|
157
|
+
const doc = await Model.findOneAndUpdate(query, { [softDeleteField]: new Date(), updatedAt: new Date() }, { returnDocument: 'after' }).lean(leanByDefault);
|
|
158
158
|
return mapDoc(doc);
|
|
159
159
|
}
|
|
160
160
|
else {
|
|
@@ -185,7 +185,7 @@ function createMongooseAdapter(config) {
|
|
|
185
185
|
const query = { _id: id, [softDeleteField]: { $ne: null } };
|
|
186
186
|
if (userId)
|
|
187
187
|
query.userId = userId;
|
|
188
|
-
const doc = await Model.findOneAndUpdate(query, { [softDeleteField]: null, updatedAt: new Date() }, {
|
|
188
|
+
const doc = await Model.findOneAndUpdate(query, { [softDeleteField]: null, updatedAt: new Date() }, { returnDocument: 'after' }).lean(leanByDefault);
|
|
189
189
|
return mapDoc(doc);
|
|
190
190
|
},
|
|
191
191
|
// Pagination
|
|
@@ -242,6 +242,54 @@ function createMongooseAdapter(config) {
|
|
|
242
242
|
async exists(collection, filter = {}, userId) {
|
|
243
243
|
const count = await this.count(collection, filter, userId);
|
|
244
244
|
return count > 0;
|
|
245
|
+
},
|
|
246
|
+
// ==================== CRUD CONTROLLER COMPATIBILITY METHODS (FIXED) ====================
|
|
247
|
+
// Read method for CRUD controller
|
|
248
|
+
async read(collection, query = {}) {
|
|
249
|
+
const Model = getModel(collection);
|
|
250
|
+
// mapQuery converts id→_id and $like→$regex across the whole query
|
|
251
|
+
const filter = mapQuery(query);
|
|
252
|
+
// Auto exclude soft deleted if enabled
|
|
253
|
+
if (softDelete && filter[softDeleteField] === undefined) {
|
|
254
|
+
filter[softDeleteField] = null;
|
|
255
|
+
}
|
|
256
|
+
const docs = await Model.find(filter).lean(leanByDefault);
|
|
257
|
+
return docs.map(mapDoc);
|
|
258
|
+
},
|
|
259
|
+
// Update method for CRUD controller
|
|
260
|
+
async update(collection, query, data) {
|
|
261
|
+
// If updating by id
|
|
262
|
+
if (query.id || query._id) {
|
|
263
|
+
const id = query.id || query._id;
|
|
264
|
+
return await this.updateOne(collection, id, data);
|
|
265
|
+
}
|
|
266
|
+
// Otherwise update many with mapQuery
|
|
267
|
+
const Model = getModel(collection);
|
|
268
|
+
const filter = mapQuery(query);
|
|
269
|
+
if (softDelete && filter[softDeleteField] === undefined) {
|
|
270
|
+
filter[softDeleteField] = null;
|
|
271
|
+
}
|
|
272
|
+
const result = await Model.updateMany(filter, { ...data, updatedAt: new Date() });
|
|
273
|
+
return result.modifiedCount;
|
|
274
|
+
},
|
|
275
|
+
// Delete method for CRUD controller
|
|
276
|
+
async delete(collection, query) {
|
|
277
|
+
// If deleting by id
|
|
278
|
+
if (query.id || query._id) {
|
|
279
|
+
const id = query.id || query._id;
|
|
280
|
+
return await this.deleteOne(collection, id);
|
|
281
|
+
}
|
|
282
|
+
// Otherwise delete many with mapQuery
|
|
283
|
+
const Model = getModel(collection);
|
|
284
|
+
const filter = mapQuery(query);
|
|
285
|
+
if (softDelete) {
|
|
286
|
+
const result = await Model.updateMany(filter, { [softDeleteField]: new Date(), updatedAt: new Date() });
|
|
287
|
+
return result.modifiedCount;
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
const result = await Model.deleteMany(filter);
|
|
291
|
+
return result.deletedCount;
|
|
292
|
+
}
|
|
245
293
|
}
|
|
246
294
|
};
|
|
247
295
|
// Attach model shortcuts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../adapters/mongoose/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../adapters/mongoose/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,50 +1,59 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// adapters/mongoose/index.test.ts
|
|
3
4
|
const index_1 = require("./index");
|
|
4
5
|
describe('Mongoose Adapter', () => {
|
|
5
6
|
let adapter;
|
|
6
7
|
let mockModel;
|
|
8
|
+
let mockChainable;
|
|
7
9
|
beforeEach(() => {
|
|
8
|
-
// Helper to create chainable mock for mongoose queries
|
|
9
|
-
const
|
|
10
|
+
// Helper to create chainable mock for mongoose queries
|
|
11
|
+
const createChainable = (result) => {
|
|
10
12
|
const chain = {
|
|
11
13
|
sort: jest.fn().mockReturnThis(),
|
|
12
14
|
skip: jest.fn().mockReturnThis(),
|
|
13
15
|
limit: jest.fn().mockReturnThis(),
|
|
14
16
|
select: jest.fn().mockReturnThis(),
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
where: jest.fn().mockReturnThis(),
|
|
18
|
+
populate: jest.fn().mockReturnThis(),
|
|
19
|
+
lean: jest.fn().mockResolvedValue(result || []),
|
|
20
|
+
then: jest.fn().mockResolvedValue(result || []),
|
|
21
|
+
exec: jest.fn().mockResolvedValue(result || [])
|
|
18
22
|
};
|
|
19
23
|
return chain;
|
|
20
24
|
};
|
|
25
|
+
mockChainable = createChainable();
|
|
21
26
|
mockModel = {
|
|
22
27
|
create: jest.fn(),
|
|
23
|
-
find: jest.fn(() =>
|
|
24
|
-
findOne: jest.fn(() =>
|
|
25
|
-
findById: jest.fn(() =>
|
|
26
|
-
findByIdAndUpdate: jest.fn(() =>
|
|
27
|
-
findByIdAndDelete: jest.fn(() =>
|
|
28
|
-
findOneAndUpdate: jest.fn(() =>
|
|
29
|
-
findOneAndDelete: jest.fn(() =>
|
|
30
|
-
updateMany: jest.fn(),
|
|
31
|
-
deleteMany: jest.fn(),
|
|
28
|
+
find: jest.fn(() => createChainable([])),
|
|
29
|
+
findOne: jest.fn(() => createChainable(null)),
|
|
30
|
+
findById: jest.fn(() => createChainable(null)),
|
|
31
|
+
findByIdAndUpdate: jest.fn(() => createChainable(null)),
|
|
32
|
+
findByIdAndDelete: jest.fn(() => createChainable(null)),
|
|
33
|
+
findOneAndUpdate: jest.fn(() => createChainable(null)),
|
|
34
|
+
findOneAndDelete: jest.fn(() => createChainable(null)),
|
|
35
|
+
updateMany: jest.fn().mockResolvedValue({ modifiedCount: 0 }),
|
|
36
|
+
deleteMany: jest.fn().mockResolvedValue({ deletedCount: 0 }),
|
|
32
37
|
insertMany: jest.fn(),
|
|
33
|
-
deleteOne: jest.fn(),
|
|
38
|
+
deleteOne: jest.fn().mockResolvedValue({ deletedCount: 0 }),
|
|
34
39
|
countDocuments: jest.fn().mockResolvedValue(0),
|
|
40
|
+
updateOne: jest.fn().mockResolvedValue({ modifiedCount: 0 })
|
|
35
41
|
};
|
|
36
42
|
adapter = (0, index_1.createMongooseAdapter)({
|
|
37
43
|
User: mockModel,
|
|
38
44
|
RefreshToken: mockModel,
|
|
39
45
|
models: { test: mockModel },
|
|
40
46
|
leanByDefault: true,
|
|
47
|
+
softDelete: false
|
|
41
48
|
});
|
|
42
49
|
});
|
|
43
50
|
it('should map id to _id and $like in queries', async () => {
|
|
51
|
+
// Call read with id and $like query
|
|
44
52
|
await adapter.read('test', {
|
|
45
53
|
id: '123',
|
|
46
54
|
name: { $like: 'john' }
|
|
47
55
|
});
|
|
56
|
+
// Verify find was called with converted query
|
|
48
57
|
expect(mockModel.find).toHaveBeenCalledWith(expect.objectContaining({
|
|
49
58
|
_id: '123',
|
|
50
59
|
name: { $regex: 'john', $options: 'i' }
|
|
@@ -81,10 +90,19 @@ describe('Mongoose Adapter', () => {
|
|
|
81
90
|
lean: jest.fn().mockResolvedValue(mockUpdated)
|
|
82
91
|
});
|
|
83
92
|
const result = await adapter.updateOne('test', '123', { name: 'Updated' });
|
|
84
|
-
expect(mockModel.findOneAndUpdate).toHaveBeenCalledWith({ _id: '123' }, expect.objectContaining({ name: 'Updated' }),
|
|
93
|
+
expect(mockModel.findOneAndUpdate).toHaveBeenCalledWith({ _id: '123' }, expect.objectContaining({ name: 'Updated', updatedAt: expect.any(Date) }), { returnDocument: 'after' });
|
|
85
94
|
expect(result.id).toBe('123');
|
|
86
95
|
});
|
|
87
96
|
it('should support advancedRead with sort, offset and limit', async () => {
|
|
97
|
+
const mockDocs = [{ _id: '1', name: 'Test 1' }, { _id: '2', name: 'Test 2' }];
|
|
98
|
+
const mockFind = jest.fn().mockReturnValue({
|
|
99
|
+
sort: jest.fn().mockReturnThis(),
|
|
100
|
+
skip: jest.fn().mockReturnThis(),
|
|
101
|
+
limit: jest.fn().mockReturnThis(),
|
|
102
|
+
lean: jest.fn().mockResolvedValue(mockDocs),
|
|
103
|
+
where: jest.fn().mockReturnThis()
|
|
104
|
+
});
|
|
105
|
+
mockModel.find = mockFind;
|
|
88
106
|
await adapter.advancedRead('test', { status: 'active' }, {
|
|
89
107
|
sort: { createdAt: 'desc' },
|
|
90
108
|
offset: 10,
|
|
@@ -99,5 +117,31 @@ describe('Mongoose Adapter', () => {
|
|
|
99
117
|
expect(adapter.User.collection).toBe('User');
|
|
100
118
|
expect(adapter.test.collection).toBe('test');
|
|
101
119
|
});
|
|
120
|
+
// Additional test for read method with empty query
|
|
121
|
+
it('should handle read with empty query', async () => {
|
|
122
|
+
const mockDocs = [{ _id: '1', name: 'Test 1' }, { _id: '2', name: 'Test 2' }];
|
|
123
|
+
mockModel.find.mockReturnValueOnce({
|
|
124
|
+
lean: jest.fn().mockResolvedValue(mockDocs)
|
|
125
|
+
});
|
|
126
|
+
const results = await adapter.read('test', {});
|
|
127
|
+
expect(mockModel.find).toHaveBeenCalledWith({});
|
|
128
|
+
expect(results).toHaveLength(2);
|
|
129
|
+
expect(results[0]).toEqual({ id: '1', name: 'Test 1' });
|
|
130
|
+
expect(results[1]).toEqual({ id: '2', name: 'Test 2' });
|
|
131
|
+
});
|
|
132
|
+
// Test for update method (CRUD controller compatibility)
|
|
133
|
+
it('should support update method for CRUD controller', async () => {
|
|
134
|
+
mockModel.updateMany.mockResolvedValueOnce({ modifiedCount: 2 });
|
|
135
|
+
const result = await adapter.update('test', { category: 'Electronics' }, { price: 100 });
|
|
136
|
+
expect(mockModel.updateMany).toHaveBeenCalledWith({ category: 'Electronics' }, expect.objectContaining({ price: 100, updatedAt: expect.any(Date) }));
|
|
137
|
+
expect(result).toBe(2);
|
|
138
|
+
});
|
|
139
|
+
// Test for delete method (CRUD controller compatibility)
|
|
140
|
+
it('should support delete method for CRUD controller', async () => {
|
|
141
|
+
mockModel.deleteMany.mockResolvedValueOnce({ deletedCount: 3 });
|
|
142
|
+
const result = await adapter.delete('test', { category: 'Old' });
|
|
143
|
+
expect(mockModel.deleteMany).toHaveBeenCalledWith({ category: 'Old' });
|
|
144
|
+
expect(result).toBe(3);
|
|
145
|
+
});
|
|
102
146
|
});
|
|
103
147
|
//# sourceMappingURL=index.test.js.map
|