@zajno/common 1.3.8 → 1.3.9

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.
Files changed (90) hide show
  1. package/coverage/clover.xml +164 -162
  2. package/coverage/coverage-final.json +6 -6
  3. package/coverage/lcov-report/index.html +7 -7
  4. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  5. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
  6. package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
  7. package/coverage/lcov-report/src/async/index.html +1 -1
  8. package/coverage/lcov-report/src/dates/calc.ts.html +2 -2
  9. package/coverage/lcov-report/src/dates/convert.ts.html +7 -40
  10. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  11. package/coverage/lcov-report/src/dates/format.ts.html +8 -5
  12. package/coverage/lcov-report/src/dates/index.html +13 -13
  13. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  14. package/coverage/lcov-report/src/dates/parse.ts.html +42 -6
  15. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/shift.ts.html +2 -2
  17. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/yearDate.ts.html +2 -2
  19. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  20. package/coverage/lcov-report/src/event.ts.html +1 -1
  21. package/coverage/lcov-report/src/fields/index.html +1 -1
  22. package/coverage/lcov-report/src/fields/update.ts.html +1 -1
  23. package/coverage/lcov-report/src/index.html +1 -1
  24. package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
  25. package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
  26. package/coverage/lcov-report/src/logger/console.ts.html +1 -1
  27. package/coverage/lcov-report/src/logger/index.html +1 -1
  28. package/coverage/lcov-report/src/logger/index.ts.html +1 -1
  29. package/coverage/lcov-report/src/logger/named.ts.html +1 -1
  30. package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
  31. package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
  32. package/coverage/lcov-report/src/math/calc.ts.html +1 -1
  33. package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
  34. package/coverage/lcov-report/src/math/index.html +1 -1
  35. package/coverage/lcov-report/src/math/index.ts.html +1 -1
  36. package/coverage/lcov-report/src/transitionObserver.ts.html +2 -2
  37. package/coverage/lcov-report/src/types.ts.html +1 -1
  38. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  39. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  40. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  41. package/coverage/lcov-report/src/validation/index.html +1 -1
  42. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  43. package/coverage/lcov-report/src/validation/types.ts.html +1 -1
  44. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  45. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  46. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
  47. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
  48. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
  49. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
  50. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
  51. package/coverage/lcov-report/src/viewModels/index.html +1 -1
  52. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
  53. package/coverage/lcov.info +316 -314
  54. package/lib/dates/calc.js +3 -3
  55. package/lib/dates/calc.js.map +1 -1
  56. package/lib/dates/convert.d.ts +0 -2
  57. package/lib/dates/convert.d.ts.map +1 -1
  58. package/lib/dates/convert.js +10 -20
  59. package/lib/dates/convert.js.map +1 -1
  60. package/lib/dates/format.d.ts.map +1 -1
  61. package/lib/dates/format.js +4 -3
  62. package/lib/dates/format.js.map +1 -1
  63. package/lib/dates/parse.d.ts +2 -0
  64. package/lib/dates/parse.d.ts.map +1 -1
  65. package/lib/dates/parse.js +12 -1
  66. package/lib/dates/parse.js.map +1 -1
  67. package/lib/dates/shift.js +6 -6
  68. package/lib/dates/shift.js.map +1 -1
  69. package/lib/dates/yearDate.js +3 -3
  70. package/lib/dates/yearDate.js.map +1 -1
  71. package/lib/disposer.d.ts +22 -0
  72. package/lib/disposer.d.ts.map +1 -0
  73. package/lib/disposer.js +65 -0
  74. package/lib/disposer.js.map +1 -0
  75. package/lib/transitionObserver.d.ts +1 -1
  76. package/lib/transitionObserver.d.ts.map +1 -1
  77. package/lib/unsubscriber.d.ts +1 -20
  78. package/lib/unsubscriber.d.ts.map +1 -1
  79. package/lib/unsubscriber.js +6 -56
  80. package/lib/unsubscriber.js.map +1 -1
  81. package/package.json +1 -1
  82. package/src/dates/calc.ts +1 -1
  83. package/src/dates/convert.ts +1 -12
  84. package/src/dates/format.ts +2 -1
  85. package/src/dates/parse.ts +12 -0
  86. package/src/dates/shift.ts +1 -1
  87. package/src/dates/yearDate.ts +1 -1
  88. package/src/disposer.ts +81 -0
  89. package/src/transitionObserver.ts +1 -1
  90. package/src/unsubscriber.ts +9 -75
@@ -1,5 +1,6 @@
1
1
  import * as MathX from '../math';
2
- import { decompose, decomposeDate, getDate, getDiscreteDiff, getTime } from './convert';
2
+ import { decompose, decomposeDate, getDiscreteDiff } from './convert';
3
+ import { getDate, getTime } from './parse';
3
4
  import { YearDate } from './yearDate';
4
5
 
