@orchestr-sh/orchestr 1.2.0 → 1.3.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.
Files changed (40) hide show
  1. package/README.md +67 -4
  2. package/dist/Routing/Route.d.ts +1 -1
  3. package/dist/Routing/Route.d.ts.map +1 -1
  4. package/dist/Routing/Router.d.ts +5 -0
  5. package/dist/Routing/Router.d.ts.map +1 -1
  6. package/dist/Routing/Router.js +19 -0
  7. package/dist/Routing/Router.js.map +1 -1
  8. package/dist/Support/Injectable.d.ts +21 -0
  9. package/dist/Support/Injectable.d.ts.map +1 -0
  10. package/dist/Support/Injectable.js +30 -0
  11. package/dist/Support/Injectable.js.map +1 -0
  12. package/dist/index.d.ts +1 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +4 -1
  15. package/dist/index.js.map +1 -1
  16. package/package.json +1 -1
  17. package/dist/Database/Eloquent/Builder.d.ts +0 -76
  18. package/dist/Database/Eloquent/Builder.d.ts.map +0 -1
  19. package/dist/Database/Eloquent/Builder.js +0 -154
  20. package/dist/Database/Eloquent/Builder.js.map +0 -1
  21. package/dist/Database/Eloquent/Collection.d.ts +0 -137
  22. package/dist/Database/Eloquent/Collection.d.ts.map +0 -1
  23. package/dist/Database/Eloquent/Collection.js +0 -284
  24. package/dist/Database/Eloquent/Collection.js.map +0 -1
  25. package/dist/Database/Eloquent/Concerns/HasAttributes.d.ts +0 -44
  26. package/dist/Database/Eloquent/Concerns/HasAttributes.d.ts.map +0 -1
  27. package/dist/Database/Eloquent/Concerns/HasAttributes.js +0 -8
  28. package/dist/Database/Eloquent/Concerns/HasAttributes.js.map +0 -1
  29. package/dist/Database/Eloquent/Concerns/HasTimestamps.d.ts +0 -41
  30. package/dist/Database/Eloquent/Concerns/HasTimestamps.d.ts.map +0 -1
  31. package/dist/Database/Eloquent/Concerns/HasTimestamps.js +0 -14
  32. package/dist/Database/Eloquent/Concerns/HasTimestamps.js.map +0 -1
  33. package/dist/Database/Eloquent/Model.d.ts +0 -265
  34. package/dist/Database/Eloquent/Model.d.ts.map +0 -1
  35. package/dist/Database/Eloquent/Model.js +0 -523
  36. package/dist/Database/Eloquent/Model.js.map +0 -1
  37. package/dist/Database/Eloquent/SoftDeletes.d.ts +0 -41
  38. package/dist/Database/Eloquent/SoftDeletes.d.ts.map +0 -1
  39. package/dist/Database/Eloquent/SoftDeletes.js +0 -22
  40. package/dist/Database/Eloquent/SoftDeletes.js.map +0 -1
package/README.md CHANGED
@@ -26,6 +26,11 @@ npm install @orchestr-sh/orchestr reflect-metadata
26
26
 
27
27
  **Note**: `reflect-metadata` is required for dependency injection to work.
28
28
 
29
+ ## Documentation
30
+
31
+ - **[Dependency Injection Guide](./DEPENDENCY_INJECTION.md)** - Complete guide to using DI with troubleshooting
32
+ - **[DI Example](./examples/dependency-injection/)** - Working example with services and controllers
33
+
29
34
  ## Quick Start
30
35
 
31
36
  ```typescript
@@ -78,6 +83,45 @@ app.singleton('Database', () => new Database());
78
83
  const userService = app.make('UserService');
79
84
  ```
80
85
 
