jcc-express-mvc 1.6.16 → 1.6.18

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.
@@ -11,6 +11,7 @@ export declare abstract class Container {
11
11
  alias(abstract: string, alias: string): void;
12
12
  resolve<T>(abstract: string, parameters?: any[], callFactory?: boolean): T;
13
13
  private isClass;
14
+ private canBeInstantiated;
14
15
  build<T>(concrete: any, parameters?: any[]): T;
15
16
  /**
16
17
  * Call a method with dependency injection
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../Framework/lib/Container/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAiIhE,8BAAsB,SAAS;IAC7B,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,OAAO,CAAkC;IAEjD,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAE,OAAe,GAAG,IAAI;IAI7D,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS;IAKhE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAIhD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAQ/C,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI5C,OAAO,CAAC,CAAC,EACP,QAAQ,EAAE,MAAM,EAChB,UAAU,GAAE,GAAG,EAAO,EACtB,WAAW,GAAE,OAAc,GAC1B,CAAC;IAsCJ,OAAO,CAAC,OAAO;IAIf,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,GAAE,GAAG,EAAO,GAAG,CAAC;IAoClD;;;;;OAKG;IACG,UAAU,CAAC,CAAC,GAAG,GAAG,EACtB,QAAQ,EAAE,GAAG,EACb,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,CAAC,CAAC;IAkDb;;;OAGG;IACH,OAAO,CAAC,aAAa;IAMrB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAO/B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../Framework/lib/Container/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAiIhE,8BAAsB,SAAS;IAC7B,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,OAAO,CAAkC;IAEjD,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAE,OAAe,GAAG,IAAI;IAI7D,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS;IAKhE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAIhD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAQ/C,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI5C,OAAO,CAAC,CAAC,EACP,QAAQ,EAAE,MAAM,EAChB,UAAU,GAAE,GAAG,EAAO,EACtB,WAAW,GAAE,OAAc,GAC1B,CAAC;IAsCJ,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,iBAAiB;IAazB,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,GAAE,GAAG,EAAO,GAAG,CAAC;IA8ClD;;;;;OAKG;IACG,UAAU,CAAC,CAAC,GAAG,GAAG,EACtB,QAAQ,EAAE,GAAG,EACb,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,CAAC,CAAC;IAsCb;;;OAGG;IACH,OAAO,CAAC,aAAa;IAMrB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAO/B"}
@@ -163,6 +163,19 @@ class Container {
163
163
  isClass(func) {
164
164
  return typeof func === "function" && /^\s*class\s+/.test(func.toString());
165
165
  }
166
+ canBeInstantiated(fn) {
167
+ try {
168
+ new new Proxy(fn, {
169
+ construct(target, args, newTarget) {
170
+ return {};
171
+ },
172
+ })();
173
+ return true;
174
+ }
175
+ catch {
176
+ return false;
177
+ }
178
+ }
166
179
  build(concrete, parameters = []) {
167
180
  if (typeof concrete === "function" && !this.isClass(concrete)) {
168
181
  return concrete(this, ...parameters);
@@ -189,7 +202,20 @@ class Container {
189
202
  else {
190
203
  injections = parameters;
191
204
  }
192
- return new concrete(...injections);
205
+ try {
206
+ if (this.canBeInstantiated(concrete)) {
207
+ return new concrete(...injections);
208
+ }
209
+ else {
210
+ return concrete;
211
+ }
212
+ }
213
+ catch (error) {
214
+ // console.log(this.canBeInstantiated(concrete));
215
+ // return concrete;
216
+ // console.log({ error: "Error" });
217
+ throw error;
218
+ }
193
219
  }
194
220
  /**
195
221
  * Call a method with dependency injection
@@ -203,21 +229,11 @@ class Container {
203
229
  if (methodDeps && methodDeps.length > 0) {
204
230
  const resolvedDeps = await Promise.all(methodDeps.map(async (dep) => {
205
231
  if (!dep || !dep.name || dep.name === "Object") {
206
- return null; // or throw / ignore
232
+ return { req, res, next };
207
233
  }
208
234
  const resolved = this.resolve(dep);
209
235
  if (resolved instanceof Jcc_eloquent_1.Model) {
210
- // const param = req.params[Str.kebab(dep.name)];
211
- // let dd = Object.keys(req.params).filter((param) => {
212
- // if (param.includes("$" + Str.kebab(dep.name))) {
213
- // const [column, data] = param.split(/\$/g);
214
- // return { column, data };
215
- // }
216
- // });
217
236
  return await (0, util_1.resolveModelBinding)(req, dep, resolved);
218
- // console.log(dd);
219
- // console.log(dd.includes(`$${dep.name}`));
220
- // return param ? await dep.find(param) : resolved;
221
237
  }
222
238
  if (resolved instanceof FormRequest_1.FormRequest) {
223
239
  return new dep(req);
@@ -225,7 +241,7 @@ class Container {
225
241
  return resolved;
226
242
  }));
227
243
  return instance[methodName].apply(instance, [
228
- { req, res, next },
244
+ // { req, res, next },
229
245
  ...resolvedDeps,
230
246
  ]);
231
247
  }
@@ -11,7 +11,7 @@ function Inject() {
11
11
  function Method() {
12
12
  return (target, propertyKey, descriptor) => {
13
13
  const paramTypes = Reflect.getMetadata("design:paramtypes", target, propertyKey) || [];
14
- const filteParams = paramTypes.filter((param) => param.name != "Object");
15
- Reflect.defineMetadata("inject:method:deps", filteParams, target, propertyKey);
14
+ // const filteParams = paramTypes.filter((param) => param.name != "Object");
15
+ Reflect.defineMetadata("inject:method:deps", paramTypes, target, propertyKey);
16
16
  };
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ExpressApplication.d.ts","sourceRoot":"","sources":["../../../Framework/lib/Express/ExpressApplication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC,qBAAa,kBAAmB,SAAQ,SAAS;;IAO/C,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,YAAY;CAWrB"}
1
+ {"version":3,"file":"ExpressApplication.d.ts","sourceRoot":"","sources":["../../../Framework/lib/Express/ExpressApplication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC,qBAAa,kBAAmB,SAAQ,SAAS;;IAO/C,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,YAAY;CAYrB"}
@@ -26,9 +26,10 @@ class ExpressApplication extends Container_1.Container {
26
26
  },
27
27
  });
28
28
  this.bind("httpListen", httpServer.listen.bind(httpServer));
29
- this.bind("io-on", socket.on.bind(socket));
30
- this.bind("io-off", socket.off.bind(socket));
31
- this.bind("io-once", socket.once.bind(socket));
29
+ this.bind("socketIo", socket, false);
30
+ // this.bind("io-on", socket.on.bind(socket));
31
+ // this.bind("io-off", socket.off.bind(socket));
32
+ // this.bind("io-once", socket.once.bind(socket));
32
33
  }
33
34
  }
34
35
  exports.ExpressApplication = ExpressApplication;
@@ -123,7 +123,7 @@ class BaseModel extends QueryBuilder_1.QueryBuilder {
123
123
  }
124
124
  toJSON() {
125
125
  // Apply casts and hide _attributes
126
- this.applyCasts();
126
+ // this.applyCasts();
127
127
  const data = {};
128
128
  // Add non-hidden _attributes
129
129
  for (const key in this._attributes) {
@@ -1,11 +1,9 @@
1
- import { Socket } from "socket.io";
1
+ import { DefaultEventsMap, Server } from "socket.io";
2
2
  import { Application } from "../Application/Application";
3
3
  import { ServiceProvider } from "./ServiceProvider";
4
4
  export declare class SocketProvider extends ServiceProvider {
5
5
  protected app: Application;
6
- protected on: Socket["on"];
7
- protected off: Socket["off"];
8
- protected once: Socket["once"];
6
+ protected io: Server<DefaultEventsMap, DefaultEventsMap, DefaultEventsMap, any>;
9
7
  constructor(app: Application);
10
8
  register(): void;
11
9
  boot(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"SocketServiceProvider.d.ts","sourceRoot":"","sources":["../../../Framework/lib/Providers/SocketServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,cAAe,SAAQ,eAAe;IAKrC,SAAS,CAAC,GAAG,EAAE,WAAW;IAJtC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAET,GAAG,EAAE,WAAW;IAOtC,QAAQ,IAAI,IAAI;IAEhB,IAAI,IAAI,IAAI;CACb"}
1
+ {"version":3,"file":"SocketServiceProvider.d.ts","sourceRoot":"","sources":["../../../Framework/lib/Providers/SocketServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,cAAe,SAAQ,eAAe;IAQrC,SAAS,CAAC,GAAG,EAAE,WAAW;IAPtC,SAAS,CAAC,EAAE,EAAE,MAAM,CAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,GAAG,CACJ,CAAC;gBAEoB,GAAG,EAAE,WAAW;IAOtC,QAAQ,IAAI,IAAI;IAEhB,IAAI,IAAI,IAAI;CACb"}
@@ -6,9 +6,7 @@ class SocketProvider extends ServiceProvider_1.ServiceProvider {
6
6
  constructor(app) {
7
7
  super(app);
8
8
  this.app = app;
9
- this.on = this.app.resolve("io-on", [], false);
10
- this.off = this.app.resolve("io-on", [], false);
11
- this.once = this.app.resolve("io-on", [], false);
9
+ this.io = this.app.resolve("socketIo", [], false);
12
10
  }
13
11
  register() { }
14
12
  boot() { }
@@ -1 +1 @@
1
- {"version":3,"file":"RouteBuilder.d.ts","sourceRoot":"","sources":["../../../Framework/lib/Routes/RouteBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAIL,cAAc,EACd,eAAe,EAEf,gBAAgB,EAChB,cAAc,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACb,MAAM,SAAS,CAAC;AAMjB,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAwB;IACjD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAS;IACjC,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC;IAC/C,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC;IAC5C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAkB;IAEvC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAOpC,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB;WAahD,YAAY,CAAC,GAAG,EAAE,MAAM;WAIxB,sBAAsB,CAClC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,UAAU,GAClB,OAAO,GAAG,UAAU;WAmBT,SAAS,CAAC,MAAM,EAAE,MAAM;IAItC,OAAO,CAAC,MAAM,CAAC,sBAAsB;WAKvB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,EAAE;WA4BpD,aAAa,CAAC,UAAU,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;WAIrD,UAAU,CACtB,UAAU,EAAE,cAAc,EAC1B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY;WAeV,mBAAmB,CAAC,SAAS,EAAE,WAAW;IAIxD,SAAS,CAAC,MAAM,CAAC,QAAQ,CACvB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,cAAc,GAAG,cAAc,EAAE,GAC5C,GAAG;IASN,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAC/B,QAAQ,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,GACpC,eAAe;IAwBlB,OAAO,CAAC,MAAM,CAAC,cAAc;WAgCf,aAAa,CAAC,GAAG,EAAE,kBAAkB;IAoBnD,WAAkB,SAAS,IAAI,UAAU,CAExC;CACF"}
1
+ {"version":3,"file":"RouteBuilder.d.ts","sourceRoot":"","sources":["../../../Framework/lib/Routes/RouteBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAIL,cAAc,EACd,eAAe,EAEf,gBAAgB,EAChB,cAAc,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACb,MAAM,SAAS,CAAC;AAMjB,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAwB;IACjD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAS;IACjC,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC;IAC/C,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC;IAC5C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAkB;IAEvC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAOpC,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB;WAahD,YAAY,CAAC,GAAG,EAAE,MAAM;WAIxB,sBAAsB,CAClC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,UAAU,GAClB,OAAO,GAAG,UAAU;WAmBT,SAAS,CAAC,MAAM,EAAE,MAAM;IAItC,OAAO,CAAC,MAAM,CAAC,sBAAsB;WAKvB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,EAAE;WA4BpD,aAAa,CAAC,UAAU,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;WAIrD,UAAU,CACtB,UAAU,EAAE,cAAc,EAC1B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY;WAeV,mBAAmB,CAAC,SAAS,EAAE,WAAW;IAIxD,SAAS,CAAC,MAAM,CAAC,QAAQ,CACvB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,cAAc,GAAG,cAAc,EAAE,GAC5C,GAAG;IASN,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAC/B,QAAQ,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,GACpC,eAAe;IAwBlB,OAAO,CAAC,MAAM,CAAC,cAAc;WAgCf,aAAa,CAAC,GAAG,EAAE,kBAAkB;IAsCnD,WAAkB,SAAS,IAAI,UAAU,CAExC;CACF"}
@@ -134,9 +134,27 @@ class RouteBuilder {
134
134
  this.baseRoute = "";
135
135
  this.routes.forEach((route) => {
136
136
  const middleware = route.middlewares;
137
- app[route.method](route.url, ...middleware, (0, util_1.asyncHandler)((req, res, next) => {
137
+ app[route.method](route.url, ...middleware, (0, util_1.asyncHandler)(async (req, res, next) => {
138
138
  const handler = this.resolveHandler(route.handler, route.Controller);
139
- return handler(req, res, next);
139
+ try {
140
+ const result = await handler(req, res, next);
141
+ // console.log(result);
142
+ if (res.headersSent)
143
+ return;
144
+ if (result !== undefined) {
145
+ if (typeof result === "object") {
146
+ return res.json(result);
147
+ }
148
+ else {
149
+ return res.send(String(result));
150
+ }
151
+ }
152
+ return res.send("");
153
+ }
154
+ catch (error) {
155
+ console.log("first");
156
+ next(error);
157
+ }
140
158
  }));
141
159
  });
142
160
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jcc-express-mvc",
3
- "version": "1.6.16",
3
+ "version": "1.6.18",
4
4
  "description": "express mvc structure",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",