@sparted/shared-library 0.0.13 → 0.0.15

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 (105) hide show
  1. package/_virtual/_tslib.js +6 -50
  2. package/_virtual/_tslib.js.map +1 -1
  3. package/array/array-to-map.js +10 -9
  4. package/array/array-to-map.js.map +1 -1
  5. package/array/get-values-from-keys.js +7 -3
  6. package/array/get-values-from-keys.js.map +1 -1
  7. package/array/index.js +11 -2
  8. package/array/index.js.map +1 -1
  9. package/date/constants.js +12 -5
  10. package/date/constants.js.map +1 -1
  11. package/date/convert.js +9 -4
  12. package/date/convert.js.map +1 -1
  13. package/date/format-minutes.js +11 -7
  14. package/date/format-minutes.js.map +1 -1
  15. package/date/get-time-diff-as-string.js +41 -39
  16. package/date/get-time-diff-as-string.js.map +1 -1
  17. package/date/index.js +16 -3
  18. package/date/index.js.map +1 -1
  19. package/formatting/format-number.js +12 -8
  20. package/formatting/format-number.js.map +1 -1
  21. package/formatting/index.js +9 -1
  22. package/formatting/index.js.map +1 -1
  23. package/fp/index.js +9 -1
  24. package/fp/index.js.map +1 -1
  25. package/fp/run-while.js +10 -7
  26. package/fp/run-while.js.map +1 -1
  27. package/http/encode-search-object.js +15 -14
  28. package/http/encode-search-object.js.map +1 -1
  29. package/http/fetch-with-timeout.js +11 -7
  30. package/http/fetch-with-timeout.js.map +1 -1
  31. package/http/index.js +12 -2
  32. package/http/index.js.map +1 -1
  33. package/index.js +67 -27
  34. package/index.js.map +1 -1
  35. package/linked-list/apply-diff-linked-list.js +7 -3
  36. package/linked-list/apply-diff-linked-list.js.map +1 -1
  37. package/linked-list/create-linked-list.js +38 -34
  38. package/linked-list/create-linked-list.js.map +1 -1
  39. package/linked-list/find-linked-list.js +8 -5
  40. package/linked-list/find-linked-list.js.map +1 -1
  41. package/linked-list/get-linked-list.js +6 -2
  42. package/linked-list/get-linked-list.js.map +1 -1
  43. package/linked-list/index.js +9 -1
  44. package/linked-list/index.js.map +1 -1
  45. package/linked-list/insert-linked-list.js +22 -20
  46. package/linked-list/insert-linked-list.js.map +1 -1
  47. package/linked-list/linked-list-utils.js +36 -29
  48. package/linked-list/linked-list-utils.js.map +1 -1
  49. package/linked-list/reduce-linked-list.js +11 -7
  50. package/linked-list/reduce-linked-list.js.map +1 -1
  51. package/linked-list/remove-linked-list.js +19 -16
  52. package/linked-list/remove-linked-list.js.map +1 -1
  53. package/linked-list/update-linked-list.js +13 -10
  54. package/linked-list/update-linked-list.js.map +1 -1
  55. package/linked-list/while-linked-list.js +10 -7
  56. package/linked-list/while-linked-list.js.map +1 -1
  57. package/math/clamp-number.js +8 -5
  58. package/math/clamp-number.js.map +1 -1
  59. package/math/index.js +16 -4
  60. package/math/index.js.map +1 -1
  61. package/math/interpolate.js +11 -7
  62. package/math/interpolate.js.map +1 -1
  63. package/math/number-range.js +9 -5
  64. package/math/number-range.js.map +1 -1
  65. package/math/random-number.js +8 -5
  66. package/math/random-number.js.map +1 -1
  67. package/object/index.js +9 -1
  68. package/object/index.js.map +1 -1
  69. package/object/merge-deep.js +10 -9
  70. package/object/merge-deep.js.map +1 -1
  71. package/package.json +1 -1
  72. package/parsing/index.js +13 -3
  73. package/parsing/index.js.map +1 -1
  74. package/parsing/parse-boolean.js +6 -2
  75. package/parsing/parse-boolean.js.map +1 -1
  76. package/parsing/parse-enum.js +8 -4
  77. package/parsing/parse-enum.js.map +1 -1
  78. package/parsing/parse-number.js +7 -3
  79. package/parsing/parse-number.js.map +1 -1
  80. package/predicates/index.js +18 -5
  81. package/predicates/index.js.map +1 -1
  82. package/predicates/is-function.js +6 -2
  83. package/predicates/is-function.js.map +1 -1
  84. package/predicates/is-null.js +6 -2
  85. package/predicates/is-null.js.map +1 -1
  86. package/predicates/is-object.js +6 -2
  87. package/predicates/is-object.js.map +1 -1
  88. package/predicates/is-primitive.js +10 -5
  89. package/predicates/is-primitive.js.map +1 -1
  90. package/predicates/is-undefined.js +6 -2
  91. package/predicates/is-undefined.js.map +1 -1
  92. package/promise/delay.js +7 -3
  93. package/promise/delay.js.map +1 -1
  94. package/promise/execute-or-resolve-default.js +7 -3
  95. package/promise/execute-or-resolve-default.js.map +1 -1
  96. package/promise/execute-with-delay.js +11 -13
  97. package/promise/execute-with-delay.js.map +1 -1
  98. package/promise/index.js +13 -3
  99. package/promise/index.js.map +1 -1
  100. package/string/index.js +9 -1
  101. package/string/index.js.map +1 -1
  102. package/string/replace-in-template.js +15 -13
  103. package/string/replace-in-template.js.map +1 -1
  104. package/types/index.js +1 -0
  105. package/types/index.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"encode-search-object.js","sources":["../../src/http/encode-search-object.ts"],"sourcesContent":["import { SearchObject } from '../types';\n\nexport type EncodingConfig = {\n keyValueDelimiter: string,\n pairDelimiter: string,\n};\n\nconst defaultEncodingConfig: EncodingConfig = {\n keyValueDelimiter: ':',\n pairDelimiter: '+',\n};\n\nexport const encodeSearchValue = <T extends Record<string, string>>(\n searchValue: T,\n config: EncodingConfig = defaultEncodingConfig,\n) => {\n const { pairDelimiter, keyValueDelimiter } = config;\n\n return Object.entries(searchValue)\n .map(([key, value]) => `${key}${keyValueDelimiter}${encodeURI(value)}`)\n .join(pairDelimiter);\n};\n\nexport const encodeSearchObject = (searchObject: SearchObject): string => {\n const { sort, query, offset, limit } = searchObject;\n\n const sortEncoded = sort ? encodeSearchValue(sort) : null;\n const queryEncoded = query ? encodeSearchValue(query) : null;\n\n const urlParams = new URLSearchParams({\n offset: offset.toString(),\n limit: limit.toString(),\n });\n\n if (sortEncoded) urlParams.append('sort', sortEncoded);\n if (queryEncoded) urlParams.append('query', queryEncoded);\n\n return urlParams.toString();\n};\n"],"names":[],"mappings":"AAOA,IAAM,qBAAqB,GAAmB;AAC5C,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,aAAa,EAAE,GAAG;CACnB,CAAC;AAEW,IAAA,iBAAiB,GAAG,UAC/B,WAAc,EACd,MAA8C,EAAA;AAA9C,IAAA,IAAA,MAAA,KAAA,KAAA,CAAA,EAAA,EAAA,MAA8C,GAAA,qBAAA,CAAA,EAAA;IAEtC,IAAA,aAAa,GAAwB,MAAM,CAAA,aAA9B,EAAE,iBAAiB,GAAK,MAAM,CAAA,iBAAX,CAAY;AAEpD,IAAA,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;SAC/B,GAAG,CAAC,UAAC,EAAY,EAAA;YAAX,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;QAAM,OAAA,EAAA,CAAA,MAAA,CAAG,GAAG,CAAG,CAAA,MAAA,CAAA,iBAAiB,SAAG,SAAS,CAAC,KAAK,CAAC,CAAE,CAAA;AAA/C,KAA+C,CAAC;SACtE,IAAI,CAAC,aAAa,CAAC,CAAC;AACzB,EAAE;AAEK,IAAM,kBAAkB,GAAG,UAAC,YAA0B,EAAA;AACnD,IAAA,IAAA,IAAI,GAA2B,YAAY,KAAvC,EAAE,KAAK,GAAoB,YAAY,CAAA,KAAhC,EAAE,MAAM,GAAY,YAAY,CAAxB,MAAA,EAAE,KAAK,GAAK,YAAY,MAAjB,CAAkB;AAEpD,IAAA,IAAM,WAAW,GAAG,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC1D,IAAA,IAAM,YAAY,GAAG,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAE7D,IAAA,IAAM,SAAS,GAAG,IAAI,eAAe,CAAC;AACpC,QAAA,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;AACzB,QAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;AACxB,KAAA,CAAC,CAAC;AAEH,IAAA,IAAI,WAAW;AAAE,QAAA,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACvD,IAAA,IAAI,YAAY;AAAE,QAAA,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAE1D,IAAA,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC9B;;;;"}
