tuain-form-manager 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.
@@ -6,13 +6,16 @@ const { customizeFormDefinition } = require('./form-utils');
6
6
  const START_OPERATION = 'startOperation';
7
7
 
8
8
  class FormManager {
9
- constructor(rootPath, formsDefinitions, cacheManager, appLogger, errMgr, formClasses = null) {
9
+ constructor(rootPath, formsDefinitions, cacheManager, appLogger, errMgr, formClasses = null, debugMode = false) {
10
10
  this.rootPath = rootPath ?? '';
11
11
  this.formsDefinitions = formsDefinitions;
12
12
  this.formClasses = formClasses;
13
13
  this._formsSignature = null;
14
14
  this.logger = appLogger;
15
15
  this.errMgr = errMgr;
16
+ // Controla si el detalle de los errores expone el mensaje/stack de la excepción.
17
+ // Se propaga a cada instancia de formulario. Default seguro: false (no expone).
18
+ this.debugMode = debugMode ?? false;
16
19
  this.errMgr.addModuleSet('forms-lib', modErrs);
17
20
  this.getFormsSignature = () => this._formsSignature;
18
21
  this.calculateFormsSignature();
@@ -76,14 +79,15 @@ class FormManager {
76
79
  [errorObj, formDefinition] = await this.executeFormStart(requestContext, formDefinition, formCode);
77
80
  }
78
81
  } catch (err) {
79
- const errorDetail = `Excepción no controlada en ${formCode}: ${err.message}\n${err.stack}`;
82
+ const context = `Excepción no controlada en ${formCode}`;
83
+ const errorDetail = `${context}: ${err.message}\n${err.stack}`;
80
84
  this.logger.log({
81
85
  level: 'error',
82
86
  label: 'FormManager',
83
87
  action: 'getFormDefinition',
84
88
  message: errorDetail,
85
89
  });
86
- errorObj = this.errMgr.get(modErrs.getFormDefinition.formPopulateFail, errorDetail);
90
+ errorObj = this.errMgr.get(modErrs.getFormDefinition.formPopulateFail, this.debugMode ? errorDetail : context);
87
91
  }
88
92
  return [errorObj, formDefinition];
89
93
  }
@@ -186,6 +190,9 @@ class FormManager {
186
190
  errorObj = this.errMgr.get(modErrs.formActionExec.formNotFound, message);
187
191
  return [errorObj, null];
188
192
  }
193
+ // Propaga el modo depuración a la instancia del formulario para que sus
194
+ // manejadores de excepción decidan si exponen el mensaje/stack en el detalle.
195
+ formCustomObject.debugMode = this.debugMode;
189
196
  [errorObj, resultForm] = await formCustomObject.executeFormAction(actionCode);
190
197
  message = `END FORM ACTION ${formCode} / ${actionCode} / ${errorObj?.errorCode ?? ''}`;
191
198
  this.logger.log({
@@ -196,6 +203,7 @@ class FormManager {
196
203
  });
197
204
  return [errorObj, resultForm];
198
205
  } catch (err) {
206
+ const context = `Excepción no controlada. END BY EXCEPTION FORM ACTION ${formCode} / ${actionCode}`;
199
207
  message =
200
208
  `Excepción no controlada: ${err.message}\n${err.stack}` +
201
209
  `------ END BY EXCEPTION FORM ACTION ${formCode} / ${actionCode} ------`;
@@ -205,7 +213,7 @@ class FormManager {
205
213
  action: 'executeFormAction',
206
214
  message,
207
215
  });
208
- errorObj = this.errMgr.get(modErrs.formActionExec.formNotFound, message);
216
+ errorObj = this.errMgr.get(modErrs.formActionExec.formNotFound, this.debugMode ? message : context);
209
217
  return [errorObj, null];
210
218
  }
211
219
  }