86
+ ### Dependency Injection
87
+
88
+ Orchestr supports automatic constructor-based dependency injection using TypeScript's reflection:
89
+
90
+ ```typescript
91
+ import { Injectable, Controller, Request, Response } from 'orchestr';
92
+
93
+ // Define a service
94
+ export class UserService {
95
+ getUsers() {
96
+ return [{ id: 1, name: 'John' }];
97
+ }
98
+ }
99
+
100
+ // Use @Injectable() decorator to enable DI
101
+ @Injectable()
102
+ export class UserController extends Controller {
103
+ // Dependencies are automatically injected
104
+ constructor(private userService: UserService) {
105
+ super();
106
+ }
107
+
108
+ async index(req: Request, res: Response) {
109
+ const users = this.userService.getUsers();
110
+ return res.json({ users });
111
+ }
112
+ }
113
+
114
+ // Register the service in a provider
115
+ class AppServiceProvider extends ServiceProvider {
116
+ register(): void {
117
+ // Bind the service to the container
118
+ this.app.singleton(UserService, () => new UserService());
119
+ }
120
+ }
121
+ ```
122
+
123
+ **Important**: The `@Injectable()` decorator is required for dependency injection to work. It triggers TypeScript to emit metadata about constructor parameters.
124
+
81
125
  ### Service Providers
82
126
 
83
127
  Organize service registration and bootstrapping:
@@ -211,17 +255,28 @@ Route.get('/profile', handler).addMiddleware(authMiddleware);
211
255
 
212
256
  ### Controllers
213
257
 
214
- MVC pattern with base controller:
258
+ MVC pattern with base controller and dependency injection:
215
259
 
216
260
  ```typescript
261
+ import { Injectable, Controller, Request, Response, Route } from 'orchestr';
262
+
263
+ // Use @Injectable() when injecting dependencies
264
+ @Injectable()
217
265
  class UserController extends Controller {
266
+ // Services are automatically injected
267
+ constructor(private userService: UserService) {
268
+ super();
269
+ }
270
+
218
271
  async index(req: Request, res: Response) {
219
- return res.json({ users: [] });
272
+ const users = await this.userService.getAll();
273
+ return res.json({ users });
220
274
  }
221
275
 
222
276
  async show(req: Request, res: Response) {
223
277
  const id = req.routeParam('id');
224
- return res.json({ user: { id } });
278
+ const user = await this.userService.findById(id);
279
+ return res.json({ user });
225
280
  }
226
281
 
227
282
  async store(req: Request, res: Response) {
@@ -229,11 +284,19 @@ class UserController extends Controller {
229
284
  name: 'required',
230
285
  email: 'required|email',
231
286
  });
232
- return res.status(201).json({ user: validated });
287
+ const user = await this.userService.create(validated);
288
+ return res.status(201).json({ user });
233
289
  }
234
290
  }
291
+
292
+ // Register controller routes
293
+ Route.get('/users', [UserController, 'index']);
294
+ Route.get('/users/:id', [UserController, 'show']);
295
+ Route.post('/users', [UserController, 'store']);
235
296
  ```
236
297
 
298
+ **Note**: The `@Injectable()` decorator must be used on any class that needs constructor dependency injection. Without it, TypeScript won't emit the metadata needed for automatic resolution.
299
+
237
300
  ### Request
238
301
 
239
302
  Powerful request helper methods:
@@ -1,7 +1,7 @@
1
1
  import { Request } from './Request';
2
2
  import { Response } from './Response';
3
3
  export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
4
- export type RouteAction = Function | string;
4
+ export type RouteAction = Function | string | [new (...args: any[]) => any, string];
5
5
  export type Middleware = (req: Request, res: Response, next: () => void) => void | Promise<void>;
6
6
  /**
7
7
  * Route - Represents a single route in the application
@@ -1 +1 @@
1
- {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../src/Routing/Route.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAC1F,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC5C,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjG;;;GAGG;AACH,qBAAa,KAAK;IACT,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,UAAU,EAAE,CAAM;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAC/C,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAgB;gBAE1B,OAAO,EAAE,UAAU,GAAG,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;IAOhF;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAQ9C;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWxB;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI;IAM1D;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIvC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAGnE"}
1
+ {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../src/Routing/Route.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAC1F,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,CAAC,CAAC;AACpF,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjG;;;GAGG;AACH,qBAAa,KAAK;IACT,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,UAAU,EAAE,CAAM;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAC/C,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAgB;gBAE1B,OAAO,EAAE,UAAU,GAAG,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;IAOhF;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAQ9C;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWxB;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI;IAM1D;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIvC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAGnE"}
@@ -101,6 +101,11 @@ export declare class Router {
101
101
  * Run the route action
102
102
  */
103
103
  private runRoute;
