@itrocks/framework 0.2.4 → 0.2.5

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.
@@ -48,7 +48,9 @@ async function propertyOutput(object, property) {
48
48
  }
49
49
  function bind() {
50
50
  (0, class_view_1.classViewDependsOn)({ propertyOutput, requiredOf: required_1.requiredOf, tr: translate_1.tr });
51
- (0, storage_1.createDataSource)(config_1.config.dataSource);
51
+ if (config_1.config.dataSource) {
52
+ (0, storage_1.createDataSource)(config_1.config.dataSource);
53
+ }
52
54
  (0, collection_1.initCollection)();
53
55
  (0, core_transformers_1.initCoreTransformers)({
54
56
  displayOf: property_view_1.displayOf,
package/cjs/main.js CHANGED
@@ -9,6 +9,7 @@ const class_type_1 = require("@itrocks/class-type");
9
9
  const config_1 = require("@itrocks/config");
10
10
  const fastify_1 = require("@itrocks/fastify");
11
11
  const fastify_file_session_store_1 = require("@itrocks/fastify-file-session-store");
12
+ const request_response_1 = require("@itrocks/request-response");
12
13
  const route_1 = require("@itrocks/route");
13
14
  const store_1 = require("@itrocks/store");
14
15
  const template_1 = require("@itrocks/template");
@@ -17,7 +18,9 @@ const node_path_2 = require("node:path");
17
18
  template_1.frontScripts.push('/node_modules/air-datepicker/locale/en.js', '/node_modules/air-datepicker/locale/fr.js');
18
19
  async function execute(request) {
19
20
  // Access control
20
- if (!request.request.session.user && !config_1.config.access.free.includes(request.route + '/' + request.action)) {
21
+ if ((config_1.config.access?.free !== '*')
22
+ && !request.request.session.user
23
+ && !config_1.config.access?.free?.includes(request.route + '/' + request.action)) {
21
24
  request.action = 'login';
22
25
  request.route = '/user';
23
26
  }
@@ -44,14 +47,14 @@ async function execute(request) {
44
47
  console.error('Action ' + request.route + '/' + request.action + ' needs at least one object');
45
48
  throw 'Action ' + request.route + '/' + request.action + ' needs at least one ';
46
49
  }
47
- return action[request.format](request);
50
+ return toResponse(await action[request.format](request));
48
51
  }
49
52
  }
50
53
  // ActionFunction module
51
- return module(request);
54
+ return toResponse(await module(request));
52
55
  }
53
56
  async function run() {
54
- await (0, route_1.loadRoutes)(route_1.routes, config_1.config.routes);
57
+ await (0, route_1.loadRoutes)(route_1.routes, config_1.config.routes ?? {});
55
58
  (0, action_request_1.actionRequestDependsOn)({ getModule: route_1.routes.resolve.bind(route_1.routes) });
56
59
  return new fastify_1.FastifyServer({
57
60
  assetPath: app_dir_1.appDir,
@@ -62,8 +65,13 @@ async function run() {
62
65
  manifest: config_1.config.container?.manifest,
63
66
  port: config_1.config.server.port,
64
67
  scriptCalls: ['loadCss', 'loadScript'],
65
- secret: config_1.config.session.secret ?? config_1.config.secret ?? 'defaultSecret',
68
+ secret: config_1.config.session.secret ?? config_1.config.secret ?? 'defaultSecretHaving32CharactersOrGreater',
66
69
  store: new fastify_file_session_store_1.FileStore((0, node_path_2.normalize)((0, node_path_1.join)(app_dir_1.appDir, config_1.config.session.path)))
67
70
  }).run();
68
71
  }
72
+ function toResponse(mixedResponse) {
73
+ return (typeof mixedResponse === 'string')
74
+ ? new request_response_1.Response(mixedResponse)
75
+ : mixedResponse;
76
+ }
69
77
  //# sourceMappingURL=main.js.map
package/package.json CHANGED
@@ -96,5 +96,5 @@
96
96
  "build:front": "tsc -p src/front/tsconfig.json && sed -i 's#../../##g' *.js *.d.ts"
97
97
  },
98
98
  "types": "./cjs/framework.d.ts",
99
- "version": "0.2.4"
99
+ "version": "0.2.5"
100
100
  }