5
6
  export namespace Format {
@@ -1,4 +1,16 @@
1
1
 
2
+ export function getTime(d: Date | number): number {
3
+ return d instanceof Date ? d.getTime() : d;
4
+ }
5
+
6
+ export function getDate(d: Date | number | string): Date {
7
+ if (!d) {
8
+ return null;
9
+ }
10
+
11
+ return new Date(d);
12
+ }
13
+
2
14
  export namespace Parse {
3
15
  /** `YYYY-MM-DD` */
4
16
  export function fromDatePicker(str: string, local = false) {
@@ -1,4 +1,4 @@
1
- import { getDate, getTime } from './convert';
1
+ import { getDate, getTime } from './parse';
2
2
  import { DateX } from './datex';
3
3
  import { ConstantGranularity, Granularity } from './types';
4
4
 
@@ -1,4 +1,4 @@
1
- import { getDate } from './convert';
1
+ import { getDate } from './parse';
2
2
 
3
3
  /** Useful for recurring dates like birthday */
4
4
  export type YearDate = { day: number, month: number };
@@ -0,0 +1,81 @@
1
+ import logger from './logger';
2
+
3
+ export interface IDisposable {
4
+ dispose(): void;
5
+ }
6
+
7
+ export interface DisposeFunction {
8
+ (): void;
9
+ }
10
+
11
+ export class Disposer {
12
+
13
+ private readonly _disposers: DisposeFunction[] = [];
14
+ private readonly _map = new Map<string, DisposeFunction>();
15
+
16
+ constructor(readonly logName: string = null) { }
17
+
18
+ add(d: DisposeFunction | IDisposable, id?: string) {
19
+ if (!d) {
20
+ return;
21
+ }
22
+
23
+ const dd: DisposeFunction = typeof d !== 'function'
24
+ ? (() => d.dispose ? d.dispose() : null)
25
+ : d;
26
+
27
+ this._disposers.push(dd);
28
+
29
+ if (id) {
30
+ // dispose previous identified disposer
31
+ if (this._map.has(id)) {
32
+ this.execute(id);
33
+ }
34
+
35
+ this._map.set(id, dd);
36
+ }
37
+ }
38
+
39
+ execute(id: string) {
40
+ const d = this._map.get(id);
41
+ if (!d) {
42
+ return;
43
+ }
44
+
45
+ this._map.delete(id);
46
+ const i = this._disposers.indexOf(d);
47
+ if (i >= 0) {
48
+ this._disposers.splice(i, 1);
49
+ }
50
+
51
+ d();
52
+ }
53
+
54
+ dispose(log = false) {
55
+ if (log) {
56
+ logger.log(
57
+ `[Disposer:${this.logName || '<unknown>'}] Disposing ${this._disposers.length} items including named ones:`,
58
+ Array.from(this._map.entries()).map(e => e[0]),
59
+ );
60
+ }
61
+
62
+ this._disposers.forEach(d => d());
63
+ this._disposers.length = 0;
64
+ this._map.clear();
65
+ }
66
+ }
67
+
68
+ export function combineDisposers(...items: DisposeFunction[]): DisposeFunction {
69
+ return () => items.forEach(i => i());
70
+ }
71
+
72
+ export class Disposable implements IDisposable {
73
+
74
+ protected readonly disposer = new Disposer();
75
+ protected _isDisposed = false;
76
+
77
+ public dispose = () => {
78
+ this._isDisposed = true;
79
+ this.disposer.dispose();
80
+ };
81
+ }
@@ -1,7 +1,7 @@
1
1
  import { reaction } from 'mobx';
2
2
  import { IEvent, Event } from './event';
3
3
  import { ILogger, createLogger } from './logger';
4
- import { IDisposable } from './unsubscriber';
4
+ import { IDisposable } from './disposer';
5
5
 
6
6
  export class TransitionObserver<T> implements IDisposable {
7
7
 
@@ -1,77 +1,11 @@
1
1
  import logger from './logger';
2
2
 
3
- export interface IDisposable {
4
- dispose(): void;
5
- }
6
-
7
- export interface Disposer {
8
- (): void;
9
- }
10
-
11
- export class Unsubscriber {
12
-
13
- private readonly _disposers: Disposer[] = [];
14
- private readonly _map = new Map<string, Disposer>();
15
-
16
- constructor(readonly logName: string = null) { }
17
-
18
- add(d: Disposer | IDisposable, id?: string) {
19
- if (!d) {
20
- return;
21
- }
22
-
23
- const dd: Disposer = typeof d !== 'function'
24
- ? (() => d.dispose ? d.dispose() : null)
25
- : d;
26
-
27
- this._disposers.push(dd);
28
-
29
- if (id) {
30
- // dispose previous identified disposer
31
- if (this._map.has(id)) {
32
- this.execute(id);
33
- }
34
-
35
- this._map.set(id, dd);
36
- }
37
- }
38
-
39
- execute(id: string) {
40
- const d = this._map.get(id);
41
- if (!d) {
42
- return;
43
- }
44
-
45
- this._map.delete(id);
46
- const i = this._disposers.indexOf(d);
47
- if (i >= 0) {
48
- this._disposers.splice(i, 1);
49
- }
50
-
51
- d();
52
- }
53
-
54
- dispose(log = false) {
55
- if (log) {
56
- logger.log(
57
- `[Disposer:${this.logName || '<unknown>'}] Disposing ${this._disposers.length} items including named ones:`,
58
- Array.from(this._map.entries()).map(e => e[0]),
59
- );
60
- }
61
-
62
- this._disposers.forEach(d => d());
63
- this._disposers.length = 0;
64
- this._map.clear();
65
- }
66
- }
67
-
68
- export function combineDisposers(...items: Disposer[]): Disposer {
69
- return () => items.forEach(i => i());
70
- }
71
-
72
- export class Disposable implements IDisposable {
73
-
74
- protected readonly disposer = new Unsubscriber();
75
-
76
- public dispose = () => this.disposer.dispose();
77
- }
3
+ export {
4
+ IDisposable,
5
+ DisposeFunction as Disposer,
6
+ combineDisposers,
7
+ Disposer as Unsubscriber,
8
+ Disposable,
9
+ } from './disposer';
10
+
11
+ logger.warn('@zajno/common: importing module "unsusbcriber" is deprecated; please change your import to "disposer" module.');