104
+ /**
105
+ * Call a controller action using tuple format
106
+ * Laravel-style: [UserController, 'index']
107
+ */
108
+ private callControllerTuple;
104
109
  /**
105
110
  * Call a controller action
106
111
  * Laravel: 'UserController@index'
@@ -1 +1 @@
1
- {"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../src/Routing/Router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,WAAW,CAAiC;gBAExC,GAAG,EAAE,WAAW;IAI5B;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK;IAI5C;;;OAGG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK;IAI7C;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK;IAI5C;;;OAGG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK;IAI9C;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK;IAI/C;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK;IAI5C;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK;IAIrE;;OAEG;IACH,OAAO,CAAC,QAAQ;IAahB;;;OAGG;IACH,KAAK,CAAC,UAAU,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAMnE;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAKtC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAI1C;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;IACH,OAAO,CAAC,MAAM;IASd;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAWrD;;OAEG;IACG,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB1D;;OAEG;YACW,aAAa;IAqB3B;;OAEG;YACW,QAAQ;IAmBtB;;;OAGG;YACW,oBAAoB;IAWlC;;OAEG;IACH,SAAS,IAAI,KAAK,EAAE;CAGrB"}
1
+ {"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../src/Routing/Router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,WAAW,CAAiC;gBAExC,GAAG,EAAE,WAAW;IAI5B;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK;IAI5C;;;OAGG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK;IAI7C;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK;IAI5C;;;OAGG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK;IAI9C;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK;IAI/C;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK;IAI5C;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK;IAIrE;;OAEG;IACH,OAAO,CAAC,QAAQ;IAahB;;;OAGG;IACH,KAAK,CAAC,UAAU,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAMnE;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAKtC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAI1C;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;IACH,OAAO,CAAC,MAAM;IASd;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAWrD;;OAEG;IACG,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB1D;;OAEG;YACW,aAAa;IAqB3B;;OAEG;YACW,QAAQ;IAsBtB;;;OAGG;YACW,mBAAmB;IAqBjC;;;OAGG;YACW,oBAAoB;IAWlC;;OAEG;IACH,SAAS,IAAI,KAAK,EAAE;CAGrB"}
@@ -185,6 +185,10 @@ class Router {
185
185
  // Direct closure
186
186
  result = await action(req, res);
187
187
  }
188
+ else if (Array.isArray(action)) {
189
+ // Controller tuple: [ControllerClass, 'method']
190
+ result = await this.callControllerTuple(action, req, res);
191
+ }
188
192
  else if (typeof action === 'string') {
189
193
  // Controller@method string
190
194
  result = await this.callControllerAction(action, req, res);
@@ -194,6 +198,21 @@ class Router {
194
198
  res.send(result);
195
199
  }
196
200
  }
201
+ /**
202
+ * Call a controller action using tuple format
203
+ * Laravel-style: [UserController, 'index']
204
+ */
205
+ async callControllerTuple(action, req, res) {
206
+ const [ControllerClass, methodName] = action;
207
+ // Resolve the controller from the container
208
+ const controller = this.app.make(ControllerClass);
209
+ // Verify the method exists on the controller
210
+ if (typeof controller[methodName] !== 'function') {
211
+ throw new Error(`Method [${methodName}] does not exist on controller [${ControllerClass.name}].`);
212
+ }
213
+ // Call the controller method
214
+ return await controller[methodName](req, res);
215
+ }
197
216
  /**
198
217
  * Call a controller action
199
218
  * Laravel: 'UserController@index'
@@ -1 +1 @@
1
- {"version":3,"file":"Router.js","sourceRoot":"","sources":["../../src/Routing/Router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Router.js","sourceRoot":"","sources":["../../src/Routing/Router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Injectable Decorator
3
+ *
4
+ * Marks a class as injectable, enabling TypeScript to emit decorator metadata
5
+ * required for automatic dependency injection via reflect-metadata.
6
+ *
7
+ * This decorator does nothing at runtime - it only triggers TypeScript's
8
+ * emitDecoratorMetadata feature to include parameter type information.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * @Injectable()
13
+ * export class UserController extends Controller {
14
+ * constructor(private userService: UserService) {
15
+ * super();
16
+ * }
17
+ * }
18
+ * ```
19
+ */
20
+ export declare function Injectable(): ClassDecorator;
21
+ //# sourceMappingURL=Injectable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Injectable.d.ts","sourceRoot":"","sources":["../../src/Support/Injectable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,IAAI,cAAc,CAM3C"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Injectable = Injectable;
4
+ /**
5
+ * Injectable Decorator
6
+ *
7
+ * Marks a class as injectable, enabling TypeScript to emit decorator metadata
8
+ * required for automatic dependency injection via reflect-metadata.
9
+ *
10
+ * This decorator does nothing at runtime - it only triggers TypeScript's
11
+ * emitDecoratorMetadata feature to include parameter type information.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * @Injectable()
16
+ * export class UserController extends Controller {
17
+ * constructor(private userService: UserService) {
18
+ * super();
19
+ * }
20
+ * }
21
+ * ```
22
+ */
23
+ function Injectable() {
24
+ return (target) => {
25
+ // This decorator is intentionally empty.
26
+ // Its sole purpose is to trigger TypeScript's emitDecoratorMetadata
27
+ // feature, which adds reflection metadata to the class constructor.
28
+ };
29
+ }
30
+ //# sourceMappingURL=Injectable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Injectable.js","sourceRoot":"","sources":["../../src/Support/Injectable.ts"],"names":[],"mappings":";;AAmBA,gCAMC;AAzBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,UAAU;IACxB,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,yCAAyC;QACzC,oEAAoE;QACpE,oEAAoE;IACtE,CAAC,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -14,6 +14,7 @@ export { Controller } from './Routing/Controller';
14
14
  export { Facade } from './Support/Facade';