1
+ {"version":3,"file":"encode-search-object.js","sources":["../../src/http/encode-search-object.ts"],"sourcesContent":["import { SearchObject } from '../types';\n\nexport type EncodingConfig = {\n keyValueDelimiter: string,\n pairDelimiter: string,\n};\n\nconst defaultEncodingConfig: EncodingConfig = {\n keyValueDelimiter: ':',\n pairDelimiter: '+',\n};\n\nexport const encodeSearchValue = <T extends Record<string, string>>(\n searchValue: T,\n config: EncodingConfig = defaultEncodingConfig,\n) => {\n const { pairDelimiter, keyValueDelimiter } = config;\n\n return Object.entries(searchValue)\n .map(([key, value]) => `${key}${keyValueDelimiter}${encodeURI(value)}`)\n .join(pairDelimiter);\n};\n\nexport const encodeSearchObject = (searchObject: SearchObject): string => {\n const { sort, query, offset, limit } = searchObject;\n\n const sortEncoded = sort ? encodeSearchValue(sort) : null;\n const queryEncoded = query ? encodeSearchValue(query) : null;\n\n const urlParams = new URLSearchParams({\n offset: offset.toString(),\n limit: limit.toString(),\n });\n\n if (sortEncoded) urlParams.append('sort', sortEncoded);\n if (queryEncoded) urlParams.append('query', queryEncoded);\n\n return urlParams.toString();\n};\n"],"names":[],"mappings":";;;;AAOA,MAAM,qBAAqB,GAAmB;AAC5C,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,aAAa,EAAE,GAAG;CACnB,CAAC;AAEW,MAAA,iBAAiB,GAAG,CAC/B,WAAc,EACd,MAAA,GAAyB,qBAAqB,KAC5C;AACF,IAAA,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC;AAEpD,IAAA,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;SAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG,GAAG,CAAA,EAAG,iBAAiB,CAAG,EAAA,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;SACtE,IAAI,CAAC,aAAa,CAAC,CAAC;AACzB,EAAE;AAEW,MAAA,kBAAkB,GAAG,CAAC,YAA0B,KAAY;IACvE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC;AAEpD,IAAA,MAAM,WAAW,GAAG,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC1D,IAAA,MAAM,YAAY,GAAG,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAE7D,IAAA,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC;AACpC,QAAA,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;AACzB,QAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;AACxB,KAAA,CAAC,CAAC;AAEH,IAAA,IAAI,WAAW;AAAE,QAAA,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACvD,IAAA,IAAI,YAAY;AAAE,QAAA,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAE1D,IAAA,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC9B;;;;;"}
@@ -1,18 +1,22 @@
1
- import { __rest, __assign } from '../_virtual/_tslib.js';
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _tslib = require('../_virtual/_tslib.js');
2
6
 
3
7
  /**
4
8
  * Use fetch to perform an HTTP request
5
9
  * Add an optional timeout, that will abort the request if it has not returned before
6
10
  */
