@jscrpt/common 1.2.0 → 2.0.0-beta.20211108120022

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 (238) hide show
  1. package/changelog.md +24 -0
  2. package/dist/es2015/decorators/bindThis.decorator.js +24 -24
  3. package/dist/es2015/decorators/bindThis.decorator.js.map +1 -0
  4. package/dist/es2015/decorators/callOnce.decorator.js +29 -28
  5. package/dist/es2015/decorators/callOnce.decorator.js.map +1 -0
  6. package/dist/es2015/decorators/debounceCall.decorator.js +25 -26
  7. package/dist/es2015/decorators/debounceCall.decorator.js.map +1 -0
  8. package/dist/es2015/decorators/index.js +4 -4
  9. package/dist/es2015/decorators/index.js.map +1 -0
  10. package/dist/es2015/encoder/encoder.js +220 -231
  11. package/dist/es2015/encoder/encoder.js.map +1 -0
  12. package/dist/es2015/enums/index.js +2 -2
  13. package/dist/es2015/enums/index.js.map +1 -0
  14. package/dist/es2015/enums/orderByDirection.js +15 -15
  15. package/dist/es2015/enums/orderByDirection.js.map +1 -0
  16. package/dist/es2015/index.js +10 -24
  17. package/dist/es2015/index.js.map +1 -0
  18. package/dist/es2015/indexNode.js +2 -2
  19. package/dist/es2015/indexNode.js.map +1 -0
  20. package/dist/es2015/initJsDevMode.js +8 -0
  21. package/dist/es2015/initJsDevMode.js.map +1 -0
  22. package/dist/es2015/jsDevMode.js +8 -8
  23. package/dist/es2015/jsDevMode.js.map +1 -0
  24. package/dist/es2015/normalizer/charMaps.js +20 -27
  25. package/dist/es2015/normalizer/charMaps.js.map +1 -0
  26. package/dist/es2015/normalizer/index.js +3 -3
  27. package/dist/es2015/normalizer/index.js.map +1 -0
  28. package/dist/es2015/normalizer/normalizer.js +14 -14
  29. package/dist/es2015/normalizer/normalizer.js.map +1 -0
  30. package/dist/es2015/paginator/paginator.js +230 -224
  31. package/dist/es2015/paginator/paginator.js.map +1 -0
  32. package/dist/es2015/types/dictionaries.js +2 -1
  33. package/dist/es2015/types/dictionaries.js.map +1 -0
  34. package/dist/es2015/types/enums.js +2 -0
  35. package/dist/es2015/types/enums.js.map +1 -0
  36. package/dist/es2015/types/functions.js +2 -0
  37. package/dist/es2015/types/functions.js.map +1 -0
  38. package/dist/es2015/types/index.js +5 -3
  39. package/dist/es2015/types/index.js.map +1 -0
  40. package/dist/es2015/types/valueNamePair.js +2 -1
  41. package/dist/es2015/types/valueNamePair.js.map +1 -0
  42. package/dist/es2015/utils/common.js +209 -215
  43. package/dist/es2015/utils/common.js.map +1 -0
  44. package/dist/es2015/utils/index.js +4 -4
  45. package/dist/es2015/utils/index.js.map +1 -0
  46. package/dist/es2015/utils/lang.js +79 -79
  47. package/dist/es2015/utils/lang.js.map +1 -0
  48. package/dist/es2015/utils/nameof.js +6 -6
  49. package/dist/es2015/utils/nameof.js.map +1 -0
  50. package/dist/es2020/decorators/bindThis.decorator.js +23 -0
  51. package/dist/es2020/decorators/bindThis.decorator.js.map +1 -0
  52. package/dist/es2020/decorators/callOnce.decorator.js +28 -0
  53. package/dist/es2020/decorators/callOnce.decorator.js.map +1 -0
  54. package/dist/es2020/decorators/debounceCall.decorator.js +24 -0
  55. package/dist/es2020/decorators/debounceCall.decorator.js.map +1 -0
  56. package/dist/es2020/decorators/index.js +4 -0
  57. package/dist/es2020/decorators/index.js.map +1 -0
  58. package/dist/es2020/encoder/encoder.js +220 -0
  59. package/dist/es2020/encoder/encoder.js.map +1 -0
  60. package/dist/es2020/enums/index.js +2 -0
  61. package/dist/es2020/enums/index.js.map +1 -0
  62. package/dist/es2020/enums/orderByDirection.js +15 -0
  63. package/dist/es2020/enums/orderByDirection.js.map +1 -0
  64. package/dist/es2020/index.js +10 -0
  65. package/dist/es2020/index.js.map +1 -0
  66. package/dist/es2020/indexNode.js +2 -0
  67. package/dist/es2020/indexNode.js.map +1 -0
  68. package/dist/es2020/initJsDevMode.js +8 -0
  69. package/dist/es2020/initJsDevMode.js.map +1 -0
  70. package/dist/es2020/jsDevMode.js +8 -0
  71. package/dist/es2020/jsDevMode.js.map +1 -0
  72. package/dist/es2020/normalizer/charMaps.js +20 -0
  73. package/dist/es2020/normalizer/charMaps.js.map +1 -0
  74. package/dist/es2020/normalizer/index.js +3 -0
  75. package/dist/es2020/normalizer/index.js.map +1 -0
  76. package/dist/es2020/normalizer/normalizer.js +14 -0
  77. package/dist/es2020/normalizer/normalizer.js.map +1 -0
  78. package/dist/es2020/paginator/paginator.js +230 -0
  79. package/dist/es2020/paginator/paginator.js.map +1 -0
  80. package/dist/es2020/types/dictionaries.js +2 -0
  81. package/dist/es2020/types/dictionaries.js.map +1 -0
  82. package/dist/es2020/types/enums.js +2 -0
  83. package/dist/es2020/types/enums.js.map +1 -0
  84. package/dist/es2020/types/functions.js +2 -0
  85. package/dist/es2020/types/functions.js.map +1 -0
  86. package/dist/es2020/types/index.js +5 -0
  87. package/dist/es2020/types/index.js.map +1 -0
  88. package/dist/es2020/types/valueNamePair.js +2 -0
  89. package/dist/es2020/types/valueNamePair.js.map +1 -0
  90. package/dist/es2020/utils/common.js +208 -0
  91. package/dist/es2020/utils/common.js.map +1 -0
  92. package/dist/es2020/utils/index.js +4 -0
  93. package/dist/es2020/utils/index.js.map +1 -0
  94. package/dist/es2020/utils/lang.js +79 -0
  95. package/dist/es2020/utils/lang.js.map +1 -0
  96. package/dist/es2020/utils/nameof.js +6 -0
  97. package/dist/es2020/utils/nameof.js.map +1 -0
  98. package/dist/es5/decorators/bindThis.decorator.js +24 -24
  99. package/dist/es5/decorators/bindThis.decorator.js.map +1 -0
  100. package/dist/es5/decorators/callOnce.decorator.js +33 -28
  101. package/dist/es5/decorators/callOnce.decorator.js.map +1 -0
  102. package/dist/es5/decorators/debounceCall.decorator.js +30 -27
  103. package/dist/es5/decorators/debounceCall.decorator.js.map +1 -0
  104. package/dist/es5/decorators/index.js +4 -4
  105. package/dist/es5/decorators/index.js.map +1 -0
  106. package/dist/es5/encoder/encoder.js +222 -233
  107. package/dist/es5/encoder/encoder.js.map +1 -0
  108. package/dist/es5/enums/index.js +2 -2
  109. package/dist/es5/enums/index.js.map +1 -0
  110. package/dist/es5/enums/orderByDirection.js +15 -15
  111. package/dist/es5/enums/orderByDirection.js.map +1 -0
  112. package/dist/es5/index.js +10 -24
  113. package/dist/es5/index.js.map +1 -0
  114. package/dist/es5/indexNode.js +2 -2
  115. package/dist/es5/indexNode.js.map +1 -0
  116. package/dist/es5/initJsDevMode.js +8 -0
  117. package/dist/es5/initJsDevMode.js.map +1 -0
  118. package/dist/es5/jsDevMode.js +8 -8
  119. package/dist/es5/jsDevMode.js.map +1 -0
  120. package/dist/es5/normalizer/charMaps.js +20 -35
  121. package/dist/es5/normalizer/charMaps.js.map +1 -0
  122. package/dist/es5/normalizer/index.js +3 -3
  123. package/dist/es5/normalizer/index.js.map +1 -0
  124. package/dist/es5/normalizer/normalizer.js +14 -14
  125. package/dist/es5/normalizer/normalizer.js.map +1 -0
  126. package/dist/es5/paginator/paginator.js +232 -226
  127. package/dist/es5/paginator/paginator.js.map +1 -0
  128. package/dist/es5/types/dictionaries.js +2 -1
  129. package/dist/es5/types/dictionaries.js.map +1 -0
  130. package/dist/es5/types/enums.js +2 -0
  131. package/dist/es5/types/enums.js.map +1 -0
  132. package/dist/es5/types/functions.js +2 -0
  133. package/dist/es5/types/functions.js.map +1 -0
  134. package/dist/es5/types/index.js +5 -3
  135. package/dist/es5/types/index.js.map +1 -0
  136. package/dist/es5/types/valueNamePair.js +2 -1
  137. package/dist/es5/types/valueNamePair.js.map +1 -0
  138. package/dist/es5/utils/common.js +220 -232
  139. package/dist/es5/utils/common.js.map +1 -0
  140. package/dist/es5/utils/index.js +4 -4
  141. package/dist/es5/utils/index.js.map +1 -0
  142. package/dist/es5/utils/lang.js +79 -79
  143. package/dist/es5/utils/lang.js.map +1 -0
  144. package/dist/es5/utils/nameof.js +6 -6
  145. package/dist/es5/utils/nameof.js.map +1 -0
  146. package/dist/module/decorators/bindThis.decorator.js +28 -28
  147. package/dist/module/decorators/bindThis.decorator.js.map +1 -0
  148. package/dist/module/decorators/callOnce.decorator.js +33 -32
  149. package/dist/module/decorators/callOnce.decorator.js.map +1 -0
  150. package/dist/module/decorators/debounceCall.decorator.js +29 -30
  151. package/dist/module/decorators/debounceCall.decorator.js.map +1 -0
  152. package/dist/module/decorators/index.js +7 -16
  153. package/dist/module/decorators/index.js.map +1 -0
  154. package/dist/module/encoder/encoder.js +224 -235
  155. package/dist/module/encoder/encoder.js.map +1 -0
  156. package/dist/module/enums/index.js +5 -14
  157. package/dist/module/enums/index.js.map +1 -0
  158. package/dist/module/enums/orderByDirection.js +18 -18
  159. package/dist/module/enums/orderByDirection.js.map +1 -0
  160. package/dist/module/index.js +13 -37
  161. package/dist/module/index.js.map +1 -0
  162. package/dist/module/indexNode.js +5 -14
  163. package/dist/module/indexNode.js.map +1 -0
  164. package/dist/module/initJsDevMode.js +10 -0
  165. package/dist/module/initJsDevMode.js.map +1 -0
  166. package/dist/module/jsDevMode.js +12 -12
  167. package/dist/module/jsDevMode.js.map +1 -0
  168. package/dist/module/normalizer/charMaps.js +23 -31
  169. package/dist/module/normalizer/charMaps.js.map +1 -0
  170. package/dist/module/normalizer/index.js +6 -15
  171. package/dist/module/normalizer/index.js.map +1 -0
  172. package/dist/module/normalizer/normalizer.js +18 -18
  173. package/dist/module/normalizer/normalizer.js.map +1 -0
  174. package/dist/module/paginator/paginator.js +234 -228
  175. package/dist/module/paginator/paginator.js.map +1 -0
  176. package/dist/module/types/dictionaries.js +3 -3
  177. package/dist/module/types/dictionaries.js.map +1 -0
  178. package/dist/module/types/enums.js +3 -0
  179. package/dist/module/types/enums.js.map +1 -0
  180. package/dist/module/types/functions.js +3 -0
  181. package/dist/module/types/functions.js.map +1 -0
  182. package/dist/module/types/index.js +8 -15
  183. package/dist/module/types/index.js.map +1 -0
  184. package/dist/module/types/valueNamePair.js +3 -3
  185. package/dist/module/types/valueNamePair.js.map +1 -0
  186. package/dist/module/utils/common.js +232 -240
  187. package/dist/module/utils/common.js.map +1 -0
  188. package/dist/module/utils/index.js +7 -16
  189. package/dist/module/utils/index.js.map +1 -0
  190. package/dist/module/utils/lang.js +99 -99
  191. package/dist/module/utils/lang.js.map +1 -0
  192. package/dist/module/utils/nameof.js +10 -9
  193. package/dist/module/utils/nameof.js.map +1 -0
  194. package/package.json +45 -16
  195. package/src/decorators/bindThis.decorator.d.ts +5 -7
  196. package/src/decorators/bindThis.decorator.d.ts.map +1 -1
  197. package/src/decorators/callOnce.decorator.d.ts +5 -5
  198. package/src/decorators/callOnce.decorator.d.ts.map +1 -1
  199. package/src/decorators/debounceCall.decorator.d.ts +5 -5
  200. package/src/decorators/debounceCall.decorator.d.ts.map +1 -1
  201. package/src/decorators/index.d.ts +3 -3
  202. package/src/encoder/encoder.d.ts +45 -45
  203. package/src/encoder/encoder.d.ts.map +1 -1
  204. package/src/enums/index.d.ts +1 -1
  205. package/src/enums/orderByDirection.d.ts +13 -13
  206. package/src/index.d.ts +9 -17
  207. package/src/index.d.ts.map +1 -1
  208. package/src/indexNode.d.ts +1 -1
  209. package/src/initJsDevMode.d.ts +2 -0
  210. package/src/initJsDevMode.d.ts.map +1 -0
  211. package/src/jsDevMode.d.ts +8 -8
  212. package/src/jsDevMode.d.ts.map +1 -1
  213. package/src/normalizer/charMaps.d.ts +5 -9
  214. package/src/normalizer/charMaps.d.ts.map +1 -1
  215. package/src/normalizer/index.d.ts +2 -2
  216. package/src/normalizer/normalizer.d.ts +7 -6
  217. package/src/normalizer/normalizer.d.ts.map +1 -1
  218. package/src/paginator/paginator.d.ts +129 -129
  219. package/src/paginator/paginator.d.ts.map +1 -1
  220. package/src/types/dictionaries.d.ts +15 -6
  221. package/src/types/dictionaries.d.ts.map +1 -1
  222. package/src/types/enums.d.ts +7 -0
  223. package/src/types/enums.d.ts.map +1 -0
  224. package/src/types/functions.d.ts +14 -0
  225. package/src/types/functions.d.ts.map +1 -0
  226. package/src/types/index.d.ts +4 -2
  227. package/src/types/index.d.ts.map +1 -1
  228. package/src/types/valueNamePair.d.ts +13 -13
  229. package/src/utils/common.d.ts +181 -122
  230. package/src/utils/common.d.ts.map +1 -1
  231. package/src/utils/index.d.ts +3 -3
  232. package/src/utils/lang.d.ts +41 -41
  233. package/src/utils/lang.d.ts.map +1 -1
  234. package/src/utils/nameof.d.ts +5 -5
  235. package/src/utils/nameof.d.ts.map +1 -1
  236. package/version.bak +1 -1
  237. package/.jsbeautifyrc +0 -7
  238. package/appveyor.yml +0 -67