15
15
  export { Route } from './Facades/Route';
16
16
  export { loadRoutes, base_path, routes_path } from './Support/helpers';
17
+ export { Injectable } from './Support/Injectable';
17
18
  export { RouteServiceProvider } from './Providers/RouteServiceProvider';
18
19
  export { DatabaseServiceProvider } from './Database/DatabaseServiceProvider';
19
20
  export { DatabaseManager } from './Database/DatabaseManager';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGxC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAG7E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGpE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/H,YAAY,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAGnE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACzG,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,QAAQ,EACR,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,4CAA4C,CAAC;AACpD,YAAY,EACV,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AAGpC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3E,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACzE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGxC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAG7E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGpE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/H,YAAY,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAGnE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACzG,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,QAAQ,EACR,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,4CAA4C,CAAC;AACpD,YAAY,EACV,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AAGpC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3E,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACzE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * Main exports
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.softDeletes = exports.EnsembleCollection = exports.EnsembleBuilder = exports.Ensemble = exports.DB = exports.DrizzleAdapter = exports.raw = exports.Expression = exports.QueryBuilder = exports.Connection = exports.DatabaseManager = exports.DatabaseServiceProvider = exports.RouteServiceProvider = exports.routes_path = exports.base_path = exports.loadRoutes = exports.Route = exports.Facade = exports.Controller = exports.Response = exports.Request = exports.RouteClass = exports.Router = exports.Container = exports.Kernel = exports.ServiceProvider = exports.Application = void 0;
7
+ exports.softDeletes = exports.EnsembleCollection = exports.EnsembleBuilder = exports.Ensemble = exports.DB = exports.DrizzleAdapter = exports.raw = exports.Expression = exports.QueryBuilder = exports.Connection = exports.DatabaseManager = exports.DatabaseServiceProvider = exports.RouteServiceProvider = exports.Injectable = exports.routes_path = exports.base_path = exports.loadRoutes = exports.Route = exports.Facade = exports.Controller = exports.Response = exports.Request = exports.RouteClass = exports.Router = exports.Container = exports.Kernel = exports.ServiceProvider = exports.Application = void 0;
8
8
  // Foundation
9
9
  var Application_1 = require("./Foundation/Application");
10
10
  Object.defineProperty(exports, "Application", { enumerable: true, get: function () { return Application_1.Application; } });
@@ -36,6 +36,9 @@ var helpers_1 = require("./Support/helpers");
36
36
  Object.defineProperty(exports, "loadRoutes", { enumerable: true, get: function () { return helpers_1.loadRoutes; } });
37
37
  Object.defineProperty(exports, "base_path", { enumerable: true, get: function () { return helpers_1.base_path; } });
38
38
  Object.defineProperty(exports, "routes_path", { enumerable: true, get: function () { return helpers_1.routes_path; } });