package/lib/form.js CHANGED
@@ -73,6 +73,9 @@ class Form {
73
73
  constructor(logger, errMgr, requestContext, formDefinition, requestData) {
74
74
  this.logger = logger;
75
75
  this.errMgr = errMgr;
76
+ // Lo inyecta FormManager tras instanciar. Controla si el detalle del error
77
+ // expone el mensaje/stack de la excepción. Default seguro: false (no expone).
78
+ this.debugMode = false;
76
79
  this._errorObject = null;
77
80
  this._formDefinition = formDefinition;
78
81
 
@@ -745,9 +748,10 @@ class Form {
745
748
  try {
746
749
  errorObj = await callback(fieldCode, fieldValue);
747
750
  } catch (err) {
748
- message = `Excepción en validación de ${fieldCode}: ${err.message} / ${err.stack}`;
751
+ const context = `Excepción en validación de ${fieldCode}`;
752
+ message = `${context}: ${err.message} / ${err.stack}`;
749
753
  this.logger.log({ level: 'error', label: 'fieldValidation', action: fieldCode, message });
750
- errorObj = this.errMgr.get(modErrs.fieldValidation.exceptionNotHandled, message);
754
+ errorObj = this.errMgr.get(modErrs.fieldValidation.exceptionNotHandled, this.debugMode ? message : context);
751
755
  }
752
756
  return errorObj;
753
757
  }
@@ -773,9 +777,10 @@ class Form {
773
777
  try {
774
778
  errorObj = await callback(actionCode);
775
779
  } catch (err) {
776
- message = `Excepción en acción de ${actionCode}: ${err.message} / ${err.stack}`;
780
+ const context = `Excepción en acción de ${actionCode}`;
781
+ message = `${context}: ${err.message} / ${err.stack}`;
777
782
  this.logger.log({ level: 'error', label: 'executeFormAction', action: actionCode, message });
778
- errorObj = this.errMgr.get(modErrs.formActionExec.exceptionNotHandled, message);
783
+ errorObj = this.errMgr.get(modErrs.formActionExec.exceptionNotHandled, this.debugMode ? message : context);
779
784
  }
780
785
  return [errorObj, this.getExportData()];
781
786
  }
@@ -1053,9 +1058,10 @@ class Form {
1053
1058
  });
1054
1059
  errorObject = await tableActionCallback(tableCode, actionCode, tableRecordId, tableRecordData ?? {});
1055
1060
  } catch (err) {
1056
- message = `Excepción no soportada en acción ${actionCode} sobre la tabla ${tableCode} : ${err.message} / ${err.stack}`;
1061
+ const context = `Excepción no soportada en acción ${actionCode} sobre la tabla ${tableCode}`;
1062
+ message = `${context} : ${err.message} / ${err.stack}`;
1057
1063
  this.logger.log({ level: 'error', label: 'tableAction', action: actionCode, message });
1058
- errorObject = this.errMgr.get(modErrs.tableActionExec.noCallback, message);
1064
+ errorObject = this.errMgr.get(modErrs.tableActionExec.noCallback, this.debugMode ? message : context);
1059
1065
  }
1060
1066
  return errorObject;
1061
1067
  }
@@ -1086,9 +1092,10 @@ class Form {
1086
1092
  }
1087
1093
  errorObject = await tablePopulateCallback(tableCode, this.actionSubject);
1088
1094
  } catch (err) {
1089
- message = `Excepción no soportada en el poblamiento de la tabla ${tableCode} en ${this.formCode}: ${err} / ${err.stack}`;
1095
+ const context = `Excepción no soportada en el poblamiento de la tabla ${tableCode} en ${this.formCode}`;
1096
+ message = `${context}: ${err} / ${err.stack}`;
1090
1097
  this.logger.log({ level: 'error', label: 'executeTablePopulate', action: tableCode, message });
1091
- errorObject = this.errMgr.get(modErrs.tablePopulate.exceptionNotHandled, message);
1098
+ errorObject = this.errMgr.get(modErrs.tablePopulate.exceptionNotHandled, this.debugMode ? message : context);
1092
1099
  }
1093
1100
  return errorObject;
1094
1101
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tuain-form-manager",
3
- "version": "1.5.5",
3
+ "version": "1.5.6",
4
4
  "description": "Component library to perform operations on Tuain Development Framework forms to interchange information on web or mobile applications based on the data interchange of abstract forms making trnasformation on the data upon actions required on both sides (front and back)",
5
5
  "main": "index.js",
6
6
  "scripts": {