@develia/commons 0.2.11 → 0.2.13

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@develia/commons",
3
- "version": "0.2.11",
3
+ "version": "0.2.13",
4
4
  "author": {
5
5
  "name": "Antonio Gil Espinosa",
6
6
  "email": "antonio.gil.espinosa@gmail.com",
package/src/functions.js CHANGED
@@ -1,13 +1,4 @@
1
1
  // noinspection JSUnusedGlobalSymbols
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); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  export function isString(value) {
12
3
  return typeof value === 'string';
13
4
  }
@@ -38,17 +29,18 @@ export function isBigInt(value) {
38
29
  export function isSymbol(value) {
39
30
  return typeof value === 'symbol';
40
31
  }
32
+ export function isNullOrUndefined(value) {
33
+ return value === null || typeof value === 'undefined';
34
+ }
41
35
  export function isEmpty(value) {
42
- return (isArray(value) && value.length === 0) ||
43
- (isString(value) && value === '') ||
44
- isNull(value) ||
45
- isUndefined(value);
36
+ return (Array.isArray(value) && value.length === 0) ||
37
+ (typeof value === 'string' && value === '') ||
38
+ value === null || typeof value === 'undefined';
46
39
  }
47
40
  export function isEmptyOrWhitespace(value) {
48
- return (isArray(value) && value.length === 0) ||
49
- (isString(value) && value.trim() === '') ||
50
- isNull(value) ||
51
- isUndefined(value);
41
+ return (Array.isArray(value) && value.length === 0) ||
42
+ (typeof value === 'string' && value.trim() === '') ||
43
+ value === null || typeof value === 'undefined';
52
44
  }
53
45
  export function ajaxSubmit(selectorOrElement) {
54
46
  const form = typeof selectorOrElement === 'string'
@@ -91,11 +83,11 @@ export function ajaxSubmission(selectorOrElement, onSuccess = null, onFailure =
91
83
  if (!(form instanceof HTMLFormElement)) {
92
84
  return;
93
85
  }
94
- form.addEventListener('submit', (event) => __awaiter(this, void 0, void 0, function* () {
86
+ form.addEventListener('submit', async (event) => {
95
87
  var _a;
96
88
  event.preventDefault();
97
89
  (_a = ajaxSubmit(form)) === null || _a === void 0 ? void 0 : _a.then(onSuccess).catch(onFailure);
98
- }));
90
+ });
99
91
  }
100
92
  export function deepClone(obj) {
101
93
  if (obj === null || typeof obj !== 'object') {
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["functions.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,MAAM,UAAU,QAAQ,CAAC,KAAU;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAU;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAU;IAChC,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAU;IAC/B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAU;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAU;IACjC,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAU;IAClC,OAAO,OAAO,KAAK,KAAK,WAAW,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAU;IAC7B,OAAO,KAAK,KAAK,IAAI,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAU;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAU;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAU;IACxC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAU;IAC9B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;QAC/C,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3C,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAU;IAC1C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;QAC/C,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QAClD,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC;AACvD,CAAC;AAGD,MAAM,UAAU,UAAU,CAAC,iBAA2C;IAElE,MAAM,IAAI,GAAG,OAAO,iBAAiB,KAAK,QAAQ;QAC9C,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC;QAC3C,CAAC,CAAC,iBAAiB,CAAC;IAExB,IAAI,CAAC,CAAC,IAAI,YAAY,eAAe,CAAC,EAAE,CAAC;QACrC,OAAO;IACX,CAAC;IAED,mDAAmD;IACnD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;QACtB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,KAAU;IAEnC,IAAI,KAAK,YAAY,OAAO;QACxB,OAAO,KAAK,CAAC;IAEjB,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;gBACvB,OAAO,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACvE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,iBAA2C,EAAE,SAAS,GAAG,IAAI,EAAE,SAAS,GAAG,IAAI;IAE1G,MAAM,IAAI,GAAG,OAAO,iBAAiB,KAAK,QAAQ;QAC9C,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC;QAC3C,CAAC,CAAC,iBAAiB,CAAC;IAExB,IAAI,CAAC,CAAC,IAAI,YAAY,eAAe,CAAC,EAAE,CAAC;QACrC,OAAO;IACX,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;QAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAA,UAAU,CAAC,IAAI,CAAC,0CAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AAGP,CAAC;AAGD,MAAM,UAAU,SAAS,CAAI,GAAM;IAC/B,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,GAAG,CAAC;IACf,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,GAAU,EAAE,CAAC;QACvB,KAAK,MAAM,OAAO,IAAI,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,IAAS,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACpB,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAE,GAA8B,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,CAAC;IACL,CAAC;IACD,OAAO,IAAS,CAAC;AACrB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAyB,EAAE,QAAkB,EAAE,YAAoB,EAAE;IAG5F,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAExB,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gBACxB,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YACnF,CAAC;iBAAM,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gBAC/B,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACrE,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5D,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjF,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC1B,MAAM,QAAQ,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,GAAG,CAAC;oBACzE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBACnD,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAChD,CAAC;yBAAM,CAAC;wBACJ,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBACpC,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;iBAAM,CAAC;gBACJ,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACrE,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAyB;IACtD,IAAI,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC9B,OAAO,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC"}
package/src/functions.ts CHANGED
@@ -40,18 +40,20 @@ export function isSymbol(value: any): value is symbol {
40
40
  return typeof value === 'symbol';
41
41
  }
42
42
 
43
+ export function isNullOrUndefined(value: any) {
44
+ return value === null || typeof value === 'undefined';
45
+ }
46
+
43
47
  export function isEmpty(value: any): boolean {
44
- return (isArray(value) && value.length === 0) ||
45
- (isString(value) && value === '') ||
46
- isNull(value) ||
47
- isUndefined(value);
48
+ return (Array.isArray(value) && value.length === 0) ||
49
+ (typeof value === 'string' && value === '') ||
50
+ value === null || typeof value === 'undefined';
48
51
  }
49
52
 
50
53
  export function isEmptyOrWhitespace(value: any): boolean {
51
- return (isArray(value) && value.length === 0) ||
52
- (isString(value) && value.trim() === '') ||
53
- isNull(value) ||
54
- isUndefined(value);
54
+ return (Array.isArray(value) && value.length === 0) ||
55
+ (typeof value === 'string' && value.trim() === '') ||
56
+ value === null || typeof value === 'undefined';
55
57
  }
56
58
 
57
59
 
package/src/index.js CHANGED
@@ -3,6 +3,7 @@ export {default as CacheDictionary} from './cache-dictionary.js';
3
3
  export {default as from, From} from './from.js';
4
4
  export * from './aliases.js';
5
5
  export {default as Timer} from './timer.js'
6
+ export {default as TimeSpan} from './timespan.js'
6
7
 
7
8
 
8
9
 
package/src/timer.js CHANGED
@@ -4,19 +4,43 @@ export default class Timer {
4
4
  * @param interval Seconds between calls
5
5
  */
6
6
  constructor(callback, interval) {
7
- this.callback = callback;
8
- this.interval = interval;
9
- this.intervalId = null;
7
+ this._callback = callback;
8
+ this._interval = interval;
9
+ this._intervalId = null;
10
+ }
11
+ get running() {
12
+ return this._intervalId !== null && this._intervalId !== undefined;
13
+ }
14
+ get interval() {
15
+ return this._interval;
16
+ }
17
+ set interval(value) {
18
+ if (value != this._interval) {
19
+ this._interval = value;
20
+ if (this.running)
21
+ this.restart();
22
+ }
23
+ }
24
+ get callback() {
25
+ return this._callback;
26
+ }
27
+ set callback(value) {
28
+ if (value != this._callback) {
29
+ this._callback = value;
30
+ }
10
31
  }
11
32
  start() {
12
- if (this.intervalId === null) {
13
- this.intervalId = setInterval(this.callback, this.interval);
33
+ if (this._intervalId === null) {
34
+ this._intervalId = setInterval(() => {
35
+ if (this._callback != null)
36
+ this._callback();
37
+ }, this._interval);
14
38
  }
15
39
  }
16
40
  stop() {
17
- if (this.intervalId !== null) {
18
- clearInterval(this.intervalId);
19
- this.intervalId = null;
41
+ if (this._intervalId !== null) {
42
+ clearInterval(this._intervalId);
43
+ this._intervalId = null;
20
44
  }
21
45
  }
22
46
  restart() {
package/src/timer.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"timer.js","sourceRoot":"","sources":["timer.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,KAAK;IAMtB;;;OAGG;IACH,YAAY,QAAkB,EAAE,QAAgB;QAC5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,KAAK;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChE,CAAC;IACL,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAC3B,CAAC;IACL,CAAC;IAED,OAAO;QACH,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;CACJ"}
1
+ {"version":3,"file":"timer.js","sourceRoot":"","sources":["timer.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,KAAK;IAMtB;;;OAGG;IACH,YAAY,QAAoB,EAAE,QAAgB;QAC9C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC;IACvE,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAI,QAAQ,CAAC,KAAa;QACtB,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,IAAI,CAAC,OAAO;gBACZ,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;IACL,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAI,QAAQ,CAAC,KAAiB;QAC1B,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,CAAC;IACL,CAAC;IAGD,KAAK;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;gBAChC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI;oBACtB,IAAI,CAAC,SAAS,EAAE,CAAC;YACzB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC5B,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,OAAO;QACH,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;CACJ"}
package/src/timer.ts CHANGED
@@ -1,29 +1,59 @@
1
1
  export default class Timer {
2
2
 
3
- private readonly callback: Function;
4
- private readonly interval: number;
5
- private intervalId: number | null;
3
+ private _callback: () => void;
4
+ private _interval: number;
5
+ private _intervalId: number | null;
6
6
 
7
7
  /**
8
8
  * @param callback Callback
9
9
  * @param interval Seconds between calls
10
10
  */
11
- constructor(callback: Function, interval: number) {
12
- this.callback = callback;
13
- this.interval = interval;
14
- this.intervalId = null;
11
+ constructor(callback: () => void, interval: number) {
12
+ this._callback = callback;
13
+ this._interval = interval;
14
+ this._intervalId = null;
15
15
  }
16
16
 
17
+ get running(): boolean {
18
+ return this._intervalId !== null && this._intervalId !== undefined;
19
+ }
20
+
21
+ get interval(): number {
22
+ return this._interval;
23
+ }
24
+
25
+ set interval(value: number) {
26
+ if (value != this._interval) {
27
+ this._interval = value;
28
+ if (this.running)
29
+ this.restart();
30
+ }
31
+ }
32
+
33
+ get callback(): () => void {
34
+ return this._callback;
35
+ }
36
+
37
+ set callback(value: () => void) {
38
+ if (value != this._callback) {
39
+ this._callback = value;
40
+ }
41
+ }
42
+
43
+
17
44
  start(): void {
18
- if (this.intervalId === null) {
19
- this.intervalId = setInterval(this.callback, this.interval);
45
+ if (this._intervalId === null) {
46
+ this._intervalId = setInterval(() => {
47
+ if (this._callback != null)
48
+ this._callback();
49
+ }, this._interval);
20
50
  }
21
51
  }
22
52
 
23
53
  stop(): void {
24
- if (this.intervalId !== null) {
25
- clearInterval(this.intervalId);
26
- this.intervalId = null;
54
+ if (this._intervalId !== null) {
55
+ clearInterval(this._intervalId);
56
+ this._intervalId = null;
27
57
  }
28
58
  }
29
59
 
@@ -0,0 +1,170 @@
1
+ class TimeSpan {
2
+ constructor(milliseconds) {
3
+ this.milliseconds = milliseconds;
4
+ }
5
+ // Obtener el intervalo de tiempo en segundos
6
+ seconds() {
7
+ return this.milliseconds / 1000;
8
+ }
9
+ // Obtener el intervalo de tiempo en minutos
10
+ minutes() {
11
+ return this.milliseconds / (1000 * 60);
12
+ }
13
+ // Obtener el intervalo de tiempo en horas
14
+ hours() {
15
+ return this.milliseconds / (1000 * 60 * 60);
16
+ }
17
+ // Obtener el intervalo de tiempo en días
18
+ days() {
19
+ return this.milliseconds / (1000 * 60 * 60 * 24);
20
+ }
21
+ // Obtener el intervalo de tiempo en semanas
22
+ weeks() {
23
+ return this.milliseconds / (1000 * 60 * 60 * 24 * 7);
24
+ }
25
+ // Constructor estático para crear un TimeSpan desde milisegundos
26
+ static fromMilliseconds(milliseconds) {
27
+ return new TimeSpan(milliseconds);
28
+ }
29
+ // Constructor estático para crear un TimeSpan desde segundos
30
+ static fromSeconds(seconds) {
31
+ return new TimeSpan(seconds * 1000);
32
+ }
33
+ // Constructor estático para crear un TimeSpan desde minutos
34
+ static fromMinutes(minutes) {
35
+ return new TimeSpan(minutes * 1000 * 60);
36
+ }
37
+ // Constructor estático para crear un TimeSpan desde horas
38
+ static fromHours(hours) {
39
+ return new TimeSpan(hours * 1000 * 60 * 60);
40
+ }
41
+ // Constructor estático para crear un TimeSpan desde días
42
+ static fromDays(days) {
43
+ return new TimeSpan(days * 1000 * 60 * 60 * 24);
44
+ }
45
+ // Constructor estático para crear un TimeSpan desde semanas
46
+ static fromWeeks(weeks) {
47
+ return new TimeSpan(weeks * 1000 * 60 * 60 * 24 * 7);
48
+ }
49
+ // Añadir un intervalo de tiempo
50
+ addMilliseconds(milliseconds) {
51
+ return new TimeSpan(this.milliseconds + milliseconds);
52
+ }
53
+ addSeconds(seconds) {
54
+ return this.addMilliseconds(seconds * 1000);
55
+ }
56
+ addMinutes(minutes) {
57
+ return this.addMilliseconds(minutes * 1000 * 60);
58
+ }
59
+ addHours(hours) {
60
+ return this.addMilliseconds(hours * 1000 * 60 * 60);
61
+ }
62
+ addDays(days) {
63
+ return this.addMilliseconds(days * 1000 * 60 * 60 * 24);
64
+ }
65
+ addWeeks(weeks) {
66
+ return this.addMilliseconds(weeks * 1000 * 60 * 60 * 24 * 7);
67
+ }
68
+ // Restar un intervalo de tiempo
69
+ subtractMilliseconds(milliseconds) {
70
+ return new TimeSpan(this.milliseconds - milliseconds);
71
+ }
72
+ subtractSeconds(seconds) {
73
+ return this.subtractMilliseconds(seconds * 1000);
74
+ }
75
+ subtractMinutes(minutes) {
76
+ return this.subtractMilliseconds(minutes * 1000 * 60);
77
+ }
78
+ subtractHours(hours) {
79
+ return this.subtractMilliseconds(hours * 1000 * 60 * 60);
80
+ }
81
+ subtractDays(days) {
82
+ return this.subtractMilliseconds(days * 1000 * 60 * 60 * 24);
83
+ }
84
+ subtractWeeks(weeks) {
85
+ return this.subtractMilliseconds(weeks * 1000 * 60 * 60 * 24 * 7);
86
+ }
87
+ // Añadir otro TimeSpan
88
+ add(other) {
89
+ return new TimeSpan(this.milliseconds + other.milliseconds);
90
+ }
91
+ // Restar otro TimeSpan
92
+ subtract(other) {
93
+ return new TimeSpan(this.milliseconds - other.milliseconds);
94
+ }
95
+ // Añadir un intervalo de tiempo a una fecha
96
+ addTo(date) {
97
+ return new Date(date.getTime() + this.milliseconds);
98
+ }
99
+ // Restar un intervalo de tiempo de una fecha
100
+ subtractFrom(date) {
101
+ return new Date(date.getTime() - this.milliseconds);
102
+ }
103
+ // Método estático para obtener la diferencia entre dos fechas
104
+ static fromDifference(smaller, bigger) {
105
+ return new TimeSpan(bigger.getTime() - smaller.getTime());
106
+ }
107
+ format(format = 'hh:mm:ss') {
108
+ const formatLower = format.toLowerCase();
109
+ const hasHours = formatLower.includes("h");
110
+ const hasMinutes = formatLower.includes("m");
111
+ let hours = 0, minutes = 0, seconds = Math.floor(this.milliseconds / 1000);
112
+ if (hasHours) {
113
+ hours = Math.floor(seconds / 3600);
114
+ seconds -= hours * 3600;
115
+ }
116
+ if (hasMinutes) {
117
+ minutes = Math.floor(seconds / 60);
118
+ seconds -= minutes * 60;
119
+ }
120
+ const hoursPadded = String(hours).padStart(2, '0');
121
+ const minutesPadded = String(minutes).padStart(2, '0');
122
+ const secondsPadded = String(seconds).padStart(2, '0');
123
+ return formatLower
124
+ .replace('hh', hoursPadded)
125
+ .replace('h', hours.toString())
126
+ .replace('mm', minutesPadded)
127
+ .replace('m', minutes.toString())
128
+ .replace('ss', secondsPadded)
129
+ .replace('s', seconds.toString());
130
+ }
131
+ eq(other) {
132
+ return this.milliseconds === other.milliseconds;
133
+ }
134
+ le(other) {
135
+ return this.milliseconds <= other.milliseconds;
136
+ }
137
+ lt(other) {
138
+ return this.milliseconds < other.milliseconds;
139
+ }
140
+ ge(other) {
141
+ return this.milliseconds >= other.milliseconds;
142
+ }
143
+ gt(other) {
144
+ return this.milliseconds > other.milliseconds;
145
+ }
146
+ multiply(number) {
147
+ return new TimeSpan(this.milliseconds * number);
148
+ }
149
+ divide(number) {
150
+ return new TimeSpan(this.milliseconds / number);
151
+ }
152
+ abs() {
153
+ return new TimeSpan(Math.abs(this.milliseconds));
154
+ }
155
+ isInfinite() {
156
+ return this.milliseconds === Number.POSITIVE_INFINITY || this.milliseconds === Number.NEGATIVE_INFINITY;
157
+ }
158
+ // Determinar si es un TimeSpan infinitamente positivo
159
+ isPositiveInfinite() {
160
+ return this.milliseconds === Number.POSITIVE_INFINITY;
161
+ }
162
+ // Determinar si es un TimeSpan infinitamente negativo
163
+ isNegativeInfinite() {
164
+ return this.milliseconds === Number.NEGATIVE_INFINITY;
165
+ }
166
+ }
167
+ TimeSpan.INFINITE = new TimeSpan(Number.POSITIVE_INFINITY);
168
+ TimeSpan.NEGATIVE_INFINITE = new TimeSpan(Number.NEGATIVE_INFINITY);
169
+ export default TimeSpan;
170
+ //# sourceMappingURL=timespan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timespan.js","sourceRoot":"","sources":["timespan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,217 @@
1
+ export default class TimeSpan {
2
+ public milliseconds: number;
3
+
4
+ private constructor(milliseconds: number) {
5
+ this.milliseconds = milliseconds;
6
+ }
7
+
8
+
9
+ // Obtener el intervalo de tiempo en segundos
10
+ seconds(): number {
11
+ return this.milliseconds / 1000;
12
+ }
13
+
14
+ // Obtener el intervalo de tiempo en minutos
15
+ minutes(): number {
16
+ return this.milliseconds / (1000 * 60);
17
+ }
18
+
19
+ // Obtener el intervalo de tiempo en horas
20
+ hours(): number {
21
+ return this.milliseconds / (1000 * 60 * 60);
22
+ }
23
+
24
+ // Obtener el intervalo de tiempo en días
25
+ days(): number {
26
+ return this.milliseconds / (1000 * 60 * 60 * 24);
27
+ }
28
+
29
+ // Obtener el intervalo de tiempo en semanas
30
+ weeks(): number {
31
+ return this.milliseconds / (1000 * 60 * 60 * 24 * 7);
32
+ }
33
+
34
+ // Constructor estático para crear un TimeSpan desde milisegundos
35
+ static fromMilliseconds(milliseconds: number): TimeSpan {
36
+ return new TimeSpan(milliseconds);
37
+ }
38
+
39
+ // Constructor estático para crear un TimeSpan desde segundos
40
+ static fromSeconds(seconds: number): TimeSpan {
41
+ return new TimeSpan(seconds * 1000);
42
+ }
43
+
44
+ // Constructor estático para crear un TimeSpan desde minutos
45
+ static fromMinutes(minutes: number): TimeSpan {
46
+ return new TimeSpan(minutes * 1000 * 60);
47
+ }
48
+
49
+ // Constructor estático para crear un TimeSpan desde horas
50
+ static fromHours(hours: number): TimeSpan {
51
+ return new TimeSpan(hours * 1000 * 60 * 60);
52
+ }
53
+
54
+ // Constructor estático para crear un TimeSpan desde días
55
+ static fromDays(days: number): TimeSpan {
56
+ return new TimeSpan(days * 1000 * 60 * 60 * 24);
57
+ }
58
+
59
+ // Constructor estático para crear un TimeSpan desde semanas
60
+ static fromWeeks(weeks: number): TimeSpan {
61
+ return new TimeSpan(weeks * 1000 * 60 * 60 * 24 * 7);
62
+ }
63
+
64
+ // Añadir un intervalo de tiempo
65
+ addMilliseconds(milliseconds: number): TimeSpan {
66
+ return new TimeSpan(this.milliseconds + milliseconds);
67
+ }
68
+
69
+ addSeconds(seconds: number): TimeSpan {
70
+ return this.addMilliseconds(seconds * 1000);
71
+ }
72
+
73
+ addMinutes(minutes: number): TimeSpan {
74
+ return this.addMilliseconds(minutes * 1000 * 60);
75
+ }
76
+
77
+ addHours(hours: number): TimeSpan {
78
+ return this.addMilliseconds(hours * 1000 * 60 * 60);
79
+ }
80
+
81
+ addDays(days: number): TimeSpan {
82
+ return this.addMilliseconds(days * 1000 * 60 * 60 * 24);
83
+ }
84
+
85
+ addWeeks(weeks: number): TimeSpan {
86
+ return this.addMilliseconds(weeks * 1000 * 60 * 60 * 24 * 7);
87
+ }
88
+
89
+ // Restar un intervalo de tiempo
90
+ subtractMilliseconds(milliseconds: number): TimeSpan {
91
+ return new TimeSpan(this.milliseconds - milliseconds);
92
+ }
93
+
94
+ subtractSeconds(seconds: number): TimeSpan {
95
+ return this.subtractMilliseconds(seconds * 1000);
96
+ }
97
+
98
+ subtractMinutes(minutes: number): TimeSpan {
99
+ return this.subtractMilliseconds(minutes * 1000 * 60);
100
+ }
101
+
102
+ subtractHours(hours: number): TimeSpan {
103
+ return this.subtractMilliseconds(hours * 1000 * 60 * 60);
104
+ }
105
+
106
+ subtractDays(days: number): TimeSpan {
107
+ return this.subtractMilliseconds(days * 1000 * 60 * 60 * 24);
108
+ }
109
+
110
+ subtractWeeks(weeks: number): TimeSpan {
111
+ return this.subtractMilliseconds(weeks * 1000 * 60 * 60 * 24 * 7);
112
+ }
113
+
114
+ // Añadir otro TimeSpan
115
+ add(other: TimeSpan): TimeSpan {
116
+ return new TimeSpan(this.milliseconds + other.milliseconds);
117
+ }
118
+
119
+ // Restar otro TimeSpan
120
+ subtract(other: TimeSpan): TimeSpan {
121
+ return new TimeSpan(this.milliseconds - other.milliseconds);
122
+ }
123
+
124
+ // Añadir un intervalo de tiempo a una fecha
125
+ addTo(date: Date): Date {
126
+ return new Date(date.getTime() + this.milliseconds);
127
+ }
128
+
129
+ // Restar un intervalo de tiempo de una fecha
130
+ subtractFrom(date: Date): Date {
131
+ return new Date(date.getTime() - this.milliseconds);
132
+ }
133
+
134
+ // Método estático para obtener la diferencia entre dos fechas
135
+ static fromDifference(smaller: Date, bigger: Date): TimeSpan {
136
+ return new TimeSpan(bigger.getTime() - smaller.getTime());
137
+ }
138
+
139
+ format(format: string = 'hh:mm:ss'): string {
140
+ const formatLower = format.toLowerCase();
141
+ const hasHours = formatLower.includes("h");
142
+ const hasMinutes = formatLower.includes("m");
143
+
144
+ let hours = 0, minutes = 0, seconds = Math.floor(this.milliseconds / 1000);
145
+
146
+ if (hasHours) {
147
+ hours = Math.floor(seconds / 3600);
148
+ seconds -= hours * 3600;
149
+ }
150
+ if (hasMinutes) {
151
+ minutes = Math.floor(seconds / 60);
152
+ seconds -= minutes * 60;
153
+ }
154
+
155
+ const hoursPadded = String(hours).padStart(2, '0');
156
+ const minutesPadded = String(minutes).padStart(2, '0');
157
+ const secondsPadded = String(seconds).padStart(2, '0');
158
+
159
+ return formatLower
160
+ .replace('hh', hoursPadded)
161
+ .replace('h', hours.toString())
162
+ .replace('mm', minutesPadded)
163
+ .replace('m', minutes.toString())
164
+ .replace('ss', secondsPadded)
165
+ .replace('s', seconds.toString());
166
+ }
167
+
168
+ eq(other: TimeSpan): boolean {
169
+ return this.milliseconds === other.milliseconds;
170
+ }
171
+
172
+ le(other: TimeSpan): boolean {
173
+ return this.milliseconds <= other.milliseconds;
174
+ }
175
+
176
+ lt(other: TimeSpan): boolean {
177
+ return this.milliseconds < other.milliseconds;
178
+ }
179
+
180
+ ge(other: TimeSpan): boolean {
181
+ return this.milliseconds >= other.milliseconds;
182
+ }
183
+
184
+ gt(other: TimeSpan): boolean {
185
+ return this.milliseconds > other.milliseconds;
186
+ }
187
+
188
+ multiply(number: number): TimeSpan {
189
+ return new TimeSpan(this.milliseconds * number);
190
+ }
191
+
192
+ divide(number: number): TimeSpan {
193
+ return new TimeSpan(this.milliseconds / number);
194
+ }
195
+
196
+ abs(): TimeSpan {
197
+ return new TimeSpan(Math.abs(this.milliseconds));
198
+ }
199
+
200
+ static readonly INFINITE = new TimeSpan(Number.POSITIVE_INFINITY);
201
+
202
+ static readonly NEGATIVE_INFINITE = new TimeSpan(Number.NEGATIVE_INFINITY);
203
+
204
+ isInfinite() {
205
+ return this.milliseconds === Number.POSITIVE_INFINITY || this.milliseconds === Number.NEGATIVE_INFINITY
206
+ }
207
+
208
+ // Determinar si es un TimeSpan infinitamente positivo
209
+ isPositiveInfinite(): boolean {
210
+ return this.milliseconds === Number.POSITIVE_INFINITY;
211
+ }
212
+
213
+ // Determinar si es un TimeSpan infinitamente negativo
214
+ isNegativeInfinite(): boolean {
215
+ return this.milliseconds === Number.NEGATIVE_INFINITY;
216
+ }
217
+ }
package/tsconfig.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "module": "ES6",
4
- "target": "ES6",
4
+ "target": "ES2017",
5
5
  "sourceMap": true,
6
6
  "strict": true,
7
7
  "esModuleInterop": true