39
+ // Decorators
40
+ var Injectable_1 = require("./Support/Injectable");
41
+ Object.defineProperty(exports, "Injectable", { enumerable: true, get: function () { return Injectable_1.Injectable; } });
39
42
  // Providers
40
43
  var RouteServiceProvider_1 = require("./Providers/RouteServiceProvider");
41
44
  Object.defineProperty(exports, "RouteServiceProvider", { enumerable: true, get: function () { return RouteServiceProvider_1.RouteServiceProvider; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,aAAa;AACb,wDAAuD;AAA9C,0GAAA,WAAW,OAAA;AACpB,gEAA+D;AAAtD,kHAAA,eAAe,OAAA;AACxB,mDAAkD;AAAzC,gGAAA,MAAM,OAAA;AAEf,YAAY;AACZ,mDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAElB,UAAU;AACV,2CAA0C;AAAjC,gGAAA,MAAM,OAAA;AACf,yCAAsD;AAA7C,mGAAA,KAAK,OAAc;AAC5B,6CAA4C;AAAnC,kGAAA,OAAO,OAAA;AAChB,+CAA8C;AAArC,oGAAA,QAAQ,OAAA;AACjB,mDAAkD;AAAzC,wGAAA,UAAU,OAAA;AAEnB,UAAU;AACV,2CAA0C;AAAjC,gGAAA,MAAM,OAAA;AACf,yCAAwC;AAA/B,8FAAA,KAAK,OAAA;AAEd,UAAU;AACV,6CAAuE;AAA9D,qGAAA,UAAU,OAAA;AAAE,oGAAA,SAAS,OAAA;AAAE,sGAAA,WAAW,OAAA;AAE3C,YAAY;AACZ,yEAAwE;AAA/D,4HAAA,oBAAoB,OAAA;AAC7B,8EAA6E;AAApE,kIAAA,uBAAuB,OAAA;AAEhC,WAAW;AACX,8DAA6D;AAApD,kHAAA,eAAe,OAAA;AACxB,oDAAmD;AAA1C,wGAAA,UAAU,OAAA;AACnB,oDAAmE;AAA1D,uGAAA,OAAO,OAAgB;AAChC,0DAA8D;AAArD,wGAAA,UAAU,OAAA;AAAE,iGAAA,GAAG,OAAA;AACxB,qEAAoE;AAA3D,gHAAA,cAAc,OAAA;AAEvB,mBAAmB;AACnB,mCAAkC;AAAzB,wFAAA,EAAE,OAAA;AAEX,eAAe;AACf,yDAAwD;AAA/C,oGAAA,QAAQ,OAAA;AACjB,uEAAsE;AAA7D,kHAAA,eAAe,OAAA;AACxB,6EAA4E;AAAnE,wHAAA,kBAAkB,OAAA;AAC3B,+DAA8D;AAArD,0GAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,aAAa;AACb,wDAAuD;AAA9C,0GAAA,WAAW,OAAA;AACpB,gEAA+D;AAAtD,kHAAA,eAAe,OAAA;AACxB,mDAAkD;AAAzC,gGAAA,MAAM,OAAA;AAEf,YAAY;AACZ,mDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAElB,UAAU;AACV,2CAA0C;AAAjC,gGAAA,MAAM,OAAA;AACf,yCAAsD;AAA7C,mGAAA,KAAK,OAAc;AAC5B,6CAA4C;AAAnC,kGAAA,OAAO,OAAA;AAChB,+CAA8C;AAArC,oGAAA,QAAQ,OAAA;AACjB,mDAAkD;AAAzC,wGAAA,UAAU,OAAA;AAEnB,UAAU;AACV,2CAA0C;AAAjC,gGAAA,MAAM,OAAA;AACf,yCAAwC;AAA/B,8FAAA,KAAK,OAAA;AAEd,UAAU;AACV,6CAAuE;AAA9D,qGAAA,UAAU,OAAA;AAAE,oGAAA,SAAS,OAAA;AAAE,sGAAA,WAAW,OAAA;AAE3C,aAAa;AACb,mDAAkD;AAAzC,wGAAA,UAAU,OAAA;AAEnB,YAAY;AACZ,yEAAwE;AAA/D,4HAAA,oBAAoB,OAAA;AAC7B,8EAA6E;AAApE,kIAAA,uBAAuB,OAAA;AAEhC,WAAW;AACX,8DAA6D;AAApD,kHAAA,eAAe,OAAA;AACxB,oDAAmD;AAA1C,wGAAA,UAAU,OAAA;AACnB,oDAAmE;AAA1D,uGAAA,OAAO,OAAgB;AAChC,0DAA8D;AAArD,wGAAA,UAAU,OAAA;AAAE,iGAAA,GAAG,OAAA;AACxB,qEAAoE;AAA3D,gHAAA,cAAc,OAAA;AAEvB,mBAAmB;AACnB,mCAAkC;AAAzB,wFAAA,EAAE,OAAA;AAEX,eAAe;AACf,yDAAwD;AAA/C,oGAAA,QAAQ,OAAA;AACjB,uEAAsE;AAA7D,kHAAA,eAAe,OAAA;AACxB,6EAA4E;AAAnE,wHAAA,kBAAkB,OAAA;AAC3B,+DAA8D;AAArD,0GAAA,WAAW,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orchestr-sh/orchestr",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,76 +0,0 @@
1
- /**
2
- * Eloquent Builder
3
- *
4
- * Extends the query builder to work with Eloquent models
5
- */
6
- import { Builder as QueryBuilder } from '../Query/Builder';
7
- import { DatabaseAdapter } from '../Contracts/DatabaseAdapter';
8
- import { Model } from './Model';
9
- export declare class Builder<T extends Model> extends QueryBuilder<T> {
10
- /**
11
- * The model being queried
12
- */
13
- protected model: T;
14
- /**
15
- * The relationships that should be eager loaded
16
- */
17
- protected eagerLoad: Record<string, any>;
18
- constructor(adapter: DatabaseAdapter, model: T);
19
- /**
20
- * Find a model by its primary key
21
- */
22
- find(id: any): Promise<T | null>;
23
- /**
24
- * Execute the query and get all results
25
- */
26
- get(): Promise<T[]>;
27
- /**
28
- * Get the first record
29
- */
30
- first(): Promise<T | null>;
31
- /**
32
- * Create a collection of models from plain arrays
33
- */
34
- protected hydrate(items: any[]): T[];
35
- /**
36
- * Create a new instance of the model
37
- */
38
- protected newModelInstance(attributes?: Record<string, any>, exists?: boolean): T;
39
- /**
40
- * Set the relationships that should be eager loaded
41
- */
42
- with(relations: string | string[]): this;
43
- /**
44
- * Create a new model and store it in the database
45
- */
46
- create(attributes: Record<string, any>): Promise<T>;
47
- /**
48
- * Update records in the database
49
- */
50
- update(values: Record<string, any>): Promise<number>;
51
- /**
52
- * Delete records from the database
53
- */
54
- delete(): Promise<number>;
55
- /**
56
- * Get a paginated result
57
- */
58
- paginate(perPage?: number, page?: number): Promise<{
59
- data: T[];
60
- total: number;
61
- perPage: number;
62
- currentPage: number;
63
- lastPage: number;
64
- from: number;
65
- to: number;
66
- }>;
67
- /**
68
- * Chunk the results of the query
69
- */
70
- chunk(count: number, callback: (models: T[]) => Promise<boolean | void>): Promise<void>;
71
- /**
72
- * Clone the query builder
73
- */
74
- clone(): Builder<T>;
75
- }
76
- //# sourceMappingURL=Builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../../src/Database/Eloquent/Builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,qBAAa,OAAO,CAAC,CAAC,SAAS,KAAK,CAAE,SAAQ,YAAY,CAAC,CAAC,CAAC;IAC3D;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;gBAElC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;IAM9C;;OAEG;IACG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAItC;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAKzB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAQhC;;OAEG;IACH,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;IAIpC;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,MAAM,GAAE,OAAe,GAAG,CAAC;IAQ5F;;OAEG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAUxC;;OAEG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAMzD;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/B;;OAEG;IACG,QAAQ,CAAC,OAAO,GAAE,MAAW,EAAE,IAAI,GAAE,MAAU,GAAG,OAAO,CAAC;QAC9D,IAAI,EAAE,CAAC,EAAE,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;IAqBF;;OAEG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB7F;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC;CAgBpB"}
@@ -1,154 +0,0 @@
1
- "use strict";
2
- /**
3
- * Eloquent Builder
4
- *
5
- * Extends the query builder to work with Eloquent models
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.Builder = void 0;
9
- const Builder_1 = require("../Query/Builder");
10
- class Builder extends Builder_1.Builder {
11
- /**
12
- * The model being queried
13
- */
14
- model;
15
- /**
16
- * The relationships that should be eager loaded
17
- */
18
- eagerLoad = {};
19
- constructor(adapter, model) {
20
- super(adapter);
21
- this.model = model;
22
- this.from(model.getTable());
23
- }
24
- /**
25
- * Find a model by its primary key
26
- */
27
- async find(id) {
28
- return this.where(this.model.getKeyName(), '=', id).first();
29
- }
30
- /**
31
- * Execute the query and get all results
32
- */
33
- async get() {
34
- const results = await super.get();
35
- return this.hydrate(results);
36
- }
37
- /**
38
- * Get the first record
39
- */
40
- async first() {
41
- const result = await super.first();
42
- if (!result) {
43
- return null;
44
- }
45
- return this.newModelInstance(result, true);
46
- }
47
- /**
48
- * Create a collection of models from plain arrays
49
- */
50
- hydrate(items) {
51
- return items.map((item) => this.newModelInstance(item, true));
52
- }
53
- /**
54
- * Create a new instance of the model
55
- */
56
- newModelInstance(attributes = {}, exists = false) {
57
- const ModelClass = this.model.constructor;
58
- const instance = new ModelClass(attributes);
59
- instance.exists = exists;
60
- instance.syncOriginal();
61
- return instance;
62
- }
63
- /**
64
- * Set the relationships that should be eager loaded
65
- */
66
- with(relations) {
67
- const relationArray = Array.isArray(relations) ? relations : [relations];
68
- for (const relation of relationArray) {
69
- this.eagerLoad[relation] = () => { };
70
- }
71
- return this;
72
- }
73
- /**
74
- * Create a new model and store it in the database
75
- */
76
- async create(attributes) {
77
- const instance = this.newModelInstance(attributes);
78
- await instance.save();
79
- return instance;
80
- }
81
- /**
82
- * Update records in the database
83
- */
84
- async update(values) {
85
- return await super.update(values);
86
- }
87
- /**
88
- * Delete records from the database
89
- */
90
- async delete() {
91
- return await super.delete();
92
- }
93
- /**
94
- * Get a paginated result
95
- */
96
- async paginate(perPage = 15, page = 1) {
97
- const total = await this.clone().count();
98
- const offset = (page - 1) * perPage;
99
- const data = await this.clone().offset(offset).limit(perPage).get();
100
- const lastPage = Math.ceil(total / perPage);
101
- const from = total > 0 ? offset + 1 : 0;
102
- const to = Math.min(offset + perPage, total);
103
- return {
104
- data,
105
- total,
106
- perPage,
107
- currentPage: page,
108
- lastPage,
109
- from,
110
- to,
111
- };
112
- }
113
- /**
114
- * Chunk the results of the query
115
- */
116
- async chunk(count, callback) {
117
- let page = 1;
118
- do {
119
- const results = await this.clone()
120
- .offset((page - 1) * count)
121
- .limit(count)
122
- .get();
123
- if (results.length === 0) {
124
- break;
125
- }
126
- const shouldContinue = await callback(results);
127
- if (shouldContinue === false) {
128
- break;
129
- }
130
- page++;
131
- } while (true);
132
- }
133
- /**
134
- * Clone the query builder
135
- */
136
- clone() {
137
- const cloned = new Builder(this.adapter, this.model);
138
- cloned._columns = [...this._columns];
139
- cloned._distinct = this._distinct;
140
- cloned._table = this._table;
141
- cloned._wheres = [...this._wheres];
142
- cloned._joins = [...this._joins];
143
- cloned._orders = [...this._orders];
144
- cloned._groups = [...this._groups];
145
- cloned._havings = [...this._havings];
146
- cloned._limit = this._limit;
147
- cloned._offset = this._offset;
148
- cloned._bindings = [...this._bindings];
149
- cloned.eagerLoad = { ...this.eagerLoad };
150
- return cloned;
151
- }
152
- }
153
- exports.Builder = Builder;
154
- //# sourceMappingURL=Builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../../src/Database/Eloquent/Builder.ts"],"names":[],"mappings":"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"}