@quatrain/core 1.1.14 → 1.1.16

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.
package/lib/Core.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { User } from './components/User';
2
2
  import { DataObjectClass } from './components/types/DataObjectClass';
3
- import logger from 'loglevel';
3
+ import { AbstractLoggerAdapter, LogLevel } from '@quatrain/log';
4
4
  export declare class Core {
5
5
  static me: string;
6
6
  static storage: any;
@@ -9,7 +9,10 @@ export declare class Core {
9
9
  static classRegistry: {
10
10
  [key: string]: any;
11
11
  };
12
- static logger: logger.RootLogger;
12
+ static logLevel: LogLevel;
13
+ static logger: AbstractLoggerAdapter;
14
+ static addLogger(alias?: string): any;
15
+ static setLogLevel(level: LogLevel): void;
13
16
  static timestamp: () => string;
14
17
  static definition(key: string): {
15
18
  manifest: {
@@ -27,16 +30,10 @@ export declare class Core {
27
30
  * @returns DataObjectClass
28
31
  */
29
32
  static getDataObjectClass(): DataObjectClass<any>;
30
- protected static formatLogMessage: (message: any, prefix?: string) => string;
31
- /**
32
- * Log message using defined logger
33
- * @param message string | object
34
- * @param level string
35
- */
36
- static log(message: any, level?: any): void;
37
- static debug(message: any): void;
38
- static warn(message: any): void;
39
- static info(message: any): void;
40
- static error(message: any): void;
41
- static trace(message: any): void;
33
+ static log(...message: any): void;
34
+ static debug(...message: any): void;
35
+ static warn(...message: any): void;
36
+ static info(...message: any): void;
37
+ static error(...message: any): void;
38
+ static trace(...message: any): void;
42
39
  }
package/lib/Core.js CHANGED
@@ -8,16 +8,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
11
  var _a;
15
12
  Object.defineProperty(exports, "__esModule", { value: true });
16
13
  exports.Core = void 0;
17
14
  const DataObject_1 = require("./components/DataObject");
18
15
  const User_1 = require("./components/User");
19
- const loglevel_1 = __importDefault(require("loglevel"));
16
+ const log_1 = require("@quatrain/log");
20
17
  class Core {
18
+ static addLogger(alias = this.name) {
19
+ return log_1.Log.addLogger('@' + alias, new log_1.DefaultLoggerAdapter(alias, this.logLevel), true);
20
+ }
21
+ static setLogLevel(level) {
22
+ this.logger.logLevel(level);
23
+ }
21
24
  static definition(key) {
22
25
  return {
23
26
  manifest: {
@@ -56,28 +59,23 @@ class Core {
56
59
  static getDataObjectClass() {
57
60
  return DataObject_1.DataObject.prototype;
58
61
  }
59
- /**
60
- * Log message using defined logger
61
- * @param message string | object
62
- * @param level string
63
- */
64
- static log(message, level = loglevel_1.default.levels.WARN) {
65
- _a.logger.log(_a.formatLogMessage(message));
62
+ static log(...message) {
63
+ return this.logger.log(message);
66
64
  }
67
- static debug(message) {
68
- _a.logger.debug(_a.formatLogMessage(message));
65
+ static debug(...message) {
66
+ return this.logger.debug(message);
69
67
  }
70
- static warn(message) {
71
- _a.logger.warn(_a.formatLogMessage(message));
68
+ static warn(...message) {
69
+ return this.logger.warn(message);
72
70
  }
73
- static info(message) {
74
- _a.logger.info(_a.formatLogMessage(message));
71
+ static info(...message) {
72
+ return this.logger.info(message);
75
73
  }
76
- static error(message) {
77
- _a.logger.error(_a.formatLogMessage(message));
74
+ static error(...message) {
75
+ return this.logger.error(message);
78
76
  }
79
- static trace(message) {
80
- _a.logger.trace(_a.formatLogMessage(message));
77
+ static trace(...message) {
78
+ return this.logger.trace(message);
81
79
  }
82
80
  }
83
81
  exports.Core = Core;
@@ -87,7 +85,7 @@ Core.storage = require('node-persist');
87
85
  Core.storagePrefix = 'core';
88
86
  Core.userClass = User_1.User;
89
87
  Core.classRegistry = {};
90
- Core.logger = loglevel_1.default;
88
+ Core.logLevel = log_1.LogLevel.WARN;
89
+ Core.logger = _a.addLogger();
91
90
  // How timestamp are formatted
92
91
  Core.timestamp = () => new Date().toISOString();
93
- Core.formatLogMessage = (message, prefix = _a.me) => `${_a.timestamp()} - [${_a.me}] ${typeof message === 'string' ? message : JSON.stringify(message)}`;
@@ -100,7 +100,7 @@ export declare class DataObject implements DataObjectType {
100
100
  ref: string;
101
101
  uri: string;
102
102
  };
103
- protected _dataToJSON(objectsAsReferences?: boolean, ignoreUnchanged?: boolean, converters?: {}): {};
103
+ protected _dataToJSON(objectsAsReferences?: boolean, ignoreUnchanged?: boolean, ignoreNulls?: boolean, converters?: {}): {};
104
104
  /**
105
105
  * Data object must be created from factory in order for async-loaded data to be available
106
106
  * @param className
@@ -228,24 +228,27 @@ class DataObject {
228
228
  }
229
229
  }
230
230
  toJSON(params = false) {
231
- let objectsAsReferences = false, withoutURIData = false, ignoreUnchanged = false, converters = {};
231
+ let objectsAsReferences = false, withoutURIData = false, ignoreUnchanged = false, ignoreNulls = false, converters = {};
232
232
  if (typeof params === 'object') {
233
233
  // Any missing parameter should resolve to false
234
234
  objectsAsReferences = Boolean(params.objectsAsReferences);
235
235
  withoutURIData = Boolean(params.withoutURIData);
236
236
  ignoreUnchanged = Boolean(params.ignoreUnchanged);
237
+ ignoreNulls = Boolean(params.ignoreNulls);
237
238
  converters = params.converters;
238
239
  }
239
240
  return Object.assign(Object.assign({}, (!withoutURIData &&
240
- this.uri && { uid: this.uri.uid, path: this.uri.path })), this._dataToJSON(objectsAsReferences, ignoreUnchanged, converters));
241
+ this.uri && { uid: this.uri.uid, path: this.uri.path })), this._dataToJSON(objectsAsReferences, ignoreUnchanged, ignoreNulls, converters));
241
242
  }
242
243
  toReference() {
243
244
  return Object.assign(Object.assign({}, this._objectUri.toReference()), { label: this.val('name') || '' });
244
245
  }
245
- _dataToJSON(objectsAsReferences = false, ignoreUnchanged = false, converters = {}) {
246
+ _dataToJSON(objectsAsReferences = false, ignoreUnchanged = false, ignoreNulls = false, converters = {}) {
246
247
  const data = {};
247
248
  Object.keys(this._properties).forEach((key) => {
248
249
  const prop = Reflect.get(this._properties, key);
250
+ if (ignoreNulls && !prop.val())
251
+ return;
249
252
  if (ignoreUnchanged && prop.hasChanged === false)
250
253
  return;
251
254
  // console.log(prop.constructor.name);
@@ -7,6 +7,7 @@ export interface UserType extends BaseObjectType {
7
7
  birthday?: Date;
8
8
  password: string;
9
9
  email: string;
10
+ [x: string]: any;
10
11
  }
11
12
  export declare const UserProperties: any;
12
13
  export declare class User extends BaseObject {
@@ -2,6 +2,7 @@ export type toJSONParams = {
2
2
  objectsAsReferences?: boolean;
3
3
  withoutURIData?: boolean;
4
4
  ignoreUnchanged?: boolean;
5
+ ignoreNulls?: boolean;
5
6
  converters?: {
6
7
  [propType: string]: Function;
7
8
  };
@@ -14,7 +14,10 @@ class BaseProperty {
14
14
  this._name = config.name;
15
15
  this._protected = config.protected || false;
16
16
  this._mandatory = config.mandatory || false;
17
- this._defaultValue = config.defaultValue;
17
+ this._defaultValue =
18
+ typeof config.defaultValue === 'function'
19
+ ? config.defaultValue()
20
+ : config.defaultValue;
18
21
  this._value = config.defaultValue;
19
22
  this._hasChanged = false;
20
23
  this._htmlType = config.htmlType || 'off';
@@ -3,4 +3,5 @@ export interface AbstractPropertyType {
3
3
  name: string;
4
4
  id?: string;
5
5
  type?: PropertyTypes;
6
+ defaultValue?: any;
6
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quatrain/core",
3
- "version": "1.1.14",
3
+ "version": "1.1.16",
4
4
  "description": "Core objects for business apps",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -24,6 +24,7 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@faker-js/faker": "^7.6.0",
27
+ "@quatrain/log": "^0.1.3",
27
28
  "loglevel": "^1.9.2",
28
29
  "node-persist": "^4.0.3"
29
30
  },