@@ -1,79 +1,79 @@
1
- /**
2
- * Tests whether is object not `null` and not `undefined` at the same time
3
- * @param obj - Object to be tested
4
- */
5
- export function isPresent(obj) {
6
- return obj !== undefined && obj !== null;
7
- }
8
- /**
9
- * Tests whether is object `null` or `undefined`
10
- * @param obj - Object to be tested
11
- */
12
- export function isBlank(obj) {
13
- return obj === undefined || obj === null;
14
- }
15
- /**
16
- * Tests whether is object instance of `boolean`
17
- * @param obj - Object to be tested
18
- */
19
- export function isBoolean(obj) {
20
- return typeof obj === 'boolean';
21
- }
22
- /**
23
- * Tests whether is object instance of number
24
- * @param obj - Object to be tested
25
- */
26
- export function isNumber(obj) {
27
- return typeof obj === 'number';
28
- }
29
- /**
30
- * Tests whether is object instance of string
31
- * @param obj - Object to be tested
32
- */
33
- export function isString(obj) {
34
- return typeof obj === 'string';
35
- }
36
- /**
37
- * Tests whether is object instance of function
38
- * @param obj - Object to be tested
39
- */
40
- export function isFunction(obj) {
41
- return typeof obj === 'function';
42
- }
43
- export function isType(obj) {
44
- return isFunction(obj);
45
- }
46
- export function isStringMap(obj) {
47
- return typeof obj === 'object' && obj !== null;
48
- }
49
- var STRING_MAP_PROTO = Object.getPrototypeOf({});
50
- export function isStrictStringMap(obj) {
51
- return isStringMap(obj) && Object.getPrototypeOf(obj) === STRING_MAP_PROTO;
52
- }
53
- export function isArray(obj) {
54
- return Array.isArray(obj);
55
- }
56
- export function isDate(obj) {
57
- return obj instanceof Date && !isNaN(obj.valueOf());
58
- }
59
- export function noop() {
60
- }
61
- export function normalizeBlank(obj) {
62
- return isBlank(obj) ? null : obj;
63
- }
64
- export function isJsObject(o) {
65
- return o !== null && (typeof o === 'function' || typeof o === 'object');
66
- }
67
- export function isPrimitive(obj) {
68
- return !isJsObject(obj);
69
- }
70
- export function hasConstructor(value, type) {
71
- return value.constructor === type;
72
- }
73
- export function isEmptyObject(obj) {
74
- for (var _name in obj) {
75
- return false;
76
- }
77
- return true;
78
- }
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9sYW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQU8sR0FBUztJQUVyQyxPQUFPLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQztBQUM3QyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFRO0lBRTVCLE9BQU8sR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDO0FBQzdDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVE7SUFFOUIsT0FBTyxPQUFPLEdBQUcsS0FBSyxTQUFTLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBUTtJQUU3QixPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztBQUNuQyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFRO0lBRTdCLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDO0FBQ25DLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQVE7SUFFL0IsT0FBTyxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUM7QUFDckMsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsR0FBUTtJQUUzQixPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUFRO0lBRWhDLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUM7QUFDbkQsQ0FBQztBQUVELElBQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVuRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsR0FBUTtJQUV0QyxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLGdCQUFnQixDQUFDO0FBQy9FLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFDLEdBQVE7SUFFNUIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEdBQVE7SUFFM0IsT0FBTyxHQUFHLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRCxNQUFNLFVBQVUsSUFBSTtBQUVwQixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBc0IsR0FBd0I7SUFFeEUsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLENBQU07SUFFN0IsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssVUFBVSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDO0FBQzVFLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQVE7SUFFaEMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFhLEVBQUUsSUFBUztJQUVuRCxPQUFPLEtBQUssQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDO0FBQ3RDLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEdBQVE7SUFFbEMsS0FBSyxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQ3JCO1FBQ0ksT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFRlc3RzIHdoZXRoZXIgaXMgb2JqZWN0IG5vdCBgbnVsbGAgYW5kIG5vdCBgdW5kZWZpbmVkYCBhdCB0aGUgc2FtZSB0aW1lXHJcbiAqIEBwYXJhbSBvYmogLSBPYmplY3QgdG8gYmUgdGVzdGVkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNQcmVzZW50PFRPYmo+KG9iajogVE9iaik6IG9iaiBpcyBOb25OdWxsYWJsZTxUT2JqPlxyXG57XHJcbiAgICByZXR1cm4gb2JqICE9PSB1bmRlZmluZWQgJiYgb2JqICE9PSBudWxsO1xyXG59XHJcblxyXG4vKipcclxuICogVGVzdHMgd2hldGhlciBpcyBvYmplY3QgYG51bGxgIG9yIGB1bmRlZmluZWRgXHJcbiAqIEBwYXJhbSBvYmogLSBPYmplY3QgdG8gYmUgdGVzdGVkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNCbGFuayhvYmo6IGFueSk6IG9iaiBpcyBudWxsfHVuZGVmaW5lZFxyXG57XHJcbiAgICByZXR1cm4gb2JqID09PSB1bmRlZmluZWQgfHwgb2JqID09PSBudWxsO1xyXG59XHJcblxyXG4vKipcclxuICogVGVzdHMgd2hldGhlciBpcyBvYmplY3QgaW5zdGFuY2Ugb2YgYGJvb2xlYW5gXHJcbiAqIEBwYXJhbSBvYmogLSBPYmplY3QgdG8gYmUgdGVzdGVkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNCb29sZWFuKG9iajogYW55KTogb2JqIGlzIGJvb2xlYW5cclxue1xyXG4gICAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICdib29sZWFuJztcclxufVxyXG5cclxuLyoqXHJcbiAqIFRlc3RzIHdoZXRoZXIgaXMgb2JqZWN0IGluc3RhbmNlIG9mIG51bWJlclxyXG4gKiBAcGFyYW0gb2JqIC0gT2JqZWN0IHRvIGJlIHRlc3RlZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyKG9iajogYW55KTogb2JqIGlzIG51bWJlclxyXG57XHJcbiAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ251bWJlcic7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUZXN0cyB3aGV0aGVyIGlzIG9iamVjdCBpbnN0YW5jZSBvZiBzdHJpbmdcclxuICogQHBhcmFtIG9iaiAtIE9iamVjdCB0byBiZSB0ZXN0ZWRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZyhvYmo6IGFueSk6IG9iaiBpcyBzdHJpbmdcclxue1xyXG4gICAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICdzdHJpbmcnO1xyXG59XHJcblxyXG4vKipcclxuICogVGVzdHMgd2hldGhlciBpcyBvYmplY3QgaW5zdGFuY2Ugb2YgZnVuY3Rpb25cclxuICogQHBhcmFtIG9iaiAtIE9iamVjdCB0byBiZSB0ZXN0ZWRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKG9iajogYW55KTogb2JqIGlzIEZ1bmN0aW9uXHJcbntcclxuICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNUeXBlKG9iajogYW55KTogb2JqIGlzIEZ1bmN0aW9uXHJcbntcclxuICAgIHJldHVybiBpc0Z1bmN0aW9uKG9iaik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZ01hcChvYmo6IGFueSk6IG9iaiBpcyBPYmplY3Rcclxue1xyXG4gICAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbDtcclxufVxyXG5cclxuY29uc3QgU1RSSU5HX01BUF9QUk9UTyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih7fSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpY3RTdHJpbmdNYXAob2JqOiBhbnkpOiBib29sZWFuXHJcbntcclxuICAgIHJldHVybiBpc1N0cmluZ01hcChvYmopICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopID09PSBTVFJJTkdfTUFQX1BST1RPO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNBcnJheShvYmo6IGFueSk6IG9iaiBpcyBBcnJheTxhbnk+XHJcbntcclxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KG9iaik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGUob2JqOiBhbnkpOiBvYmogaXMgRGF0ZVxyXG57XHJcbiAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4ob2JqLnZhbHVlT2YoKSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBub29wKCk6IHZvaWRcclxue1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQmxhbms8VE9iaiBleHRlbmRzIE9iamVjdD4ob2JqOiBUT2JqfHVuZGVmaW5lZHxudWxsKTogVE9ianxudWxsXHJcbntcclxuICAgIHJldHVybiBpc0JsYW5rKG9iaikgPyBudWxsIDogb2JqO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNKc09iamVjdChvOiBhbnkpOiBvIGlzIEZ1bmN0aW9ufE9iamVjdFxyXG57XHJcbiAgICByZXR1cm4gbyAhPT0gbnVsbCAmJiAodHlwZW9mIG8gPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIG8gPT09ICdvYmplY3QnKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJpbWl0aXZlKG9iajogYW55KTogYm9vbGVhblxyXG57XHJcbiAgICByZXR1cm4gIWlzSnNPYmplY3Qob2JqKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGhhc0NvbnN0cnVjdG9yKHZhbHVlOiBPYmplY3QsIHR5cGU6IGFueSk6IGJvb2xlYW5cclxue1xyXG4gICAgcmV0dXJuIHZhbHVlLmNvbnN0cnVjdG9yID09PSB0eXBlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNFbXB0eU9iamVjdChvYmo6IGFueSk6IGJvb2xlYW5cclxue1xyXG4gICAgZm9yIChsZXQgX25hbWUgaW4gb2JqKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufSJdfQ==
1
+ /**
2
+ * Tests whether is object not `null` and not `undefined` at the same time
3
+ * @param obj - Object to be tested
4
+ */
5
+ export function isPresent(obj) {
6
+ return obj !== undefined && obj !== null;
7
+ }
8
+ /**
9
+ * Tests whether is object `null` or `undefined`
10
+ * @param obj - Object to be tested
11
+ */
12
+ export function isBlank(obj) {
13
+ return obj === undefined || obj === null;
14
+ }
15
+ /**
16
+ * Tests whether is object instance of `boolean`
17
+ * @param obj - Object to be tested
18
+ */
19
+ export function isBoolean(obj) {
20
+ return typeof obj === 'boolean';
21
+ }
22
+ /**
23
+ * Tests whether is object instance of number
24
+ * @param obj - Object to be tested
25
+ */
26
+ export function isNumber(obj) {
27
+ return typeof obj === 'number';
28
+ }
29
+ /**
30
+ * Tests whether is object instance of string
31
+ * @param obj - Object to be tested
32
+ */
33
+ export function isString(obj) {
34
+ return typeof obj === 'string';
35
+ }
36
+ /**
37
+ * Tests whether is object instance of function
38
+ * @param obj - Object to be tested
39
+ */
40
+ export function isFunction(obj) {
41
+ return typeof obj === 'function';
42
+ }
43
+ export function isType(obj) {
44
+ return isFunction(obj);
45
+ }
46
+ export function isStringMap(obj) {
47
+ return typeof obj === 'object' && obj !== null;
48
+ }
49
+ var STRING_MAP_PROTO = Object.getPrototypeOf({});
50
+ export function isStrictStringMap(obj) {
51
+ return isStringMap(obj) && Object.getPrototypeOf(obj) === STRING_MAP_PROTO;
52
+ }
53
+ export function isArray(obj) {
54
+ return Array.isArray(obj);
55
+ }
56
+ export function isDate(obj) {
57
+ return obj instanceof Date && !isNaN(obj.valueOf());
58
+ }
59
+ export function noop() {
60
+ }
61
+ export function normalizeBlank(obj) {
62
+ return isBlank(obj) ? null : obj;
63
+ }
64
+ export function isJsObject(o) {
65
+ return o !== null && (typeof o === 'function' || typeof o === 'object');
66
+ }
67
+ export function isPrimitive(obj) {
68
+ return !isJsObject(obj);
69
+ }
70
+ export function hasConstructor(value, type) {
71
+ return value.constructor === type;
72
+ }
73
+ export function isEmptyObject(obj) {
74
+ for (var _name in obj) {
75
+ return false;
76
+ }
77
+ return true;
78
+ }
79
+ //# sourceMappingURL=lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lang.js","sourceRoot":"","sources":["../../../src/utils/lang.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAO,GAAS;IAErC,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,GAAQ;IAE5B,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAQ;IAE9B,OAAO,OAAO,GAAG,KAAK,SAAS,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAQ;IAE7B,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAQ;IAE7B,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,GAAQ;IAE/B,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAQ;IAE3B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAQ;IAEhC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC;AACnD,CAAC;AAED,IAAM,gBAAgB,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AAEnD,MAAM,UAAU,iBAAiB,CAAC,GAAQ;IAEtC,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,gBAAgB,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAQ;IAE5B,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAQ;IAE3B,OAAO,GAAG,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,IAAI;AAGpB,CAAC;AAED,MAAM,UAAU,cAAc,CAAsB,GAAwB;IAExE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAM;IAE7B,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAQ;IAEhC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,IAAS;IAEnD,OAAO,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAQ;IAElC,KAAK,IAAM,KAAK,IAAI,GAAG,EACvB;QACI,OAAO,KAAK,CAAC;KAChB;IAED,OAAO,IAAI,CAAC;AAChB,CAAC","sourcesContent":["/**\r\n * Tests whether is object not `null` and not `undefined` at the same time\r\n * @param obj - Object to be tested\r\n */\r\nexport function isPresent<TObj>(obj: TObj): obj is NonNullable<TObj>\r\n{\r\n return obj !== undefined && obj !== null;\r\n}\r\n\r\n/**\r\n * Tests whether is object `null` or `undefined`\r\n * @param obj - Object to be tested\r\n */\r\nexport function isBlank(obj: any): obj is null|undefined\r\n{\r\n return obj === undefined || obj === null;\r\n}\r\n\r\n/**\r\n * Tests whether is object instance of `boolean`\r\n * @param obj - Object to be tested\r\n */\r\nexport function isBoolean(obj: any): obj is boolean\r\n{\r\n return typeof obj === 'boolean';\r\n}\r\n\r\n/**\r\n * Tests whether is object instance of number\r\n * @param obj - Object to be tested\r\n */\r\nexport function isNumber(obj: any): obj is number\r\n{\r\n return typeof obj === 'number';\r\n}\r\n\r\n/**\r\n * Tests whether is object instance of string\r\n * @param obj - Object to be tested\r\n */\r\nexport function isString(obj: any): obj is string\r\n{\r\n return typeof obj === 'string';\r\n}\r\n\r\n/**\r\n * Tests whether is object instance of function\r\n * @param obj - Object to be tested\r\n */\r\nexport function isFunction(obj: any): obj is Function\r\n{\r\n return typeof obj === 'function';\r\n}\r\n\r\nexport function isType(obj: any): obj is Function\r\n{\r\n return isFunction(obj);\r\n}\r\n\r\nexport function isStringMap(obj: any): obj is Object\r\n{\r\n return typeof obj === 'object' && obj !== null;\r\n}\r\n\r\nconst STRING_MAP_PROTO = Object.getPrototypeOf({});\r\n\r\nexport function isStrictStringMap(obj: any): boolean\r\n{\r\n return isStringMap(obj) && Object.getPrototypeOf(obj) === STRING_MAP_PROTO;\r\n}\r\n\r\nexport function isArray(obj: any): obj is Array<any>\r\n{\r\n return Array.isArray(obj);\r\n}\r\n\r\nexport function isDate(obj: any): obj is Date\r\n{\r\n return obj instanceof Date && !isNaN(obj.valueOf());\r\n}\r\n\r\nexport function noop(): void\r\n// eslint-disable-next-line @typescript-eslint/no-empty-function\r\n{\r\n}\r\n\r\nexport function normalizeBlank<TObj extends Object>(obj: TObj|undefined|null): TObj|null\r\n{\r\n return isBlank(obj) ? null : obj;\r\n}\r\n\r\nexport function isJsObject(o: any): o is Function|Object\r\n{\r\n return o !== null && (typeof o === 'function' || typeof o === 'object');\r\n}\r\n\r\nexport function isPrimitive(obj: any): boolean\r\n{\r\n return !isJsObject(obj);\r\n}\r\n\r\nexport function hasConstructor(value: Object, type: any): boolean\r\n{\r\n return value.constructor === type;\r\n}\r\n\r\nexport function isEmptyObject(obj: any): boolean\r\n{\r\n for (const _name in obj)\r\n {\r\n return false;\r\n }\r\n\r\n return true;\r\n}"]}
@@ -1,6 +1,6 @@
1
- /**
2
- * Returns name of property, checked by typescript
3
- * @param name - Name of property that should be returned
4
- */
5
- export var nameof = function (name) { return name; };
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZW9mLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL25hbWVvZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxNQUFNLEdBQUcsVUFBSSxJQUFhLElBQUssT0FBQSxJQUFJLEVBQUosQ0FBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFJldHVybnMgbmFtZSBvZiBwcm9wZXJ0eSwgY2hlY2tlZCBieSB0eXBlc2NyaXB0XHJcbiAqIEBwYXJhbSBuYW1lIC0gTmFtZSBvZiBwcm9wZXJ0eSB0aGF0IHNob3VsZCBiZSByZXR1cm5lZFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IG5hbWVvZiA9IDxUPihuYW1lOiBrZXlvZiBUKSA9PiBuYW1lOyJdfQ==
1
+ /**
2
+ * Returns name of property, checked by typescript
3
+ * @param name - Name of property that should be returned
4
+ */
5
+ export var nameof = function (name) { return name; };
6
+ //# sourceMappingURL=nameof.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nameof.js","sourceRoot":"","sources":["../../../src/utils/nameof.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,IAAM,MAAM,GAAG,UAAI,IAA8B,IAAa,OAAA,IAAI,EAAJ,CAAI,CAAC","sourcesContent":["/**\r\n * Returns name of property, checked by typescript\r\n * @param name - Name of property that should be returned\r\n */\r\nexport const nameof = <T>(name: Extract<keyof T, string>): string => name;"]}
@@ -1,28 +1,28 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BindThis = void 0;
4
- const utils_1 = require("../utils");
5
- /**
6
- * Binds function to this, object instance where is defined, it is importat to place it in correct order with other decorators, usually should be first
7
- */
8
- function BindThis(_target, propertyKey, descriptor) {
9
- var _a;
10
- let originalValue = (_a = descriptor.value) !== null && _a !== void 0 ? _a : descriptor.get();
11
- if (!utils_1.isFunction(originalValue)) {
12
- throw new Error(`Unable to apply @BindThis decorator to '${propertyKey}', it is not a method.`);
13
- }
14
- return {
15
- configurable: true,
16
- get() {
17
- const bound = originalValue.bind(this);
18
- Object.defineProperty(this, propertyKey, {
19
- value: bound,
20
- configurable: true,
21
- writable: true
22
- });
23
- return bound;
24
- }
25
- };
26
- }
27
- exports.BindThis = BindThis;
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZFRoaXMuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RlY29yYXRvcnMvYmluZFRoaXMuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9DQUFvQztBQUVwQzs7R0FFRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxPQUFlLEVBQUUsV0FBbUIsRUFBRSxVQUE4Qjs7SUFFekYsSUFBSSxhQUFhLFNBQWEsVUFBVSxDQUFDLEtBQUssbUNBQUksVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRW5FLElBQUcsQ0FBQyxrQkFBVSxDQUFDLGFBQWEsQ0FBQyxFQUM3QjtRQUNJLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLFdBQVcsd0JBQXdCLENBQUMsQ0FBQztLQUNuRztJQUVELE9BQU87UUFDSCxZQUFZLEVBQUUsSUFBSTtRQUNsQixHQUFHO1lBRUMsTUFBTSxLQUFLLEdBQVEsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUU1QyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFDSixXQUFXLEVBQ1g7Z0JBQ0ksS0FBSyxFQUFFLEtBQUs7Z0JBQ1osWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFFBQVEsRUFBRSxJQUFJO2FBQ2pCLENBQUMsQ0FBQztZQUV6QixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO0tBQ0osQ0FBQztBQUNOLENBQUM7QUExQkQsNEJBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpc0Z1bmN0aW9ufSBmcm9tICcuLi91dGlscyc7XHJcblxyXG4vKipcclxuICogQmluZHMgZnVuY3Rpb24gdG8gdGhpcywgb2JqZWN0IGluc3RhbmNlIHdoZXJlIGlzIGRlZmluZWQsIGl0IGlzIGltcG9ydGF0IHRvIHBsYWNlIGl0IGluIGNvcnJlY3Qgb3JkZXIgd2l0aCBvdGhlciBkZWNvcmF0b3JzLCB1c3VhbGx5IHNob3VsZCBiZSBmaXJzdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIEJpbmRUaGlzKF90YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZywgZGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yKVxyXG57XHJcbiAgICBsZXQgb3JpZ2luYWxWYWx1ZTogRnVuY3Rpb24gPSBkZXNjcmlwdG9yLnZhbHVlID8/IGRlc2NyaXB0b3IuZ2V0KCk7XHJcblxyXG4gICAgaWYoIWlzRnVuY3Rpb24ob3JpZ2luYWxWYWx1ZSkpXHJcbiAgICB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gYXBwbHkgQEJpbmRUaGlzIGRlY29yYXRvciB0byAnJHtwcm9wZXJ0eUtleX0nLCBpdCBpcyBub3QgYSBtZXRob2QuYCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXHJcbiAgICAgICAgZ2V0KHRoaXM6IGFueSk6IGFueVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29uc3QgYm91bmQ6IGFueSA9IG9yaWdpbmFsVmFsdWUuYmluZCh0aGlzKTtcclxuXHJcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlLZXksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGJvdW5kLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gYm91bmQ7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufSJdfQ==
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BindThis = void 0;
4
+ const utils_1 = require("../utils");
5
+ /**
6
+ * Binds function to this, object instance where is defined, it is importat to place it in correct order with other decorators, usually should be first
7
+ */
8
+ function BindThis(_target, propertyKey, descriptor) {
9
+ var _a, _b;
10
+ const originalValue = (_a = descriptor.value) !== null && _a !== void 0 ? _a : (_b = descriptor.get) === null || _b === void 0 ? void 0 : _b.call(descriptor);
11
+ if (!(0, utils_1.isFunction)(originalValue)) {
12
+ throw new Error(`Unable to apply @BindThis decorator to '${propertyKey.toString()}', it is not a method.`);
13
+ }
14
+ return {
15
+ configurable: true,
16
+ get() {
17
+ const bound = originalValue.bind(this);
18
+ Object.defineProperty(this, propertyKey, {
19
+ value: bound,
20
+ configurable: true,
21
+ writable: true
22
+ });
23
+ return bound;
24
+ }
25
+ };
26
+ }
27
+ exports.BindThis = BindThis;
28
+ //# sourceMappingURL=bindThis.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindThis.decorator.js","sourceRoot":"","sources":["../../../src/decorators/bindThis.decorator.ts"],"names":[],"mappings":";;;AACA,oCAAoC;AAEpC;;GAEG;AACH,SAAgB,QAAQ,CAAC,OAAe,EAAE,WAA0B,EAAE,UAA8B;;IAEhG,MAAM,aAAa,GAAS,MAAA,UAAU,CAAC,KAAK,mCAAI,MAAA,UAAU,CAAC,GAAG,+CAAd,UAAU,CAAQ,CAAC;IAEnE,IAAG,CAAC,IAAA,kBAAU,EAAC,aAAa,CAAC,EAC7B;QACI,MAAM,IAAI,KAAK,CAAC,2CAA2C,WAAW,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;KAC9G;IAED,OAAO;QACH,YAAY,EAAE,IAAI;QAClB,GAAG;YAEC,MAAM,KAAK,GAAS,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE7C,MAAM,CAAC,cAAc,CAAC,IAAI,EACJ,WAAW,EACX;gBACI,KAAK,EAAE,KAAK;gBACZ,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI;aACjB,CAAC,CAAC;YAEzB,OAAO,KAAK,CAAC;QACjB,CAAC;KACJ,CAAC;AACN,CAAC;AA1BD,4BA0BC","sourcesContent":["import {Func} from '../types';\r\nimport {isFunction} from '../utils';\r\n\r\n/**\r\n * Binds function to this, object instance where is defined, it is importat to place it in correct order with other decorators, usually should be first\r\n */\r\nexport function BindThis(_target: Object, propertyKey: string|symbol, descriptor: PropertyDescriptor): TypedPropertyDescriptor<Func>\r\n{\r\n const originalValue: Func = descriptor.value ?? descriptor.get?.();\r\n\r\n if(!isFunction(originalValue))\r\n {\r\n throw new Error(`Unable to apply @BindThis decorator to '${propertyKey.toString()}', it is not a method.`);\r\n }\r\n\r\n return {\r\n configurable: true,\r\n get(this: unknown): Func\r\n {\r\n const bound: Func = originalValue.bind(this);\r\n\r\n Object.defineProperty(this,\r\n propertyKey,\r\n {\r\n value: bound,\r\n configurable: true,\r\n writable: true\r\n });\r\n\r\n return bound;\r\n }\r\n };\r\n}"]}
@@ -1,32 +1,33 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CallOnce = void 0;
4
- const utils_1 = require("../utils");
5
- /**
6
- * Method is called only once for specified time, other calls during this time are blocked and it does nothing and returns null
7
- * @param time - Number of miliseconds which specifies period while are calls to this method blocked after first call
8
- */
9
- function CallOnce(time) {
10
- return function (_target, propertyKey, descriptor) {
11
- var _a;
12
- let timeout;
13
- let originalValue = (_a = descriptor.value) !== null && _a !== void 0 ? _a : descriptor.get();
14
- if (!utils_1.isFunction(originalValue)) {
15
- throw new Error(`Unable to apply @CallOnce() decorator to '${propertyKey}', it is not a method.`);
16
- }
17
- descriptor.value = function () {
18
- let args = arguments;
19
- if (utils_1.isPresent(timeout)) {
20
- return null;
21
- }
22
- originalValue.apply(this, args);
23
- timeout = setTimeout(() => {
24
- clearTimeout(timeout);
25
- timeout = null;
26
- }, time);
27
- };
28
- return descriptor;
29
- };
30
- }
31
- exports.CallOnce = CallOnce;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbE9uY2UuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RlY29yYXRvcnMvY2FsbE9uY2UuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9DQUErQztBQUUvQzs7O0dBR0c7QUFDSCxTQUFnQixRQUFRLENBQUMsSUFBWTtJQUVqQyxPQUFPLFVBQVMsT0FBZSxFQUFFLFdBQW1CLEVBQUUsVUFBOEI7O1FBRWhGLElBQUksT0FBZSxDQUFDO1FBQ3BCLElBQUksYUFBYSxTQUFhLFVBQVUsQ0FBQyxLQUFLLG1DQUFJLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVuRSxJQUFHLENBQUMsa0JBQVUsQ0FBQyxhQUFhLENBQUMsRUFDN0I7WUFDSSxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxXQUFXLHdCQUF3QixDQUFDLENBQUM7U0FDckc7UUFFRCxVQUFVLENBQUMsS0FBSyxHQUFHO1lBRWYsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDO1lBRXJCLElBQUcsaUJBQVMsQ0FBQyxPQUFPLENBQUMsRUFDckI7Z0JBQ0ksT0FBTyxJQUFJLENBQUM7YUFDZjtZQUVELGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRWhDLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUV0QixZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDbkIsQ0FBQyxFQUFFLElBQUksQ0FBUSxDQUFDO1FBQ3BCLENBQUMsQ0FBQztRQUVGLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUMsQ0FBQztBQUNOLENBQUM7QUFoQ0QsNEJBZ0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpc0Z1bmN0aW9uLCBpc1ByZXNlbnR9IGZyb20gJy4uL3V0aWxzJztcclxuXHJcbi8qKlxyXG4gKiBNZXRob2QgaXMgY2FsbGVkIG9ubHkgb25jZSBmb3Igc3BlY2lmaWVkIHRpbWUsIG90aGVyIGNhbGxzIGR1cmluZyB0aGlzIHRpbWUgYXJlIGJsb2NrZWQgYW5kIGl0IGRvZXMgbm90aGluZyBhbmQgcmV0dXJucyBudWxsXHJcbiAqIEBwYXJhbSB0aW1lIC0gTnVtYmVyIG9mIG1pbGlzZWNvbmRzIHdoaWNoIHNwZWNpZmllcyBwZXJpb2Qgd2hpbGUgYXJlIGNhbGxzIHRvIHRoaXMgbWV0aG9kIGJsb2NrZWQgYWZ0ZXIgZmlyc3QgY2FsbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIENhbGxPbmNlKHRpbWU6IG51bWJlcik6IE1ldGhvZERlY29yYXRvclxyXG57XHJcbiAgICByZXR1cm4gZnVuY3Rpb24oX3RhcmdldDogb2JqZWN0LCBwcm9wZXJ0eUtleTogc3RyaW5nLCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpXHJcbiAgICB7XHJcbiAgICAgICAgbGV0IHRpbWVvdXQ6IG51bWJlcjtcclxuICAgICAgICBsZXQgb3JpZ2luYWxWYWx1ZTogRnVuY3Rpb24gPSBkZXNjcmlwdG9yLnZhbHVlID8/IGRlc2NyaXB0b3IuZ2V0KCk7XHJcblxyXG4gICAgICAgIGlmKCFpc0Z1bmN0aW9uKG9yaWdpbmFsVmFsdWUpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gYXBwbHkgQENhbGxPbmNlKCkgZGVjb3JhdG9yIHRvICcke3Byb3BlcnR5S2V5fScsIGl0IGlzIG5vdCBhIG1ldGhvZC5gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRlc2NyaXB0b3IudmFsdWUgPSBmdW5jdGlvbigpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBsZXQgYXJncyA9IGFyZ3VtZW50cztcclxuXHJcbiAgICAgICAgICAgIGlmKGlzUHJlc2VudCh0aW1lb3V0KSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIG9yaWdpbmFsVmFsdWUuYXBwbHkodGhpcywgYXJncyk7XHJcblxyXG4gICAgICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PlxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XHJcbiAgICAgICAgICAgICAgICB0aW1lb3V0ID0gbnVsbDtcclxuICAgICAgICAgICAgfSwgdGltZSkgYXMgYW55O1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xyXG4gICAgfTtcclxufSJdfQ==
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CallOnce = void 0;
4
+ const utils_1 = require("../utils");
5
+ /**
6
+ * Method is called only once for specified time, other calls during this time are blocked and it does nothing and returns null
7
+ * @param time - Number of miliseconds which specifies period while are calls to this method blocked after first call
8
+ */
9
+ function CallOnce(time) {
10
+ return function (_target, propertyKey, descriptor) {
11
+ var _a, _b;
12
+ let timeout;
13
+ const originalValue = (_a = descriptor.value) !== null && _a !== void 0 ? _a : (_b = descriptor.get) === null || _b === void 0 ? void 0 : _b.call(descriptor);
14
+ if (!(0, utils_1.isFunction)(originalValue)) {
15
+ throw new Error(`Unable to apply @CallOnce() decorator to '${propertyKey.toString()}', it is not a method.`);
16
+ }
17
+ descriptor.value = function (...args) {
18
+ if ((0, utils_1.isPresent)(timeout)) {
19
+ return;
20
+ }
21
+ originalValue.apply(this, args);
22
+ timeout = setTimeout(() => {
23
+ if ((0, utils_1.isPresent)(timeout)) {
24
+ clearTimeout(timeout);
25
+ }
26
+ timeout = null;
27
+ }, time);
28
+ };
29
+ return descriptor;
30
+ };
31
+ }
32
+ exports.CallOnce = CallOnce;
33
+ //# sourceMappingURL=callOnce.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callOnce.decorator.js","sourceRoot":"","sources":["../../../src/decorators/callOnce.decorator.ts"],"names":[],"mappings":";;;AACA,oCAA+C;AAE/C;;;GAGG;AACH,SAAgB,QAAQ,CAAC,IAAY;IAEjC,OAAO,UAAS,OAAe,EAAE,WAA0B,EAAE,UAA8B;;QAEvF,IAAI,OAAoB,CAAC;QACzB,MAAM,aAAa,GAAS,MAAA,UAAU,CAAC,KAAK,mCAAI,MAAA,UAAU,CAAC,GAAG,+CAAd,UAAU,CAAQ,CAAC;QAEnE,IAAG,CAAC,IAAA,kBAAU,EAAC,aAAa,CAAC,EAC7B;YACI,MAAM,IAAI,KAAK,CAAC,6CAA6C,WAAW,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;SAChH;QAED,UAAU,CAAC,KAAK,GAAG,UAAS,GAAG,IAAe;YAE1C,IAAG,IAAA,iBAAS,EAAC,OAAO,CAAC,EACrB;gBACI,OAAO;aACV;YAED,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEhC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAEtB,IAAG,IAAA,iBAAS,EAAC,OAAO,CAAC,EACrB;oBACI,YAAY,CAAC,OAAO,CAAC,CAAC;iBACzB;gBAED,OAAO,GAAG,IAAI,CAAC;YACnB,CAAC,EAAE,IAAI,CAAQ,CAAC;QACpB,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;AACN,CAAC;AAlCD,4BAkCC","sourcesContent":["import {Func} from '../types';\r\nimport {isFunction, isPresent} from '../utils';\r\n\r\n/**\r\n * Method is called only once for specified time, other calls during this time are blocked and it does nothing and returns null\r\n * @param time - Number of miliseconds which specifies period while are calls to this method blocked after first call\r\n */\r\nexport function CallOnce(time: number): MethodDecorator\r\n{\r\n return function(_target: Object, propertyKey: string|symbol, descriptor: PropertyDescriptor)\r\n {\r\n let timeout: number|null;\r\n const originalValue: Func = descriptor.value ?? descriptor.get?.();\r\n\r\n if(!isFunction(originalValue))\r\n {\r\n throw new Error(`Unable to apply @CallOnce() decorator to '${propertyKey.toString()}', it is not a method.`);\r\n }\r\n\r\n descriptor.value = function(...args: unknown[]): void\r\n {\r\n if(isPresent(timeout))\r\n {\r\n return;\r\n }\r\n\r\n originalValue.apply(this, args);\r\n\r\n timeout = setTimeout(() =>\r\n {\r\n if(isPresent(timeout))\r\n {\r\n clearTimeout(timeout);\r\n }\r\n \r\n timeout = null;\r\n }, time) as any;\r\n };\r\n\r\n return descriptor;\r\n };\r\n}"]}
@@ -1,30 +1,29 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DebounceCall = void 0;
4
- const utils_1 = require("../utils");
5
- /**
6
- * Adds special functionality to method call, that debounce method call for specified time
7
- * @param delay - Number of miliseconds that delays function call
8
- */
9
- function DebounceCall(delay) {
10
- return function (_target, propertyKey, descriptor) {
11
- var _a;
12
- let timeout;
13
- let originalValue = (_a = descriptor.value) !== null && _a !== void 0 ? _a : descriptor.get();
14
- if (!utils_1.isFunction(originalValue)) {
15
- throw new Error(`Unable to apply @DebounceCall() decorator to '${propertyKey}', it is not a method.`);
16
- }
17
- descriptor.value = function () {
18
- let args = arguments;
19
- if (utils_1.isPresent(timeout)) {
20
- clearTimeout(timeout);
21
- }
22
- timeout = setTimeout(() => {
23
- originalValue.apply(this, args);
24
- }, delay);
25
- };
26
- return descriptor;
27
- };
28
- }
29
- exports.DebounceCall = DebounceCall;
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2VDYWxsLmRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNvcmF0b3JzL2RlYm91bmNlQ2FsbC5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0NBQStDO0FBRS9DOzs7R0FHRztBQUNILFNBQWdCLFlBQVksQ0FBQyxLQUFhO0lBRXRDLE9BQU8sVUFBUyxPQUFlLEVBQUUsV0FBbUIsRUFBRSxVQUE4Qjs7UUFFaEYsSUFBSSxPQUFlLENBQUM7UUFDcEIsSUFBSSxhQUFhLFNBQWEsVUFBVSxDQUFDLEtBQUssbUNBQUksVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRW5FLElBQUcsQ0FBQyxrQkFBVSxDQUFDLGFBQWEsQ0FBQyxFQUM3QjtZQUNJLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELFdBQVcsd0JBQXdCLENBQUMsQ0FBQztTQUN6RztRQUVELFVBQVUsQ0FBQyxLQUFLLEdBQUc7WUFFZixJQUFJLElBQUksR0FBRyxTQUFTLENBQUM7WUFFckIsSUFBRyxpQkFBUyxDQUFDLE9BQU8sQ0FBQyxFQUNyQjtnQkFDSSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDekI7WUFFRCxPQUFPLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFFdEIsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDcEMsQ0FBQyxFQUFFLEtBQUssQ0FBUSxDQUFDO1FBQ3JCLENBQUMsQ0FBQztRQUVGLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUMsQ0FBQztBQUNOLENBQUM7QUE3QkQsb0NBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpc0Z1bmN0aW9uLCBpc1ByZXNlbnR9IGZyb20gJy4uL3V0aWxzJztcclxuXHJcbi8qKlxyXG4gKiBBZGRzIHNwZWNpYWwgZnVuY3Rpb25hbGl0eSB0byBtZXRob2QgY2FsbCwgdGhhdCBkZWJvdW5jZSBtZXRob2QgY2FsbCBmb3Igc3BlY2lmaWVkIHRpbWVcclxuICogQHBhcmFtIGRlbGF5IC0gTnVtYmVyIG9mIG1pbGlzZWNvbmRzIHRoYXQgZGVsYXlzIGZ1bmN0aW9uIGNhbGxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBEZWJvdW5jZUNhbGwoZGVsYXk6IG51bWJlcik6IE1ldGhvZERlY29yYXRvclxyXG57XHJcbiAgICByZXR1cm4gZnVuY3Rpb24oX3RhcmdldDogb2JqZWN0LCBwcm9wZXJ0eUtleTogc3RyaW5nLCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpXHJcbiAgICB7XHJcbiAgICAgICAgbGV0IHRpbWVvdXQ6IG51bWJlcjtcclxuICAgICAgICBsZXQgb3JpZ2luYWxWYWx1ZTogRnVuY3Rpb24gPSBkZXNjcmlwdG9yLnZhbHVlID8/IGRlc2NyaXB0b3IuZ2V0KCk7XHJcblxyXG4gICAgICAgIGlmKCFpc0Z1bmN0aW9uKG9yaWdpbmFsVmFsdWUpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gYXBwbHkgQERlYm91bmNlQ2FsbCgpIGRlY29yYXRvciB0byAnJHtwcm9wZXJ0eUtleX0nLCBpdCBpcyBub3QgYSBtZXRob2QuYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZXNjcmlwdG9yLnZhbHVlID0gZnVuY3Rpb24oKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGV0IGFyZ3MgPSBhcmd1bWVudHM7XHJcblxyXG4gICAgICAgICAgICBpZihpc1ByZXNlbnQodGltZW91dCkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT5cclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxWYWx1ZS5hcHBseSh0aGlzLCBhcmdzKTtcclxuICAgICAgICAgICAgfSwgZGVsYXkpIGFzIGFueTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcclxuICAgIH07XHJcbn0iXX0=
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DebounceCall = void 0;
4
+ const utils_1 = require("../utils");
5
+ /**
6
+ * Adds special functionality to method call, that debounce method call for specified time
7
+ * @param delay - Number of miliseconds that delays function call
8
+ */
9
+ function DebounceCall(delay) {
10
+ return function (_target, propertyKey, descriptor) {
11
+ var _a, _b;
12
+ let timeout;
13
+ const originalValue = (_a = descriptor.value) !== null && _a !== void 0 ? _a : (_b = descriptor.get) === null || _b === void 0 ? void 0 : _b.call(descriptor);
14
+ if (!(0, utils_1.isFunction)(originalValue)) {
15
+ throw new Error(`Unable to apply @DebounceCall() decorator to '${propertyKey.toString()}', it is not a method.`);
16
+ }
17
+ descriptor.value = function (...args) {
18
+ if ((0, utils_1.isPresent)(timeout)) {
19
+ clearTimeout(timeout);
20
+ }
21
+ timeout = setTimeout(() => {
22
+ originalValue.apply(this, args);
23
+ }, delay);
24
+ };
25
+ return descriptor;
26
+ };
27
+ }
28
+ exports.DebounceCall = DebounceCall;
29
+ //# sourceMappingURL=debounceCall.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debounceCall.decorator.js","sourceRoot":"","sources":["../../../src/decorators/debounceCall.decorator.ts"],"names":[],"mappings":";;;AACA,oCAA+C;AAE/C;;;GAGG;AACH,SAAgB,YAAY,CAAC,KAAa;IAEtC,OAAO,UAAS,OAAe,EAAE,WAA0B,EAAE,UAA8B;;QAEvF,IAAI,OAAe,CAAC;QACpB,MAAM,aAAa,GAAS,MAAA,UAAU,CAAC,KAAK,mCAAI,MAAA,UAAU,CAAC,GAAG,+CAAd,UAAU,CAAQ,CAAC;QAEnE,IAAG,CAAC,IAAA,kBAAU,EAAC,aAAa,CAAC,EAC7B;YACI,MAAM,IAAI,KAAK,CAAC,iDAAiD,WAAW,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;SACpH;QAED,UAAU,CAAC,KAAK,GAAG,UAAS,GAAG,IAAe;YAE1C,IAAG,IAAA,iBAAS,EAAC,OAAO,CAAC,EACrB;gBACI,YAAY,CAAC,OAAO,CAAC,CAAC;aACzB;YAED,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAEtB,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACpC,CAAC,EAAE,KAAK,CAAQ,CAAC;QACrB,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;AACN,CAAC;AA3BD,oCA2BC","sourcesContent":["import {Func} from '../types';\r\nimport {isFunction, isPresent} from '../utils';\r\n\r\n/**\r\n * Adds special functionality to method call, that debounce method call for specified time\r\n * @param delay - Number of miliseconds that delays function call\r\n */\r\nexport function DebounceCall(delay: number): MethodDecorator\r\n{\r\n return function(_target: Object, propertyKey: string|symbol, descriptor: PropertyDescriptor)\r\n {\r\n let timeout: number;\r\n const originalValue: Func = descriptor.value ?? descriptor.get?.();\r\n\r\n if(!isFunction(originalValue))\r\n {\r\n throw new Error(`Unable to apply @DebounceCall() decorator to '${propertyKey.toString()}', it is not a method.`);\r\n }\r\n\r\n descriptor.value = function(...args: unknown[]): void\r\n {\r\n if(isPresent(timeout))\r\n {\r\n clearTimeout(timeout);\r\n }\r\n\r\n timeout = setTimeout(() =>\r\n {\r\n originalValue.apply(this, args);\r\n }, delay) as any;\r\n };\r\n\r\n return descriptor;\r\n };\r\n}"]}
@@ -1,16 +1,7 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./bindThis.decorator"), exports);
14
- __exportStar(require("./callOnce.decorator"), exports);
15
- __exportStar(require("./debounceCall.decorator"), exports);
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVjb3JhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSx1REFBcUM7QUFDckMsdURBQXFDO0FBQ3JDLDJEQUF5QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmluZFRoaXMuZGVjb3JhdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9jYWxsT25jZS5kZWNvcmF0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL2RlYm91bmNlQ2FsbC5kZWNvcmF0b3InOyJdfQ==
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./bindThis.decorator"), exports);
5
+ (0, tslib_1.__exportStar)(require("./callOnce.decorator"), exports);
6
+ (0, tslib_1.__exportStar)(require("./debounceCall.decorator"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":";;;AAAA,oEAAqC;AACrC,oEAAqC;AACrC,wEAAyC","sourcesContent":["export * from './bindThis.decorator';\r\nexport * from './callOnce.decorator';\r\nexport * from './debounceCall.decorator';"]}