@golemio/validator 0.2.1-dev.180070021 → 0.2.1-dev.524787371

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.
@@ -9,4 +9,5 @@ export interface IValidator {
9
9
  * @returns {boolean} Returns true or throw error
10
10
  */
11
11
  Validate(data: any): Promise<boolean>;
12
+ setLogger(logger: any): void;
12
13
  }
@@ -1,5 +1,6 @@
1
1
  import * as Ajv from "ajv";
2
2
  import { IValidator } from "./";
3
+ import { ILogger } from "./Logger";
3
4
  /**
4
5
  * JSON schema validator class. Validates data (object, array of objects, object with sub-objects)
5
6
  * according to a given json schema.
@@ -11,17 +12,25 @@ export declare class JSONSchemaValidator implements IValidator {
11
12
  protected jsonSchema: object;
12
13
  /** The Ajv instance */
13
14
  protected ajv: Ajv.Ajv;
15
+ protected strictValidator: JSONSchemaValidator | undefined;
16
+ protected logger: ILogger;
14
17
  /**
15
18
  * @param modelName Name of the model
16
19
  * @param jsonSchema JSON Schema object by which to validate the input data
17
20
  * @param strict sets coerceTypes = false for Avj ( https://ajv.js.org/#coercing-data-types )
18
21
  */
19
22
  constructor(modelName: string, jsonSchema: object, strict?: boolean);
23
+ /**
24
+ * Temporary wrapper to evaluate modules that are dependent on coerseType setting.
25
+ *
26
+ */
27
+ Validate(data: any): Promise<boolean>;
28
+ setLogger(logger: any): void;
20
29
  /**
21
30
  * Data validation - validates input data exactly by json schema
22
31
  *
23
32
  * @param {any} data Data to be validated by the validator's schema
24
33
  * @returns {boolean} Returns true or throws error
25
34
  */
26
- Validate(data: any): Promise<boolean>;
35
+ private ValidateInternal;
27
36
  }
@@ -1,13 +1,15 @@
1
1
  "use strict";
2
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
4
  return new (P || (P = Promise))(function (resolve, reject) {
4
5
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
6
  function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
9
  });
9
10
  };
10
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.JSONSchemaValidator = void 0;
11
13
  const Ajv = require("ajv");
12
14
  const Logger_1 = require("./Logger");
13
15
  /**
@@ -25,10 +27,32 @@ class JSONSchemaValidator {
25
27
  this.jsonSchema = jsonSchema;
26
28
  const options = { schemaId: "auto" };
27
29
  if (!strict) {
30
+ this.strictValidator = new JSONSchemaValidator(modelName, jsonSchema, true);
28
31
  options.coerceTypes = true;
29
32
  }
30
33
  this.ajv = new Ajv(options);
31
34
  this.ajv.addMetaSchema(require("ajv/lib/refs/json-schema-draft-04.json"));
35
+ this.logger = Logger_1.log;
36
+ }
37
+ /**
38
+ * Temporary wrapper to evaluate modules that are dependent on coerseType setting.
39
+ *
40
+ */
41
+ Validate(data) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ if (this.strictValidator) {
44
+ try {
45
+ return yield this.strictValidator.Validate(data);
46
+ }
47
+ catch (err) {
48
+ this.logger.warn(`Unable to finish strict validation for ${this.modelName}. Err message: ${err.message}`);
49
+ }
50
+ }
51
+ return this.ValidateInternal(data);
52
+ });
53
+ }
54
+ setLogger(logger) {
55
+ this.logger = logger;
32
56
  }
33
57
  /**
34
58
  * Data validation - validates input data exactly by json schema
@@ -36,7 +60,7 @@ class JSONSchemaValidator {
36
60
  * @param {any} data Data to be validated by the validator's schema
37
61
  * @returns {boolean} Returns true or throws error
38
62
  */