7
- var fetchWithTimeout = function (input, init) {
8
- var abortController = new AbortController();
9
- var _a = init || {}, timeout = _a.timeout, rest = __rest(_a, ["timeout"]);
10
- var params = __assign(__assign({}, rest), { signal: abortController.signal });
11
+ const fetchWithTimeout = (input, init) => {
12
+ const abortController = new AbortController();
13
+ const _a = init || {}, { timeout } = _a, rest = _tslib.__rest(_a, ["timeout"]);
14
+ const params = Object.assign(Object.assign({}, rest), { signal: abortController.signal });
11
15
  if (timeout !== undefined) {
12
- setTimeout(function () { return abortController.abort(); }, timeout);
16
+ setTimeout(() => abortController.abort(), timeout);
13
17
  }
14
18
  return fetch(input, params);
15
19
  };
16
20
 
17
- export { fetchWithTimeout };
21
+ exports.fetchWithTimeout = fetchWithTimeout;
18
22
  //# sourceMappingURL=fetch-with-timeout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-with-timeout.js","sources":["../../src/http/fetch-with-timeout.ts"],"sourcesContent":["export type RequestInitWithTimeout = RequestInit & {\n timeout?: number\n};\n\n/**\n * Use fetch to perform an HTTP request\n * Add an optional timeout, that will abort the request if it has not returned before\n */\nexport const fetchWithTimeout = (input: RequestInfo, init?: Omit<RequestInitWithTimeout, 'signal'> | undefined): Promise<Response> => {\n const abortController = new AbortController();\n\n const { timeout, ...rest } = init || {};\n\n const params = {\n ...rest,\n signal: abortController.signal,\n };\n\n if (timeout !== undefined) {\n setTimeout(() => abortController.abort(), timeout);\n }\n\n return fetch(input, params);\n};\n"],"names":[],"mappings":";;AAIA;;;AAGG;AACU,IAAA,gBAAgB,GAAG,UAAC,KAAkB,EAAE,IAAyD,EAAA;AAC5G,IAAA,IAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;AAE9C,IAAA,IAAM,EAAuB,GAAA,IAAI,IAAI,EAAE,EAA/B,OAAO,GAAA,EAAA,CAAA,OAAA,EAAK,IAAI,GAAA,MAAA,CAAA,EAAA,EAAlB,CAAoB,SAAA,CAAA,CAAa,CAAC;IAExC,IAAM,MAAM,GACP,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,IAAI,CACP,EAAA,EAAA,MAAM,EAAE,eAAe,CAAC,MAAM,EAAA,CAC/B,CAAC;IAEF,IAAI,OAAO,KAAK,SAAS,EAAE;AACzB,QAAA,UAAU,CAAC,YAAA,EAAM,OAAA,eAAe,CAAC,KAAK,EAAE,CAAA,EAAA,EAAE,OAAO,CAAC,CAAC;AACpD,KAAA;AAED,IAAA,OAAO,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9B;;;;"}
1
+ {"version":3,"file":"fetch-with-timeout.js","sources":["../../src/http/fetch-with-timeout.ts"],"sourcesContent":["export type RequestInitWithTimeout = RequestInit & {\n timeout?: number\n};\n\n/**\n * Use fetch to perform an HTTP request\n * Add an optional timeout, that will abort the request if it has not returned before\n */\nexport const fetchWithTimeout = (input: RequestInfo, init?: Omit<RequestInitWithTimeout, 'signal'> | undefined): Promise<Response> => {\n const abortController = new AbortController();\n\n const { timeout, ...rest } = init || {};\n\n const params = {\n ...rest,\n signal: abortController.signal,\n };\n\n if (timeout !== undefined) {\n setTimeout(() => abortController.abort(), timeout);\n }\n\n return fetch(input, params);\n};\n"],"names":["__rest"],"mappings":";;;;;;AAIA;;;AAGG;MACU,gBAAgB,GAAG,CAAC,KAAkB,EAAE,IAAyD,KAAuB;AACnI,IAAA,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;AAE9C,IAAA,MAAM,EAAuB,GAAA,IAAI,IAAI,EAAE,EAAjC,EAAE,OAAO,EAAA,GAAA,EAAwB,EAAnB,IAAI,GAAlBA,aAAA,CAAA,EAAA,EAAA,CAAA,SAAA,CAAoB,CAAa,CAAC;IAExC,MAAM,MAAM,GACP,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CACP,EAAA,EAAA,MAAM,EAAE,eAAe,CAAC,MAAM,EAAA,CAC/B,CAAC;IAEF,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,UAAU,CAAC,MAAM,eAAe,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;AACpD,KAAA;AAED,IAAA,OAAO,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9B;;;;"}
package/http/index.js CHANGED
@@ -1,3 +1,13 @@
1
- export { encodeSearchObject, encodeSearchValue } from './encode-search-object.js';
2
- export { fetchWithTimeout } from './fetch-with-timeout.js';
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var encodeSearchObject = require('./encode-search-object.js');
6
+ var fetchWithTimeout = require('./fetch-with-timeout.js');
7
+
8
+
9
+
10
+ exports.encodeSearchObject = encodeSearchObject.encodeSearchObject;
11
+ exports.encodeSearchValue = encodeSearchObject.encodeSearchValue;
12
+ exports.fetchWithTimeout = fetchWithTimeout.fetchWithTimeout;
3
13
  //# sourceMappingURL=index.js.map
package/http/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
package/index.js CHANGED
@@ -1,28 +1,68 @@
1
- export { arrayToMap } from './array/array-to-map.js';
2
- export { valuesFromKeys } from './array/get-values-from-keys.js';
3
- export { MS_DAY, MS_HOUR, MS_MINUTE, MS_SECOND } from './date/constants.js';
4
- export { formatMinutes } from './date/format-minutes.js';
5
- export { getTimeDiffAsString } from './date/get-time-diff-as-string.js';
6
- export { formatNumber } from './formatting/format-number.js';
7
- export { runWhile } from './fp/run-while.js';
8
- export { encodeSearchObject, encodeSearchValue } from './http/encode-search-object.js';
9
- export { fetchWithTimeout } from './http/fetch-with-timeout.js';
10
- export { createLinkedList } from './linked-list/create-linked-list.js';
11
- export { clampNumber } from './math/clamp-number.js';
12
- export { interpolate } from './math/interpolate.js';
13
- export { assertNumberRange, isNumberInRange } from './math/number-range.js';
14
- export { randomNumber } from './math/random-number.js';
15
- export { mergeDeep } from './object/merge-deep.js';
16
- export { parseBoolean } from './parsing/parse-boolean.js';
17
- export { createEnumParser } from './parsing/parse-enum.js';
18
- export { parseNumber } from './parsing/parse-number.js';
19
- export { isFunction } from './predicates/is-function.js';
20
- export { isNull } from './predicates/is-null.js';
21
- export { isObject } from './predicates/is-object.js';
22
- export { isArrayOfPrimitive, isPrimitive } from './predicates/is-primitive.js';
23
- export { isUndefined } from './predicates/is-undefined.js';
24
- export { executeOrResolveDefault } from './promise/execute-or-resolve-default.js';
25
- export { executeWithDelay } from './promise/execute-with-delay.js';
26
- export { delay } from './promise/delay.js';
27
- export { replaceInTemplate } from './string/replace-in-template.js';
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var arrayToMap = require('./array/array-to-map.js');
6
+ var getValuesFromKeys = require('./array/get-values-from-keys.js');
7
+ var constants = require('./date/constants.js');
8
+ var formatMinutes = require('./date/format-minutes.js');
9
+ var getTimeDiffAsString = require('./date/get-time-diff-as-string.js');
10
+ var formatNumber = require('./formatting/format-number.js');
11
+ var runWhile = require('./fp/run-while.js');
12
+ var encodeSearchObject = require('./http/encode-search-object.js');
13
+ var fetchWithTimeout = require('./http/fetch-with-timeout.js');
14
+ var createLinkedList = require('./linked-list/create-linked-list.js');
15
+ var clampNumber = require('./math/clamp-number.js');
16
+ var interpolate = require('./math/interpolate.js');
17
+ var numberRange = require('./math/number-range.js');
18
+ var randomNumber = require('./math/random-number.js');
19
+ var mergeDeep = require('./object/merge-deep.js');
20
+ var parseBoolean = require('./parsing/parse-boolean.js');
21
+ var parseEnum = require('./parsing/parse-enum.js');
22
+ var parseNumber = require('./parsing/parse-number.js');
23
+ var isFunction = require('./predicates/is-function.js');
24
+ var isNull = require('./predicates/is-null.js');
25
+ var isObject = require('./predicates/is-object.js');
26
+ var isPrimitive = require('./predicates/is-primitive.js');
27
+ var isUndefined = require('./predicates/is-undefined.js');
28
+ var executeOrResolveDefault = require('./promise/execute-or-resolve-default.js');
29
+ var executeWithDelay = require('./promise/execute-with-delay.js');
30
+ var delay = require('./promise/delay.js');
31
+ var replaceInTemplate = require('./string/replace-in-template.js');
32
+
33
+
34
+
35
+ exports.arrayToMap = arrayToMap.arrayToMap;
36
+ exports.valuesFromKeys = getValuesFromKeys.valuesFromKeys;
37
+ exports.MS_DAY = constants.MS_DAY;
38
+ exports.MS_HOUR = constants.MS_HOUR;
39
+ exports.MS_MINUTE = constants.MS_MINUTE;
40
+ exports.MS_SECOND = constants.MS_SECOND;
41
+ exports.formatMinutes = formatMinutes.formatMinutes;
42
+ exports.getTimeDiffAsString = getTimeDiffAsString.getTimeDiffAsString;
43
+ exports.formatNumber = formatNumber.formatNumber;
44
+ exports.runWhile = runWhile.runWhile;
45
+ exports.encodeSearchObject = encodeSearchObject.encodeSearchObject;
46
+ exports.encodeSearchValue = encodeSearchObject.encodeSearchValue;
47
+ exports.fetchWithTimeout = fetchWithTimeout.fetchWithTimeout;
48
+ exports.createLinkedList = createLinkedList.createLinkedList;
49
+ exports.clampNumber = clampNumber.clampNumber;
50
+ exports.interpolate = interpolate.interpolate;
51
+ exports.assertNumberRange = numberRange.assertNumberRange;
52
+ exports.isNumberInRange = numberRange.isNumberInRange;
53
+ exports.randomNumber = randomNumber.randomNumber;
54
+ exports.mergeDeep = mergeDeep.mergeDeep;
55
+ exports.parseBoolean = parseBoolean.parseBoolean;
56
+ exports.createEnumParser = parseEnum.createEnumParser;
57
+ exports.parseNumber = parseNumber.parseNumber;
58
+ exports.isFunction = isFunction.isFunction;
59
+ exports.isNull = isNull.isNull;
60
+ exports.isObject = isObject.isObject;
61
+ exports.isArrayOfPrimitive = isPrimitive.isArrayOfPrimitive;
62
+ exports.isPrimitive = isPrimitive.isPrimitive;
63
+ exports.isUndefined = isUndefined.isUndefined;
64
+ exports.executeOrResolveDefault = executeOrResolveDefault.executeOrResolveDefault;
65
+ exports.executeWithDelay = executeWithDelay.executeWithDelay;
66
+ exports.delay = delay.delay;
67
+ exports.replaceInTemplate = replaceInTemplate.replaceInTemplate;
28
68
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,8 @@
1
- var applyDiffLinkedList = function (before, after, list) {
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const applyDiffLinkedList = (before, after, list) => {
2
6
  // Delete
3
7
  if (!after && before) {
4
8
  return list.remove(before.id);
@@ -15,7 +19,7 @@ var applyDiffLinkedList = function (before, after, list) {
15
19
  if (before.id !== after.id) {
16
20
  throw new Error('Cannot change id of a ListNode');
17
21
  }
18
- var listWithPotentialReorder = before.nextId === after.nextId
22
+ const listWithPotentialReorder = before.nextId === after.nextId
19
23
  ? list
20
24
  : list
21
25
  .remove(before.id)
@@ -23,5 +27,5 @@ var applyDiffLinkedList = function (before, after, list) {
23
27
  return listWithPotentialReorder.update(after);
24
28
  };
25
29
 
26
- export { applyDiffLinkedList };
30
+ exports.applyDiffLinkedList = applyDiffLinkedList;
27
31
  //# sourceMappingURL=apply-diff-linked-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply-diff-linked-list.js","sources":["../../src/linked-list/apply-diff-linked-list.ts"],"sourcesContent":["import { LinkedList, LinkedListItem, ManipulationConfig } from './type';\n\nexport const applyDiffLinkedList = <T extends LinkedListItem>(\n before: T | null,\n after: T | null,\n list: LinkedList<T>,\n) => {\n // Delete\n if (!after && before) {\n return list.remove(before.id);\n }\n\n // Insert\n if (!before && after) {\n return list.insert(after);\n }\n\n // For the following commands, none of the 2 items can be null\n // We dont use && because checks are already done above, but ts cannot infer that they cannot be null afterwards\n if (!before || !after) {\n throw new Error('Cannot have both before & after as null');\n }\n\n if (before.id !== after.id) {\n throw new Error('Cannot change id of a ListNode');\n }\n\n const listWithPotentialReorder = before.nextId === after.nextId\n ? list\n : list\n .remove(before.id)\n .insert(after);\n\n return listWithPotentialReorder.update(after);\n};"],"names":[],"mappings":"IAEa,mBAAmB,GAAG,UACjC,MAAgB,EAChB,KAAe,EACf,IAAmB,EAAA;;AAGnB,IAAA,IAAI,CAAC,KAAK,IAAI,MAAM,EAAE;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC/B,KAAA;;AAGD,IAAA,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;AACpB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3B,KAAA;;;AAID,IAAA,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE;AACrB,QAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC5D,KAAA;AAED,IAAA,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,EAAE;AAC1B,QAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACnD,KAAA;IAED,IAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;AAC7D,UAAE,IAAI;AACN,UAAE,IAAI;AACH,aAAA,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;aACjB,MAAM,CAAC,KAAK,CAAC,CAAC;AAEnB,IAAA,OAAO,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChD;;;;"}
1
+ {"version":3,"file":"apply-diff-linked-list.js","sources":["../../src/linked-list/apply-diff-linked-list.ts"],"sourcesContent":["import { LinkedList, LinkedListItem, ManipulationConfig } from './type';\n\nexport const applyDiffLinkedList = <T extends LinkedListItem>(\n before: T | null,\n after: T | null,\n list: LinkedList<T>,\n) => {\n // Delete\n if (!after && before) {\n return list.remove(before.id);\n }\n\n // Insert\n if (!before && after) {\n return list.insert(after);\n }\n\n // For the following commands, none of the 2 items can be null\n // We dont use && because checks are already done above, but ts cannot infer that they cannot be null afterwards\n if (!before || !after) {\n throw new Error('Cannot have both before & after as null');\n }\n\n if (before.id !== after.id) {\n throw new Error('Cannot change id of a ListNode');\n }\n\n const listWithPotentialReorder = before.nextId === after.nextId\n ? list\n : list\n .remove(before.id)\n .insert(after);\n\n return listWithPotentialReorder.update(after);\n};"],"names":[],"mappings":";;;;AAEa,MAAA,mBAAmB,GAAG,CACjC,MAAgB,EAChB,KAAe,EACf,IAAmB,KACjB;;AAEF,IAAA,IAAI,CAAC,KAAK,IAAI,MAAM,EAAE;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC/B,KAAA;;AAGD,IAAA,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;AACpB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3B,KAAA;;;AAID,IAAA,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE;AACrB,QAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC5D,KAAA;AAED,IAAA,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,EAAE;AAC1B,QAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACnD,KAAA;IAED,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;AAC7D,UAAE,IAAI;AACN,UAAE,IAAI;AACH,aAAA,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;aACjB,MAAM,CAAC,KAAK,CAAC,CAAC;AAEnB,IAAA,OAAO,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChD;;;;"}
@@ -1,23 +1,27 @@
1
- import { reduceLinkedList } from './reduce-linked-list.js';
2
- import { findLinkedList } from './find-linked-list.js';
3
- import { whileLinkedList } from './while-linked-list.js';
4
- import { walkListItemRecord } from './linked-list-utils.js';
5
- import { removeLinkedList } from './remove-linked-list.js';
6
- import { insertLinkedList } from './insert-linked-list.js';
7
- import { getLinkedList } from './get-linked-list.js';
8
- import { updateLinkedList } from './update-linked-list.js';
9
- import { applyDiffLinkedList } from './apply-diff-linked-list.js';
1
+ 'use strict';
10
2
 
11
- var createLinkedList = function (headId, items) {
12
- var head = headId ? items[headId] : null;
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var reduceLinkedList = require('./reduce-linked-list.js');
6
+ var findLinkedList = require('./find-linked-list.js');
7
+ var whileLinkedList = require('./while-linked-list.js');
8
+ var linkedListUtils = require('./linked-list-utils.js');
9
+ var removeLinkedList = require('./remove-linked-list.js');
10
+ var insertLinkedList = require('./insert-linked-list.js');
11
+ var getLinkedList = require('./get-linked-list.js');
12
+ var updateLinkedList = require('./update-linked-list.js');
13
+ var applyDiffLinkedList = require('./apply-diff-linked-list.js');
14
+
15
+ const createLinkedList = (headId, items) => {
16
+ const head = headId ? items[headId] : null;
13
17
  if (head === undefined) {
14
18
  throw new Error('Cannot find the head.');
15
19
  }
16
- var list = { headId: headId, items: items };
17
- var _a = walkListItemRecord(function (acc, current) {
18
- var newCount = acc.count + 1;
19
- var isDoubleLinked = current.previousId !== undefined;
20
- var incompatibleFormats = acc.isDoubleLinked !== undefined && acc.isDoubleLinked !== isDoubleLinked;
20
+ const list = { headId, items };
21
+ const { isDoubleLinked, count } = linkedListUtils.walkListItemRecord((acc, current) => {
22
+ const newCount = acc.count + 1;
23
+ const isDoubleLinked = current.previousId !== undefined;
24
+ const incompatibleFormats = acc.isDoubleLinked !== undefined && acc.isDoubleLinked !== isDoubleLinked;
21
25
  if (incompatibleFormats || (isDoubleLinked && current.previousId !== acc.previousId)) {
22
26
  throw new Error('Invalid previous node in the linked list');
23
27
  }
@@ -25,7 +29,7 @@ var createLinkedList = function (headId, items) {
25
29
  result: {
26
30
  previousId: current.id,
27
31
  count: newCount,
28
- isDoubleLinked: isDoubleLinked,
32
+ isDoubleLinked,
29
33
  }
30
34
  };
31
35
  }, {
@@ -35,32 +39,32 @@ var createLinkedList = function (headId, items) {
35
39
  previousId: null,
36
40
  },
37
41
  startId: headId,
38
- items: items,
39
- }), isDoubleLinked = _a.isDoubleLinked, count = _a.count;
40
- var manipulationConfig = {
41
- factory: function (list) { return createLinkedList(list.headId, list.items); },
42
+ items,
43
+ });
44
+ const manipulationConfig = {
45
+ factory: (list) => createLinkedList(list.headId, list.items),
42
46
  /**
43
47
  * At this point isDoubleLinked cannot be undefined
44
48
  */
45
49
  isDoubleLinkList: isDoubleLinked,
46
- list: list,
50
+ list,
47
51
  };
48
- var linkedList = {
49
- head: head,
50
- items: items,
52
+ const linkedList = {
53
+ head,
54
+ items,
51
55
  size: count,
52
56
  isDoubleLinked: isDoubleLinked,
53
- reduce: function (cb, initValue) { return reduceLinkedList(cb, initValue, list); },
54
- find: function (predicate) { return findLinkedList(predicate, list); },
55
- while: function (predicate, startId) { return whileLinkedList(predicate, list, startId); },
56
- remove: function (id) { return removeLinkedList(id, manipulationConfig); },
57
- insert: function (item) { return insertLinkedList(item, manipulationConfig); },
58
- get: function (id) { return getLinkedList(id, list); },
59
- update: function (item) { return updateLinkedList(item, manipulationConfig); },
60
- applyDiff: function (before, after) { return applyDiffLinkedList(before, after, linkedList); },
57
+ reduce: (cb, initValue) => reduceLinkedList.reduceLinkedList(cb, initValue, list),
58
+ find: (predicate) => findLinkedList.findLinkedList(predicate, list),
59
+ while: (predicate, startId) => whileLinkedList.whileLinkedList(predicate, list, startId),
60
+ remove: (id) => removeLinkedList.removeLinkedList(id, manipulationConfig),
61
+ insert: (item) => insertLinkedList.insertLinkedList(item, manipulationConfig),
62
+ get: (id) => getLinkedList.getLinkedList(id, list),
63
+ update: (item) => updateLinkedList.updateLinkedList(item, manipulationConfig),
64
+ applyDiff: (before, after) => applyDiffLinkedList.applyDiffLinkedList(before, after, linkedList),
61
65
  };
62
66
  return linkedList;
63
67
  };
64
68
 
65
- export { createLinkedList };
69
+ exports.createLinkedList = createLinkedList;
66
70
  //# sourceMappingURL=create-linked-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-linked-list.js","sources":["../../src/linked-list/create-linked-list.ts"],"sourcesContent":["import { LinkedListItem, LinkedList, ManipulationConfig } from './type';\n\nimport { reduceLinkedList } from './reduce-linked-list';\nimport { findLinkedList } from './find-linked-list';\nimport { whileLinkedList } from './while-linked-list';\nimport { walkListItemRecord } from './linked-list-utils';\nimport { removeLinkedList } from './remove-linked-list';\nimport { insertLinkedList } from './insert-linked-list';\nimport { getLinkedList } from './get-linked-list';\nimport { updateLinkedList } from './update-linked-list';\nimport { applyDiffLinkedList } from './apply-diff-linked-list';\n\ntype LinkedListValidation = {\n isDoubleLinked?: boolean,\n previousId: null | string,\n count: number,\n}\n\nexport const createLinkedList = <T extends LinkedListItem>(headId: string | null, items: Record<string, T>): LinkedList<T> => {\n const head = headId ? items[headId] : null;\n\n if (head === undefined) {\n throw new Error('Cannot find the head.');\n }\n\n const list = { headId, items };\n\n const { isDoubleLinked, count } = walkListItemRecord((acc, current) => {\n const newCount = acc.count + 1;\n const isDoubleLinked = current.previousId !== undefined;\n const incompatibleFormats = acc.isDoubleLinked !== undefined && acc.isDoubleLinked !== isDoubleLinked;\n\n if (incompatibleFormats || (isDoubleLinked && current.previousId !== acc.previousId)) {\n throw new Error('Invalid previous node in the linked list');\n }\n\n return {\n result: {\n previousId: current.id,\n count: newCount,\n isDoubleLinked,\n }\n }\n }, {\n initValue: {\n isDoubleLinked: undefined,\n count: 0,\n previousId: null,\n } as LinkedListValidation,\n startId: headId,\n items,\n });\n\n const manipulationConfig: ManipulationConfig<T> = {\n factory: (list) => createLinkedList(list.headId, list.items),\n /**\n * At this point isDoubleLinked cannot be undefined\n */\n isDoubleLinkList: isDoubleLinked!,\n list,\n };\n\n const linkedList: LinkedList<T> = {\n head,\n items,\n size: count,\n isDoubleLinked: isDoubleLinked!,\n reduce: (cb, initValue) => reduceLinkedList(cb, initValue, list),\n find: (predicate) => findLinkedList(predicate, list),\n while: (predicate, startId) => whileLinkedList(predicate, list, startId),\n remove: (id) => removeLinkedList(id, manipulationConfig),\n insert: (item) => insertLinkedList(item, manipulationConfig),\n get: (id) => getLinkedList(id, list),\n update: (item) => updateLinkedList(item, manipulationConfig),\n applyDiff: (before, after) => applyDiffLinkedList(before, after, linkedList),\n };\n\n return linkedList;\n};"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-linked-list.js","sources":["../../src/linked-list/create-linked-list.ts"],"sourcesContent":["import { LinkedListItem, LinkedList, ManipulationConfig } from './type';\n\nimport { reduceLinkedList } from './reduce-linked-list';\nimport { findLinkedList } from './find-linked-list';\nimport { whileLinkedList } from './while-linked-list';\nimport { walkListItemRecord } from './linked-list-utils';\nimport { removeLinkedList } from './remove-linked-list';\nimport { insertLinkedList } from './insert-linked-list';\nimport { getLinkedList } from './get-linked-list';\nimport { updateLinkedList } from './update-linked-list';\nimport { applyDiffLinkedList } from './apply-diff-linked-list';\n\ntype LinkedListValidation = {\n isDoubleLinked?: boolean,\n previousId: null | string,\n count: number,\n}\n\nexport const createLinkedList = <T extends LinkedListItem>(headId: string | null, items: Record<string, T>): LinkedList<T> => {\n const head = headId ? items[headId] : null;\n\n if (head === undefined) {\n throw new Error('Cannot find the head.');\n }\n\n const list = { headId, items };\n\n const { isDoubleLinked, count } = walkListItemRecord((acc, current) => {\n const newCount = acc.count + 1;\n const isDoubleLinked = current.previousId !== undefined;\n const incompatibleFormats = acc.isDoubleLinked !== undefined && acc.isDoubleLinked !== isDoubleLinked;\n\n if (incompatibleFormats || (isDoubleLinked && current.previousId !== acc.previousId)) {\n throw new Error('Invalid previous node in the linked list');\n }\n\n return {\n result: {\n previousId: current.id,\n count: newCount,\n isDoubleLinked,\n }\n }\n }, {\n initValue: {\n isDoubleLinked: undefined,\n count: 0,\n previousId: null,\n } as LinkedListValidation,\n startId: headId,\n items,\n });\n\n const manipulationConfig: ManipulationConfig<T> = {\n factory: (list) => createLinkedList(list.headId, list.items),\n /**\n * At this point isDoubleLinked cannot be undefined\n */\n isDoubleLinkList: isDoubleLinked!,\n list,\n };\n\n const linkedList: LinkedList<T> = {\n head,\n items,\n size: count,\n isDoubleLinked: isDoubleLinked!,\n reduce: (cb, initValue) => reduceLinkedList(cb, initValue, list),\n find: (predicate) => findLinkedList(predicate, list),\n while: (predicate, startId) => whileLinkedList(predicate, list, startId),\n remove: (id) => removeLinkedList(id, manipulationConfig),\n insert: (item) => insertLinkedList(item, manipulationConfig),\n get: (id) => getLinkedList(id, list),\n update: (item) => updateLinkedList(item, manipulationConfig),\n applyDiff: (before, after) => applyDiffLinkedList(before, after, linkedList),\n };\n\n return linkedList;\n};"],"names":["walkListItemRecord","reduceLinkedList","findLinkedList","whileLinkedList","removeLinkedList","insertLinkedList","getLinkedList","updateLinkedList","applyDiffLinkedList"],"mappings":";;;;;;;;;;;;;;MAkBa,gBAAgB,GAAG,CAA2B,MAAqB,EAAE,KAAwB,KAAmB;AAC3H,IAAA,MAAM,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAE3C,IAAI,IAAI,KAAK,SAAS,EAAE;AACtB,QAAA,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;AAC1C,KAAA;AAED,IAAA,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAE/B,IAAA,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,GAAGA,kCAAkB,CAAC,CAAC,GAAG,EAAE,OAAO,KAAI;AACpE,QAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;AAC/B,QAAA,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC;AACxD,QAAA,MAAM,mBAAmB,GAAG,GAAG,CAAC,cAAc,KAAK,SAAS,IAAI,GAAG,CAAC,cAAc,KAAK,cAAc,CAAC;AAEtG,QAAA,IAAI,mBAAmB,KAAK,cAAc,IAAI,OAAO,CAAC,UAAU,KAAK,GAAG,CAAC,UAAU,CAAC,EAAE;AACpF,YAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAC7D,SAAA;QAED,OAAO;AACL,YAAA,MAAM,EAAE;gBACN,UAAU,EAAE,OAAO,CAAC,EAAE;AACtB,gBAAA,KAAK,EAAE,QAAQ;gBACf,cAAc;AACf,aAAA;SACF,CAAA;AACH,KAAC,EAAE;AACD,QAAA,SAAS,EAAE;AACT,YAAA,cAAc,EAAE,SAAS;AACzB,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,UAAU,EAAE,IAAI;AACO,SAAA;AACzB,QAAA,OAAO,EAAE,MAAM;QACf,KAAK;AACN,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,kBAAkB,GAA0B;AAChD,QAAA,OAAO,EAAE,CAAC,IAAI,KAAK,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC;AAC5D;;AAEG;AACH,QAAA,gBAAgB,EAAE,cAAe;QACjC,IAAI;KACL,CAAC;AAEF,IAAA,MAAM,UAAU,GAAkB;QAChC,IAAI;QACJ,KAAK;AACL,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,cAAc,EAAE,cAAe;AAC/B,QAAA,MAAM,EAAE,CAAC,EAAE,EAAE,SAAS,KAAKC,iCAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC;QAChE,IAAI,EAAE,CAAC,SAAS,KAAKC,6BAAc,CAAC,SAAS,EAAE,IAAI,CAAC;AACpD,QAAA,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,KAAKC,+BAAe,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC;QACxE,MAAM,EAAE,CAAC,EAAE,KAAKC,iCAAgB,CAAC,EAAE,EAAE,kBAAkB,CAAC;QACxD,MAAM,EAAE,CAAC,IAAI,KAAKC,iCAAgB,CAAC,IAAI,EAAE,kBAAkB,CAAC;QAC5D,GAAG,EAAE,CAAC,EAAE,KAAKC,2BAAa,CAAC,EAAE,EAAE,IAAI,CAAC;QACpC,MAAM,EAAE,CAAC,IAAI,KAAKC,iCAAgB,CAAC,IAAI,EAAE,kBAAkB,CAAC;AAC5D,QAAA,SAAS,EAAE,CAAC,MAAM,EAAE,KAAK,KAAKC,uCAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC;KAC7E,CAAC;AAEF,IAAA,OAAO,UAAU,CAAC;AACpB;;;;"}
@@ -1,8 +1,11 @@
1
- import { walkListItemRecord } from './linked-list-utils.js';
1
+ 'use strict';
2
2
 
3
- var findLinkedList = function (predicate, list) {
4
- list.headId;
5
- return walkListItemRecord(function (acc, item) {
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var linkedListUtils = require('./linked-list-utils.js');
6
+
7
+ const findLinkedList = (predicate, list) => {
8
+ return linkedListUtils.walkListItemRecord((acc, item) => {
6
9
  if (predicate(item)) {
7
10
  return {
8
11
  result: item,
@@ -21,5 +24,5 @@ var findLinkedList = function (predicate, list) {
21
24
  });
22
25
  };
23
26
 
24
- export { findLinkedList };
27
+ exports.findLinkedList = findLinkedList;
25
28
  //# sourceMappingURL=find-linked-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"find-linked-list.js","sources":["../../src/linked-list/find-linked-list.ts"],"sourcesContent":["import { LinkedListItem, ItemPredicate, HeadAndItems } from './type';\nimport { walkListItemRecord } from './linked-list-utils';\n\nexport const findLinkedList = <Item extends LinkedListItem>(\n predicate: ItemPredicate<Item>,\n list: HeadAndItems<Item>,\n): Item | null => {\n const { headId } = list;\n\n return walkListItemRecord(\n (acc, item) => {\n if (predicate(item)) {\n return {\n result: item,\n control: {\n stop: true,\n },\n };\n };\n\n return {\n result: acc,\n };\n }, {\n initValue: null as Item | null,\n items: list.items,\n startId: list.headId,\n },\n );\n};\n"],"names":[],"mappings":";;AAGa,IAAA,cAAc,GAAG,UAC5B,SAA8B,EAC9B,IAAwB,EAAA;AAEhB,IAAW,IAAI,CAAA,OAAC;AAExB,IAAA,OAAO,kBAAkB,CACvB,UAAC,GAAG,EAAE,IAAI,EAAA;AACR,QAAA,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;YACnB,OAAO;AACL,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA;aACF,CAAC;AACH,SAAA;QAED,OAAO;AACL,YAAA,MAAM,EAAE,GAAG;SACZ,CAAC;AACJ,KAAC,EAAE;AACD,QAAA,SAAS,EAAE,IAAmB;QAC9B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,MAAM;AACrB,KAAA,CACF,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"find-linked-list.js","sources":["../../src/linked-list/find-linked-list.ts"],"sourcesContent":["import { LinkedListItem, ItemPredicate, HeadAndItems } from './type';\nimport { walkListItemRecord } from './linked-list-utils';\n\nexport const findLinkedList = <Item extends LinkedListItem>(\n predicate: ItemPredicate<Item>,\n list: HeadAndItems<Item>,\n): Item | null => {\n const { headId } = list;\n\n return walkListItemRecord(\n (acc, item) => {\n if (predicate(item)) {\n return {\n result: item,\n control: {\n stop: true,\n },\n };\n };\n\n return {\n result: acc,\n };\n }, {\n initValue: null as Item | null,\n items: list.items,\n startId: list.headId,\n },\n );\n};\n"],"names":["walkListItemRecord"],"mappings":";;;;;;MAGa,cAAc,GAAG,CAC5B,SAA8B,EAC9B,IAAwB,KACT;AAGf,IAAA,OAAOA,kCAAkB,CACvB,CAAC,GAAG,EAAE,IAAI,KAAI;AACZ,QAAA,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;YACnB,OAAO;AACL,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA;aACF,CAAC;AACH,SAAA;QAED,OAAO;AACL,YAAA,MAAM,EAAE,GAAG;SACZ,CAAC;AACJ,KAAC,EAAE;AACD,QAAA,SAAS,EAAE,IAAmB;QAC9B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,MAAM;AACrB,KAAA,CACF,CAAC;AACJ;;;;"}
@@ -1,9 +1,13 @@
1
- var getLinkedList = function (id, list) {
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const getLinkedList = (id, list) => {
2
6
  if (list.items[id]) {
3
7
  return list.items[id];
4
8
  }
5
9
  return null;
6
10
  };
7
11
 
8
- export { getLinkedList };
12
+ exports.getLinkedList = getLinkedList;
9
13
  //# sourceMappingURL=get-linked-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-linked-list.js","sources":["../../src/linked-list/get-linked-list.ts"],"sourcesContent":["import { HeadAndItems, LinkedListItem } from './type';\n\nexport const getLinkedList = <T extends LinkedListItem>(id: string, list: HeadAndItems<T>) => {\n if (list.items[id]) {\n return list.items[id];\n }\n\n return null;\n}"],"names":[],"mappings":"AAEa,IAAA,aAAa,GAAG,UAA2B,EAAU,EAAE,IAAqB,EAAA;AACvF,IAAA,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;AAClB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACvB,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"get-linked-list.js","sources":["../../src/linked-list/get-linked-list.ts"],"sourcesContent":["import { HeadAndItems, LinkedListItem } from './type';\n\nexport const getLinkedList = <T extends LinkedListItem>(id: string, list: HeadAndItems<T>) => {\n if (list.items[id]) {\n return list.items[id];\n }\n\n return null;\n}"],"names":[],"mappings":";;;;MAEa,aAAa,GAAG,CAA2B,EAAU,EAAE,IAAqB,KAAI;AAC3F,IAAA,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;AAClB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACvB,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AACd;;;;"}
@@ -1,2 +1,10 @@
1
- export { createLinkedList } from './create-linked-list.js';
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var createLinkedList = require('./create-linked-list.js');
6
+
7
+
8
+
9
+ exports.createLinkedList = createLinkedList.createLinkedList;
2
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1,30 +1,32 @@
1
- import { __assign } from '../_virtual/_tslib.js';
2
- import { assertItemCompatibility, assertPresence, findPreviousId, assertNewNodePosition } from './linked-list-utils.js';
1
+ 'use strict';
3
2
 
4
- var insertLinkedList = function (item, config) {
5
- var _a, _b, _c;
6
- var isDoubleLinkList = config.isDoubleLinkList, list = config.list, factory = config.factory;
7
- assertItemCompatibility(item, isDoubleLinkList);
8
- assertPresence(item.nextId, list.items);
9
- assertPresence(item.previousId, list.items);
10
- var previousId = isDoubleLinkList
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var linkedListUtils = require('./linked-list-utils.js');
6
+
7
+ const insertLinkedList = (item, config) => {
8
+ const { isDoubleLinkList, list, factory } = config;
9
+ linkedListUtils.assertItemCompatibility(item, isDoubleLinkList);
10
+ linkedListUtils.assertPresence(item.nextId, list.items);
11
+ linkedListUtils.assertPresence(item.previousId, list.items);
12
+ const previousId = isDoubleLinkList
11
13
  ? item.previousId
12
- : findPreviousId(item.nextId, list);
13
- assertNewNodePosition(item, {
14
- previousId: previousId,
15
- list: list,
14
+ : linkedListUtils.findPreviousId(item.nextId, list);
15
+ linkedListUtils.assertNewNodePosition(item, {
16
+ previousId,
17
+ list,
16
18
  });
17
- var newHeadId = item.nextId === list.headId ? item.id : list.headId;
18
- var newItems = __assign(__assign(__assign(__assign({}, list.items), (previousId ? (_a = {},
19
- _a[previousId] = __assign(__assign({}, list.items[previousId]), { nextId: item.id }),
20
- _a) : {})), (isDoubleLinkList && item.nextId ? (_b = {},
21
- _b[item.nextId] = __assign(__assign({}, list.items[item.nextId]), (isDoubleLinkList ? { previousId: item.id } : {})),
22
- _b) : {})), (_c = {}, _c[item.id] = item, _c));
19
+ const newHeadId = item.nextId === list.headId ? item.id : list.headId;
20
+ const newItems = Object.assign(Object.assign(Object.assign(Object.assign({}, list.items), (previousId ? {
21
+ [previousId]: Object.assign(Object.assign({}, list.items[previousId]), { nextId: item.id }),
22
+ } : {})), (isDoubleLinkList && item.nextId ? {
23
+ [item.nextId]: Object.assign(Object.assign({}, list.items[item.nextId]), (isDoubleLinkList ? { previousId: item.id } : {})),
24
+ } : {})), { [item.id]: item });
23
25
  return factory({
24
26
  headId: newHeadId,
25
27
  items: newItems,
26
28
  });
27
29
  };
28
30
 
29
- export { insertLinkedList };
31
+ exports.insertLinkedList = insertLinkedList;
30
32
  //# sourceMappingURL=insert-linked-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"insert-linked-list.js","sources":["../../src/linked-list/insert-linked-list.ts"],"sourcesContent":["import { ManipulationConfig, LinkedListItem } from './type';\n\nimport {\n findPreviousId,\n assertItemCompatibility,\n assertPresence,\n assertNewNodePosition,\n} from './linked-list-utils';\n\nexport const insertLinkedList = <T extends LinkedListItem>(item: T, config: ManipulationConfig<T>) => {\n const { isDoubleLinkList, list, factory } = config;\n\n assertItemCompatibility(item, isDoubleLinkList);\n assertPresence(item.nextId, list.items);\n assertPresence(item.previousId, list.items);\n\n const previousId = isDoubleLinkList\n ? item.previousId!\n : findPreviousId(item.nextId, list);\n\n assertNewNodePosition(item, {\n previousId,\n list,\n });\n\n const newHeadId = item.nextId === list.headId ? item.id : list.headId;\n const newItems = {\n ...list.items,\n ...(previousId ? {\n [previousId]: {\n ...list.items[previousId],\n nextId: item.id,\n },\n } : {}),\n ...(isDoubleLinkList && item.nextId ? {\n [item.nextId]: {\n ...list.items[item.nextId],\n ...(isDoubleLinkList ? { previousId: item.id } : {}),\n },\n } : {}),\n [item.id]: item,\n };\n\n return factory({\n headId: newHeadId,\n items: newItems,\n });\n};\n"],"names":[],"mappings":";;;AASa,IAAA,gBAAgB,GAAG,UAA2B,IAAO,EAAE,MAA6B,EAAA;;AACvF,IAAA,IAAA,gBAAgB,GAAoB,MAAM,CAAA,gBAA1B,EAAE,IAAI,GAAc,MAAM,CAAA,IAApB,EAAE,OAAO,GAAK,MAAM,QAAX,CAAY;AAEnD,IAAA,uBAAuB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAChD,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAE5C,IAAM,UAAU,GAAG,gBAAgB;UAC/B,IAAI,CAAC,UAAW;UAChB,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEtC,qBAAqB,CAAC,IAAI,EAAE;AAC1B,QAAA,UAAU,EAAA,UAAA;AACV,QAAA,IAAI,EAAA,IAAA;AACL,KAAA,CAAC,CAAC;IAEH,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;IACtE,IAAM,QAAQ,2CACT,IAAI,CAAC,KAAK,CACV,GAAC,UAAU,IAAE,EAAA,GAAA,EAAA;AACd,QAAA,EAAA,CAAC,UAAU,CAAA,GAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACN,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA,EAAA,EACzB,MAAM,EAAE,IAAI,CAAC,EAAE,EAChB,CAAA;cACC,EAAE,EACH,GAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,IAAE,EAAA,GAAA,EAAA;AACnC,QAAA,EAAA,CAAC,IAAI,CAAC,MAAM,CAAA,GAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACP,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IACtB,gBAAgB,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EACpD;cACC,EAAE,EACL,GAAA,EAAA,GAAA,EAAA,EAAA,EAAA,CAAA,IAAI,CAAC,EAAE,CAAA,GAAG,IAAI,EAAA,EAAA,EAChB,CAAC;AAEF,IAAA,OAAO,OAAO,CAAC;AACb,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,KAAK,EAAE,QAAQ;AAChB,KAAA,CAAC,CAAC;AACL;;;;"}
1
+ {"version":3,"file":"insert-linked-list.js","sources":["../../src/linked-list/insert-linked-list.ts"],"sourcesContent":["import { ManipulationConfig, LinkedListItem } from './type';\n\nimport {\n findPreviousId,\n assertItemCompatibility,\n assertPresence,\n assertNewNodePosition,\n} from './linked-list-utils';\n\nexport const insertLinkedList = <T extends LinkedListItem>(item: T, config: ManipulationConfig<T>) => {\n const { isDoubleLinkList, list, factory } = config;\n\n assertItemCompatibility(item, isDoubleLinkList);\n assertPresence(item.nextId, list.items);\n assertPresence(item.previousId, list.items);\n\n const previousId = isDoubleLinkList\n ? item.previousId!\n : findPreviousId(item.nextId, list);\n\n assertNewNodePosition(item, {\n previousId,\n list,\n });\n\n const newHeadId = item.nextId === list.headId ? item.id : list.headId;\n const newItems = {\n ...list.items,\n ...(previousId ? {\n [previousId]: {\n ...list.items[previousId],\n nextId: item.id,\n },\n } : {}),\n ...(isDoubleLinkList && item.nextId ? {\n [item.nextId]: {\n ...list.items[item.nextId],\n ...(isDoubleLinkList ? { previousId: item.id } : {}),\n },\n } : {}),\n [item.id]: item,\n };\n\n return factory({\n headId: newHeadId,\n items: newItems,\n });\n};\n"],"names":["assertItemCompatibility","assertPresence","findPreviousId","assertNewNodePosition"],"mappings":";;;;;;MASa,gBAAgB,GAAG,CAA2B,IAAO,EAAE,MAA6B,KAAI;IACnG,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;AAEnD,IAAAA,uCAAuB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAChDC,8BAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxCA,8BAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,UAAU,GAAG,gBAAgB;UAC/B,IAAI,CAAC,UAAW;UAChBC,8BAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEtCC,qCAAqB,CAAC,IAAI,EAAE;QAC1B,UAAU;QACV,IAAI;AACL,KAAA,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;IACtE,MAAM,QAAQ,GACT,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,KAAK,IACT,UAAU,GAAG;AACf,QAAA,CAAC,UAAU,GACN,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KACzB,MAAM,EAAE,IAAI,CAAC,EAAE,EAChB,CAAA;AACF,KAAA,GAAG,EAAE,EACH,GAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,GAAG;AACpC,QAAA,CAAC,IAAI,CAAC,MAAM,GACP,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CACvB,GAAC,gBAAgB,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EACpD;AACF,KAAA,GAAG,EAAE,EACN,EAAA,EAAA,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,GAChB,CAAC;AAEF,IAAA,OAAO,OAAO,CAAC;AACb,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,KAAK,EAAE,QAAQ;AAChB,KAAA,CAAC,CAAC;AACL;;;;"}