39
- Validate(data) {
63
+ ValidateInternal(data) {
40
64
  return __awaiter(this, void 0, void 0, function* () {
41
65
  try {
42
66
  const validate = this.ajv.compile(Object.assign({ $async: true }, this.jsonSchema));
@@ -44,7 +68,7 @@ class JSONSchemaValidator {
44
68
  return true;
45
69
  }
46
70
  catch (error) {
47
- Logger_1.log.debug(error);
71
+ this.logger.debug(error);
48
72
  if (error instanceof Ajv.ValidationError) {
49
73
  throw new Error(`${error.message} ${JSON.stringify(error.errors)}`);
50
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"JSONSchemaValidator.js","sourceRoot":"","sources":["../src/JSONSchemaValidator.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;AAEb,2BAA2B;AAE3B,qCAA+B;AAE/B;;;GAGG;AACH,MAAa,mBAAmB;IAS5B;;;;OAIG;IACH,YAAY,SAAiB,EAAE,UAAkB,EAAE,MAAM,GAAE,KAAK;QAC5D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,MAAM,OAAO,GAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAElD,IAAI,CAAC,MAAM,EAAE;YACT,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;SAC9B;QAED,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;OAKG;IACU,QAAQ,CAAC,IAAS;;YAC3B,IAAI;gBACA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,iBAAG,MAAM,EAAE,IAAI,IAAK,IAAI,CAAC,UAAU,EAAG,CAAC;gBACxE,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACrB,OAAO,IAAI,CAAC;aACf;YAAC,OAAO,KAAK,EAAE;gBACZ,YAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACjB,IAAI,KAAK,YAAY,GAAG,CAAC,eAAe,EAAE;oBACtC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;iBACvE;qBAAM;oBACH,MAAM,KAAK,CAAC;iBACf;aACJ;QACL,CAAC;KAAA;CAEJ;AAjDD,kDAiDC"}
1
+ {"version":3,"file":"JSONSchemaValidator.js","sourceRoot":"","sources":["../src/JSONSchemaValidator.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;AAEb,2BAA2B;AAE3B,qCAAwC;AAExC;;;GAGG;AACH,MAAa,mBAAmB;IAU5B;;;;OAIG;IACH,YAAY,SAAiB,EAAE,UAAkB,EAAE,MAAM,GAAG,KAAK;QAC7D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,MAAM,OAAO,GAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAElD,IAAI,CAAC,MAAM,EAAE;YACT,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YAC5E,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;SAC9B;QAED,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,GAAG,YAAG,CAAC;IACtB,CAAC;IACD;;;OAGG;IACU,QAAQ,CAAC,IAAS;;YAC3B,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI;oBACA,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBACpD;gBAAC,OAAO,GAAG,EAAE;oBACV,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,0CAA0C,IAAI,CAAC,SAAS,kBAAmB,GAAa,CAAC,OAAO,EAAE,CACrG,CAAC;iBACL;aACJ;YAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;KAAA;IAEM,SAAS,CAAC,MAAW;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACW,gBAAgB,CAAC,IAAS;;YACpC,IAAI;gBACA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,iBAC7B,MAAM,EAAE,IAAI,IACT,IAAI,CAAC,UAAU,EACpB,CAAC;gBACH,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAErB,OAAO,IAAI,CAAC;aACf;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACzB,IAAI,KAAK,YAAY,GAAG,CAAC,eAAe,EAAE;oBACtC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;iBACvE;qBAAM;oBACH,MAAM,KAAK,CAAC;iBACf;aACJ;QACL,CAAC;KAAA;CACJ;AA5ED,kDA4EC"}
package/dist/Logger.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as winston from "winston";
2
- interface ILogger {
2
+ export interface ILogger {
3
3
  error: winston.LeveledLogMethod;
4
4
  warn: winston.LeveledLogMethod;
5
5
  info: winston.LeveledLogMethod;
package/dist/Logger.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.log = void 0;
3
4
  /// Setup for logger - uses Winston logger for standard logging output and debug module for debugging logs
4
5
  const config_1 = require("./config");
5
6
  const debug = require("debug");
@@ -18,9 +19,7 @@ const logLevelToSet = config_1.default.log_level ? config_1.default.log_level.to
18
19
  const setFormat = winston.format.combine(winston.format.timestamp(), winston.format.colorize(), winston.format.align(), winston.format.printf(logFormat));
19
20
  const winstonLogger = winston.createLogger({
20
21
  format: setFormat,
21
- transports: [
22
- new winston.transports.Console({ level: logLevelToSet }),
23
- ],
22
+ transports: [new winston.transports.Console({ level: logLevelToSet })],
24
23
  });
25
24
  const logger = winstonLogger;
26
25
  exports.log = logger;
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":";;AAAA,0GAA0G;AAC1G,qCAA8B;AAE9B,+BAA+B;AAE/B,mCAAmC;AAEnC,MAAM,QAAQ,GAAmB,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAE5D;;GAEG;AACH,MAAM,SAAS,GAAG,CAAC,IAA+B,EAAU,EAAE;IAC1D,OAAO,IAAI,IAAI,CAAC,SAAS,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,gBAAM,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AAEjF;;GAEG;AACH,MAAM,SAAS,GAAmB,OAAO,CAAC,MAAM,CAAC,OAAO,CACpD,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EACtB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CACnC,CAAC;AAEF,MAAM,aAAa,GAAmB,OAAO,CAAC,YAAY,CAAC;IACvD,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE;QACR,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;KAC3D;CACJ,CAAC,CAAC;AAWH,MAAM,MAAM,GAAY,aAAa,CAAC;AAiBnB,qBAAG;AAftB,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;AACrC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;AAErC,4CAA4C;AAC5C,MAAM,CAAC,KAAK,GAAG,CAAC,SAAc,EAAE,GAAG,IAAW,EAAQ,EAAE;IACpD,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1B,eAAe,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,4CAA4C;AAC5C,MAAM,CAAC,KAAK,GAAG,CAAC,SAAc,EAAE,GAAG,IAAW,EAAQ,EAAE;IACpD,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1B,eAAe,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC,CAAC"}
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":";;;AAAA,0GAA0G;AAC1G,qCAA8B;AAE9B,+BAA+B;AAE/B,mCAAmC;AAEnC,MAAM,QAAQ,GAAmB,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAE5D;;GAEG;AACH,MAAM,SAAS,GAAG,CAAC,IAA+B,EAAU,EAAE;IAC1D,OAAO,IAAI,IAAI,CAAC,SAAS,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,gBAAM,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AAEjF;;GAEG;AACH,MAAM,SAAS,GAAmB,OAAO,CAAC,MAAM,CAAC,OAAO,CACpD,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EACtB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CACnC,CAAC;AAEF,MAAM,aAAa,GAAmB,OAAO,CAAC,YAAY,CAAC;IACvD,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;CACzE,CAAC,CAAC;AAWH,MAAM,MAAM,GAAY,aAAa,CAAC;AAiBnB,qBAAG;AAftB,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;AACrC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;AAErC,4CAA4C;AAC5C,MAAM,CAAC,KAAK,GAAG,CAAC,SAAc,EAAE,GAAG,IAAW,EAAQ,EAAE;IACpD,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1B,eAAe,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,4CAA4C;AAC5C,MAAM,CAAC,KAAK,GAAG,CAAC,SAAc,EAAE,GAAG,IAAW,EAAQ,EAAE;IACpD,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1B,eAAe,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC,CAAC"}
@@ -1,15 +1,16 @@
1
1
  "use strict";
2
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
4
  return new (P || (P = Promise))(function (resolve, reject) {
4
5
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
6
  function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
9
  });
9
10
  };
10
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ObjectKeysValidator = void 0;
11
13
  const _1 = require("./");
12
- const Logger_1 = require("./Logger");
13
14
  /**
14
15
  * Helper class for validation by mongoose model.
15
16
  */
@@ -35,7 +36,7 @@ class ObjectKeysValidator extends _1.Validator {
35
36
  }
36
37
  else {
37
38
  const error = "data must be object";
38
- Logger_1.log.debug(error);
39
+ this.logger.debug(error);
39
40
  throw new Error(error);
40
41
  }
41
42
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectKeysValidator.js","sourceRoot":"","sources":["../src/ObjectKeysValidator.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;AAGb,yBAA2C;AAC3C,qCAA+B;AAE/B;;GAEG;AACH,MAAa,mBAAoB,SAAQ,YAAS;IAE9C,YAAY,SAAiB,EAAE,YAA8B;QACzD,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACU,QAAQ,CAAC,IAAS;;YAC3B,IAAI,IAAI,YAAY,MAAM,EAAE;gBACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC1B,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;gBACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC5B,OAAO,IAAI,CAAC;aACf;iBAAM;gBACH,MAAM,KAAK,GAAG,qBAAqB,CAAC;gBACpC,YAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;aAC1B;QACL,CAAC;KAAA;IAED;;;;;OAKG;IACW,cAAc,CAAC,IAAS;;YAClC,IAAI,IAAI,YAAY,KAAK,EAAE;gBACvB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnB,OAAO,IAAI,CAAC;iBACf;qBAAM;oBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;wBAClC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;oBACzC,CAAC,CAAC,CAAC;oBACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC5B,OAAO,IAAI,CAAC;iBACf;aACJ;iBAAM;gBACH,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;aAC3C;QACL,CAAC;KAAA;CACJ;AAhDD,kDAgDC"}
1
+ {"version":3,"file":"ObjectKeysValidator.js","sourceRoot":"","sources":["../src/ObjectKeysValidator.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;AAGb,yBAA2C;AAE3C;;GAEG;AACH,MAAa,mBAAoB,SAAQ,YAAS;IAC9C,YAAY,SAAiB,EAAE,YAA8B;QACzD,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACU,QAAQ,CAAC,IAAS;;YAC3B,IAAI,IAAI,YAAY,MAAM,EAAE;gBACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC1B,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;gBACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC5B,OAAO,IAAI,CAAC;aACf;iBAAM;gBACH,MAAM,KAAK,GAAG,qBAAqB,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;aAC1B;QACL,CAAC;KAAA;IAED;;;;;OAKG;IACW,cAAc,CAAC,IAAS;;YAClC,IAAI,IAAI,YAAY,KAAK,EAAE;gBACvB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnB,OAAO,IAAI,CAAC;iBACf;qBAAM;oBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;wBAClC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;oBACzC,CAAC,CAAC,CAAC;oBACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC5B,OAAO,IAAI,CAAC;iBACf;aACJ;iBAAM;gBACH,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;aAC3C;QACL,CAAC;KAAA;CACJ;AA/CD,kDA+CC"}
@@ -1,5 +1,6 @@
1
1
  import { Model, SchemaDefinition } from "mongoose";
2
2
  import { IValidator } from "./";
3
+ import { ILogger } from "./Logger";
3
4
  /**
4
5
  * Mongoose validator class. Validates data (object, array of objects, object with sub-objects)
5
6
  * according to a given schema (Mongoose Schema Definition)
@@ -9,11 +10,13 @@ export declare class Validator implements IValidator {
9
10
  protected modelName: string;
10
11
  /** Reference to mongoose model object, used for validation */
11
12
  protected mongooseModel: Model<any>;
13
+ protected logger: ILogger;
12
14
  /**
13
15
  * @param modelName Name of the model
14
16
  * @param schemaObject Mongoose SchemaDefinition object by which to validate the input data
15
17
  */
16
18
  constructor(modelName: string, schemaObject: SchemaDefinition);
19
+ setLogger(logger: any): void;
17
20
  /**
18
21
  * Data validation - validates either an array of objects or a single object
19
22
  *
package/dist/Validator.js CHANGED
@@ -1,13 +1,15 @@
1
1
  "use strict";
2
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
4
  return new (P || (P = Promise))(function (resolve, reject) {
4
5
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
6
  function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
9
  });
9
10
  };
10
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Validator = void 0;
11
13
  const mongoose_1 = require("mongoose");
12
14
  const Logger_1 = require("./Logger");
13
15
  /**
@@ -22,11 +24,15 @@ class Validator {
22
24
  constructor(modelName, schemaObject) {
23
25
  this.modelName = modelName;
24
26
  try {
25
- this.mongooseModel = mongoose_1.model(this.modelName);
27
+ this.mongooseModel = (0, mongoose_1.model)(this.modelName);
26
28
  }
27
29
  catch (error) {
28
- this.mongooseModel = mongoose_1.model(this.modelName, new mongoose_1.Schema(schemaObject, { bufferCommands: false }));
30
+ this.mongooseModel = (0, mongoose_1.model)(this.modelName, new mongoose_1.Schema(schemaObject, { bufferCommands: false }));
29
31
  }
32
+ this.logger = Logger_1.log;
33
+ }
34
+ setLogger(logger) {
35
+ this.logger = logger;
30
36
  }
31
37
  /**
32
38
  * Data validation - validates either an array of objects or a single object
@@ -67,7 +73,7 @@ class Validator {
67
73
  return true;
68
74
  }
69
75
  catch (error) {
70
- Logger_1.log.debug(error);
76
+ this.logger.debug(error);
71
77
  throw error;
72
78
  }
73
79
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Validator.js","sourceRoot":"","sources":["../src/Validator.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;AAEb,uCAAkE;AAElE,qCAA+B;AAE/B;;;GAGG;AACH,MAAa,SAAS;IAOlB;;;OAGG;IACH,YAAY,SAAiB,EAAE,YAA8B;QACzD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI;YACA,IAAI,CAAC,aAAa,GAAG,gBAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC9C;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,aAAa,GAAG,gBAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,iBAAM,CAAC,YAAY,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;SACnG;IACL,CAAC;IAED;;;;;OAKG;IACU,QAAQ,CAAC,IAAS;;YAC3B,IAAI,IAAI,YAAY,KAAK,EAAE;gBACvB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnB,OAAO,IAAI,CAAC;iBACf;qBAAM;oBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;wBAClC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;oBACzC,CAAC,CAAC,CAAC;oBACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC5B,OAAO,IAAI,CAAC;iBACf;aACJ;iBAAM;gBACH,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;aAC3C;QACL,CAAC;KAAA;IAED;;;;;OAKG;IACa,eAAe,CAAC,IAAY;;YACxC,IAAI;gBACA,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACnD,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC;aACf;YAAC,OAAO,KAAK,EAAE;gBACZ,YAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACjB,MAAM,KAAK,CAAC;aACf;QACL,CAAC;KAAA;CAEJ;AA3DD,8BA2DC"}
1
+ {"version":3,"file":"Validator.js","sourceRoot":"","sources":["../src/Validator.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;AAEb,uCAAkE;AAElE,qCAAwC;AAExC;;;GAGG;AACH,MAAa,SAAS;IAOlB;;;OAGG;IACH,YAAY,SAAiB,EAAE,YAA8B;QACzD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI;YACA,IAAI,CAAC,aAAa,GAAG,IAAA,gBAAK,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC9C;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,aAAa,GAAG,IAAA,gBAAK,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,iBAAM,CAAC,YAAY,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;SACnG;QACD,IAAI,CAAC,MAAM,GAAG,YAAG,CAAC;IACtB,CAAC;IAEM,SAAS,CAAC,MAAW;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACU,QAAQ,CAAC,IAAS;;YAC3B,IAAI,IAAI,YAAY,KAAK,EAAE;gBACvB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnB,OAAO,IAAI,CAAC;iBACf;qBAAM;oBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;wBAClC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;oBACzC,CAAC,CAAC,CAAC;oBACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC5B,OAAO,IAAI,CAAC;iBACf;aACJ;iBAAM;gBACH,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;aAC3C;QACL,CAAC;KAAA;IAED;;;;;OAKG;IACa,eAAe,CAAC,IAAY;;YACxC,IAAI;gBACA,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACnD,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC;aACf;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACzB,MAAM,KAAK,CAAC;aACf;QACL,CAAC;KAAA;CACJ;AA/DD,8BA+DC"}
package/dist/index.js CHANGED
@@ -1,9 +1,21 @@
1
1
  "use strict";
2
- function __export(m) {
3
- for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4
- }
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
5
16
  Object.defineProperty(exports, "__esModule", { value: true });
6
- __export(require("./JSONSchemaValidator"));
7
- __export(require("./Validator"));
8
- __export(require("./ObjectKeysValidator"));
17
+ __exportStar(require("./IValidator"), exports);
18
+ __exportStar(require("./JSONSchemaValidator"), exports);
19
+ __exportStar(require("./Validator"), exports);
20
+ __exportStar(require("./ObjectKeysValidator"), exports);
9
21
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,2CAAsC;AACtC,iCAA4B;AAC5B,2CAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;AACb,+CAA6B;AAC7B,wDAAsC;AACtC,8CAA4B;AAC5B,wDAAsC"}
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@golemio/validator",
3
- "version": "0.2.1-dev.180070021",
3
+ "version": "0.2.1-dev.524787371",
4
4
  "description": "Library of Validator classes of the Golemio Data Platform System",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
8
- "prepublishOnly": "tsc",
9
- "build": "tsc",
10
- "build-watch": "tsc --watch --preserveWatchOutput",
8
+ "prepublishOnly": "tsc -p ./tsconfig.build.json",
9
+ "build": "tsc -p ./tsconfig.build.json",
10
+ "build-watch": "tsc -p ./tsconfig.build.json --watch --preserveWatchOutput",
11
11
  "test": "mocha -b --check-leaks --timeout 60000 -r ts-node/register -r dotenv/config --recursive test/*.test.ts --exit",
12
12
  "test-debug": "mocha --inspect-brk=9230 -b --check-leaks --timeout 60000 -r ts-node/register -r dotenv/config --recursive test/*.test.ts --exit",
13
13
  "code-coverage": "nyc mocha --check-leaks --timeout 60000 -r ts-node/register -r source-map-support/register -r dotenv/config --recursive test/*.test.ts --exit",
14
- "tslint": "tslint -p .",
14
+ "lint": "eslint \"{src,test}/**/*.ts\"",
15
15
  "generate-docs": "npx typedoc --readme \"./README.MD\" --name \"Golemio Validator\" --mode file --out docs/typedoc src"
16
16
  },
17
17
  "keywords": [],
@@ -22,24 +22,26 @@
22
22
  "url": "https://gitlab.com/operator-ict/golemio/code/validator"
23
23
  },
24
24
  "devDependencies": {
25
+ "@golemio/eslint-config": "^1.1.0",
25
26
  "@types/chai": "^4.1.7",
26
27
  "@types/chai-as-promised": "^7.1.0",
27
28
  "@types/debug": "^4.1.1",
28
29
  "@types/mocha": "^5.2.5",
29
30
  "@types/mongoose": "^5.5.11",
30
- "@types/node": "^12.6.8",
31
+ "@types/node": "^14.17.15",
31
32
  "@types/sinon": "^7.0.13",
32
33
  "@types/winston": "^2.4.4",
33
34
  "chai": "^4.2.0",
34
35
  "chai-as-promised": "^7.1.1",
35
- "husky": "^3.0.0",
36
- "mocha": "^5.2.0",
36
+ "eslint": "^8.13.0",
37
+ "husky": "^4.3.7",
38
+ "mocha": "^6.2.3",
37
39
  "nyc": "^14.1.1",
40
+ "prettier": "^2.6.2",
38
41
  "sinon": "^7.2.3",
39
- "ts-node": "^8.3.0",
40
- "tslint": "5.11.0",
41
- "typedoc": "^0.14.2",
42
- "typescript": "3.2.1"
42
+ "ts-node": "^9.1.1",
43
+ "typedoc": "^0.22.0",
44
+ "typescript": "^4.4.4"
43
45
  },
44
46
  "dependencies": {
45
47
  "ajv": "^6.10.2",
@@ -48,6 +50,10 @@
48
50
  "mongoose": "^5.6.7",
49
51
  "winston": "^3.2.1"
50
52
  },
53
+ "resolutions": {
54
+ "minimist": "^1.2.6",
55
+ "winston": "^3.2.2"
56
+ },
51
57
  "nyc": {
52
58
  "check-coverage": true,
53
59
  "extension": [
@@ -75,7 +81,7 @@
75
81
  },
76
82
  "husky": {
77
83
  "hooks": {
78
- "pre-commit": "npm run tslint"
84
+ "pre-commit": "yarn lint"
79
85
  }
80
86
  }
81
87
  }