@sparted/shared-library 1.0.1-O → 1.0.1

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 (321) hide show
  1. package/{dist/array → array}/array-to-map.d.ts +1 -1
  2. package/{dist/array → array}/array-to-map.js +1 -1
  3. package/array/array-to-map.js.map +1 -0
  4. package/cdn/cdn-creators/imgix.cdn-creator.d.ts +3 -0
  5. package/cdn/cdn-creators/imgix.cdn-creator.js +24 -0
  6. package/cdn/cdn-creators/imgix.cdn-creator.js.map +1 -0
  7. package/cdn/cdn-creators/index.d.ts +2 -0
  8. package/cdn/cdn-creators/index.js +14 -0
  9. package/cdn/cdn-creators/twicpics.cdn-creator.d.ts +3 -0
  10. package/cdn/cdn-creators/twicpics.cdn-creator.js +30 -0
  11. package/cdn/cdn-creators/twicpics.cdn-creator.js.map +1 -0
  12. package/cdn/cdn.factory.d.ts +4 -0
  13. package/cdn/cdn.factory.js +19 -0
  14. package/cdn/cdn.factory.js.map +1 -0
  15. package/cdn/index.d.ts +2 -0
  16. package/{dist/cdn → cdn}/index.js +1 -1
  17. package/cdn/types/cdn-factory.type.d.ts +24 -0
  18. package/cdn/types/index.d.ts +2 -0
  19. package/cdn/types/transformation.type.d.ts +17 -0
  20. package/{dist/cdn → cdn}/utils/extract-info-from-url.util.d.ts +1 -1
  21. package/{dist/cdn → cdn}/utils/extract-info-from-url.util.js +1 -4
  22. package/cdn/utils/extract-info-from-url.util.js.map +1 -0
  23. package/cdn/utils/get-cdn-from-s3-url.util.d.ts +7 -0
  24. package/{dist/cdn → cdn}/utils/get-cdn-from-s3-url.util.js +5 -3
  25. package/cdn/utils/get-cdn-from-s3-url.util.js.map +1 -0
  26. package/cdn/utils/index.d.ts +2 -0
  27. package/cdn/utils/index.js +12 -0
  28. package/cdn/utils/index.js.map +1 -0
  29. package/{dist/index.js → index.js} +1 -1
  30. package/package.json +2 -2
  31. package/promise/index.js.map +1 -0
  32. package/.circleci/config.yml +0 -40
  33. package/.eslintignore +0 -1
  34. package/.eslintrc.js +0 -17
  35. package/.gitignore +0 -37
  36. package/CHANGELOG.md +0 -43
  37. package/README.md +0 -26
  38. package/dist/array/array-to-map.js.map +0 -1
  39. package/dist/cdn/cdn.factory.d.ts +0 -11
  40. package/dist/cdn/cdn.factory.js +0 -59
  41. package/dist/cdn/cdn.factory.js.map +0 -1
  42. package/dist/cdn/index.d.ts +0 -2
  43. package/dist/cdn/types/cdn-factory.type.d.ts +0 -26
  44. package/dist/cdn/types/index.d.ts +0 -1
  45. package/dist/cdn/utils/extract-info-from-url.util.js.map +0 -1
  46. package/dist/cdn/utils/get-cdn-from-s3-url.util.d.ts +0 -6
  47. package/dist/cdn/utils/get-cdn-from-s3-url.util.js.map +0 -1
  48. package/dist/cdn/utils/get-cdn-url.util.d.ts +0 -8
  49. package/dist/cdn/utils/get-cdn-url.util.js +0 -13
  50. package/dist/cdn/utils/get-cdn-url.util.js.map +0 -1
  51. package/dist/package.json +0 -61
  52. package/global.d.ts +0 -2
  53. package/rollup.config.ts +0 -15
  54. package/src/array/__tests__/array-to-map.test.ts +0 -50
  55. package/src/array/__tests__/get-values-from-keys.test.ts +0 -14
  56. package/src/array/array-to-map.ts +0 -32
  57. package/src/array/get-values-from-keys.ts +0 -3
  58. package/src/array/index.ts +0 -2
  59. package/src/cdn/__tests__/cdn.factory.test.ts +0 -126
  60. package/src/cdn/__tests__/utils.test.ts +0 -466
  61. package/src/cdn/cdn.factory.ts +0 -73
  62. package/src/cdn/index.ts +0 -2
  63. package/src/cdn/types/cdn-factory.type.ts +0 -39
  64. package/src/cdn/types/index.ts +0 -1
  65. package/src/cdn/utils/extract-info-from-url.util.ts +0 -25
  66. package/src/cdn/utils/get-cdn-from-s3-url.util.ts +0 -20
  67. package/src/cdn/utils/get-cdn-url.util.ts +0 -26
  68. package/src/formatting/__tests__/format-number.test.ts +0 -11
  69. package/src/formatting/format-number.ts +0 -14
  70. package/src/formatting/index.ts +0 -1
  71. package/src/fp/__tests__/run-while.test.ts +0 -29
  72. package/src/fp/index.ts +0 -1
  73. package/src/fp/run-while.ts +0 -54
  74. package/src/http/__tests__/build-search-params.test.ts +0 -17
  75. package/src/http/__tests__/encode-search-object.test.ts +0 -34
  76. package/src/http/__tests__/fetch-with-timeout.test.ts +0 -50
  77. package/src/http/build-search-params.ts +0 -18
  78. package/src/http/encode-search-object.ts +0 -39
  79. package/src/http/fetch-with-timeout.ts +0 -24
  80. package/src/http/index.ts +0 -3
  81. package/src/index.ts +0 -14
  82. package/src/linked-list/__tests__/apply-diff-linked-list.test.ts +0 -103
  83. package/src/linked-list/__tests__/create-linked-list.test.ts +0 -204
  84. package/src/linked-list/__tests__/find-linked-list.test.ts +0 -40
  85. package/src/linked-list/__tests__/get-linked-list.test.ts +0 -28
  86. package/src/linked-list/__tests__/insert-linked-list.test.ts +0 -186
  87. package/src/linked-list/__tests__/linked-list-utils.test.ts +0 -252
  88. package/src/linked-list/__tests__/reduce-linked-list.test.ts +0 -31
  89. package/src/linked-list/__tests__/remove-linked-list.test.ts +0 -129
  90. package/src/linked-list/__tests__/update-linked-list.test.ts +0 -53
  91. package/src/linked-list/__tests__/while-linked-list.test.ts +0 -58
  92. package/src/linked-list/apply-diff-linked-list.ts +0 -35
  93. package/src/linked-list/create-linked-list.ts +0 -79
  94. package/src/linked-list/find-linked-list.ts +0 -26
  95. package/src/linked-list/get-linked-list.ts +0 -9
  96. package/src/linked-list/index.ts +0 -2
  97. package/src/linked-list/insert-linked-list.ts +0 -50
  98. package/src/linked-list/linked-list-utils.ts +0 -143
  99. package/src/linked-list/reduce-linked-list.ts +0 -18
  100. package/src/linked-list/remove-linked-list.ts +0 -36
  101. package/src/linked-list/type.ts +0 -38
  102. package/src/linked-list/update-linked-list.ts +0 -29
  103. package/src/linked-list/while-linked-list.ts +0 -33
  104. package/src/math/__tests__/clamp-number.test.ts +0 -30
  105. package/src/math/__tests__/interpolate.test.ts +0 -28
  106. package/src/math/__tests__/number-range.test.ts +0 -59
  107. package/src/math/__tests__/random-number.test.ts +0 -11
  108. package/src/math/clamp-number.ts +0 -8
  109. package/src/math/index.ts +0 -4
  110. package/src/math/interpolate.ts +0 -18
  111. package/src/math/number-range.ts +0 -16
  112. package/src/math/random-number.ts +0 -10
  113. package/src/object/__tests__/merge-deep.test.ts +0 -56
  114. package/src/object/index.ts +0 -1
  115. package/src/object/merge-deep.ts +0 -27
  116. package/src/parsing/__tests__/parse-boolean.test.ts +0 -15
  117. package/src/parsing/__tests__/parse-enum.test.ts +0 -19
  118. package/src/parsing/__tests__/parse-number.test.ts +0 -20
  119. package/src/parsing/index.ts +0 -3
  120. package/src/parsing/parse-boolean.ts +0 -10
  121. package/src/parsing/parse-enum.ts +0 -16
  122. package/src/parsing/parse-number.ts +0 -12
  123. package/src/predicates/__tests__/is-function.test.ts +0 -11
  124. package/src/predicates/__tests__/is-null.test.ts +0 -11
  125. package/src/predicates/__tests__/is-object.test.ts +0 -11
  126. package/src/predicates/__tests__/is-primitive.test.ts +0 -42
  127. package/src/predicates/__tests__/is-undefined.test.ts +0 -11
  128. package/src/predicates/__tests__/is-uuid.test.ts +0 -13
  129. package/src/predicates/index.ts +0 -5
  130. package/src/predicates/is-function.ts +0 -3
  131. package/src/predicates/is-null.ts +0 -3
  132. package/src/predicates/is-object.ts +0 -3
  133. package/src/predicates/is-primitive.ts +0 -19
  134. package/src/predicates/is-undefined.ts +0 -3
  135. package/src/predicates/is-uuid.ts +0 -3
  136. package/src/promise/__tests__/delay.test.ts +0 -13
  137. package/src/promise/__tests__/execute-or-resolve-default.test.ts +0 -25
  138. package/src/promise/__tests__/execute-with-delay.test.ts +0 -24
  139. package/src/promise/delay.ts +0 -3
  140. package/src/promise/execute-or-resolve-default.ts +0 -14
  141. package/src/promise/execute-with-delay.ts +0 -6
  142. package/src/promise/index.ts +0 -3
  143. package/src/string/__tests__/replace-in-template.test.ts +0 -52
  144. package/src/string/index.ts +0 -1
  145. package/src/string/replace-in-template.ts +0 -45
  146. package/src/time/__tests__/convert.test.ts +0 -14
  147. package/src/time/__tests__/format-minutes.test.ts +0 -10
  148. package/src/time/__tests__/get-time-diff-as-string.test.ts +0 -128
  149. package/src/time/constants.ts +0 -4
  150. package/src/time/convert.ts +0 -5
  151. package/src/time/format-minutes.ts +0 -9
  152. package/src/time/get-time-diff-as-string.ts +0 -196
  153. package/src/time/index.ts +0 -4
  154. package/src/types/function.ts +0 -1
  155. package/src/types/general.ts +0 -10
  156. package/src/types/index.ts +0 -4
  157. package/src/types/object.ts +0 -33
  158. package/src/types/search.ts +0 -29
  159. package/tsconfig.eslint.json +0 -8
  160. package/tsconfig.json +0 -25
  161. package/yarn.lock +0 -4028
  162. /package/{dist/_virtual → _virtual}/_tslib.js +0 -0
  163. /package/{dist/_virtual → _virtual}/_tslib.js.map +0 -0
  164. /package/{dist/array → array}/get-values-from-keys.d.ts +0 -0
  165. /package/{dist/array → array}/get-values-from-keys.js +0 -0
  166. /package/{dist/array → array}/get-values-from-keys.js.map +0 -0
  167. /package/{dist/array → array}/index.d.ts +0 -0
  168. /package/{dist/array → array}/index.js +0 -0
  169. /package/{dist/array → array}/index.js.map +0 -0
  170. /package/{dist/parsing → cdn/cdn-creators}/index.js.map +0 -0
  171. /package/{dist/cdn → cdn}/index.js.map +0 -0
  172. /package/{dist/cdn → cdn}/types/index.js +0 -0
  173. /package/{dist/cdn → cdn}/types/index.js.map +0 -0
  174. /package/{dist/formatting → formatting}/format-number.d.ts +0 -0
  175. /package/{dist/formatting → formatting}/format-number.js +0 -0
  176. /package/{dist/formatting → formatting}/format-number.js.map +0 -0
  177. /package/{dist/formatting → formatting}/index.d.ts +0 -0
  178. /package/{dist/formatting → formatting}/index.js +0 -0
  179. /package/{dist/formatting → formatting}/index.js.map +0 -0
  180. /package/{dist/fp → fp}/index.d.ts +0 -0
  181. /package/{dist/fp → fp}/index.js +0 -0
  182. /package/{dist/fp → fp}/index.js.map +0 -0
  183. /package/{dist/fp → fp}/run-while.d.ts +0 -0
  184. /package/{dist/fp → fp}/run-while.js +0 -0
  185. /package/{dist/fp → fp}/run-while.js.map +0 -0
  186. /package/{dist/http → http}/encode-search-object.d.ts +0 -0
  187. /package/{dist/http → http}/encode-search-object.js +0 -0
  188. /package/{dist/http → http}/encode-search-object.js.map +0 -0
  189. /package/{dist/http → http}/fetch-with-timeout.d.ts +0 -0
  190. /package/{dist/http → http}/fetch-with-timeout.js +0 -0
  191. /package/{dist/http → http}/fetch-with-timeout.js.map +0 -0
  192. /package/{dist/http → http}/index.d.ts +0 -0
  193. /package/{dist/http → http}/index.js +0 -0
  194. /package/{dist/http → http}/index.js.map +0 -0
  195. /package/{dist/index.d.ts → index.d.ts} +0 -0
  196. /package/{dist/index.js.map → index.js.map} +0 -0
  197. /package/{dist/linked-list → linked-list}/apply-diff-linked-list.d.ts +0 -0
  198. /package/{dist/linked-list → linked-list}/apply-diff-linked-list.js +0 -0
  199. /package/{dist/linked-list → linked-list}/apply-diff-linked-list.js.map +0 -0
  200. /package/{dist/linked-list → linked-list}/create-linked-list.d.ts +0 -0
  201. /package/{dist/linked-list → linked-list}/create-linked-list.js +0 -0
  202. /package/{dist/linked-list → linked-list}/create-linked-list.js.map +0 -0
  203. /package/{dist/linked-list → linked-list}/find-linked-list.d.ts +0 -0
  204. /package/{dist/linked-list → linked-list}/find-linked-list.js +0 -0
  205. /package/{dist/linked-list → linked-list}/find-linked-list.js.map +0 -0
  206. /package/{dist/linked-list → linked-list}/get-linked-list.d.ts +0 -0
  207. /package/{dist/linked-list → linked-list}/get-linked-list.js +0 -0
  208. /package/{dist/linked-list → linked-list}/get-linked-list.js.map +0 -0
  209. /package/{dist/linked-list → linked-list}/index.d.ts +0 -0
  210. /package/{dist/linked-list → linked-list}/index.js +0 -0
  211. /package/{dist/linked-list → linked-list}/index.js.map +0 -0
  212. /package/{dist/linked-list → linked-list}/insert-linked-list.d.ts +0 -0
  213. /package/{dist/linked-list → linked-list}/insert-linked-list.js +0 -0
  214. /package/{dist/linked-list → linked-list}/insert-linked-list.js.map +0 -0
  215. /package/{dist/linked-list → linked-list}/linked-list-utils.d.ts +0 -0
  216. /package/{dist/linked-list → linked-list}/linked-list-utils.js +0 -0
  217. /package/{dist/linked-list → linked-list}/linked-list-utils.js.map +0 -0
  218. /package/{dist/linked-list → linked-list}/reduce-linked-list.d.ts +0 -0
  219. /package/{dist/linked-list → linked-list}/reduce-linked-list.js +0 -0
  220. /package/{dist/linked-list → linked-list}/reduce-linked-list.js.map +0 -0
  221. /package/{dist/linked-list → linked-list}/remove-linked-list.d.ts +0 -0
  222. /package/{dist/linked-list → linked-list}/remove-linked-list.js +0 -0
  223. /package/{dist/linked-list → linked-list}/remove-linked-list.js.map +0 -0
  224. /package/{dist/linked-list → linked-list}/type.d.ts +0 -0
  225. /package/{dist/linked-list → linked-list}/update-linked-list.d.ts +0 -0
  226. /package/{dist/linked-list → linked-list}/update-linked-list.js +0 -0
  227. /package/{dist/linked-list → linked-list}/update-linked-list.js.map +0 -0
  228. /package/{dist/linked-list → linked-list}/while-linked-list.d.ts +0 -0
  229. /package/{dist/linked-list → linked-list}/while-linked-list.js +0 -0
  230. /package/{dist/linked-list → linked-list}/while-linked-list.js.map +0 -0
  231. /package/{dist/math → math}/clamp-number.d.ts +0 -0
  232. /package/{dist/math → math}/clamp-number.js +0 -0
  233. /package/{dist/math → math}/clamp-number.js.map +0 -0
  234. /package/{dist/math → math}/index.d.ts +0 -0
  235. /package/{dist/math → math}/index.js +0 -0
  236. /package/{dist/math → math}/index.js.map +0 -0
  237. /package/{dist/math → math}/interpolate.d.ts +0 -0
  238. /package/{dist/math → math}/interpolate.js +0 -0
  239. /package/{dist/math → math}/interpolate.js.map +0 -0
  240. /package/{dist/math → math}/number-range.d.ts +0 -0
  241. /package/{dist/math → math}/number-range.js +0 -0
  242. /package/{dist/math → math}/number-range.js.map +0 -0
  243. /package/{dist/math → math}/random-number.d.ts +0 -0
  244. /package/{dist/math → math}/random-number.js +0 -0
  245. /package/{dist/math → math}/random-number.js.map +0 -0
  246. /package/{dist/object → object}/index.d.ts +0 -0
  247. /package/{dist/object → object}/index.js +0 -0
  248. /package/{dist/object → object}/index.js.map +0 -0
  249. /package/{dist/object → object}/merge-deep.d.ts +0 -0
  250. /package/{dist/object → object}/merge-deep.js +0 -0
  251. /package/{dist/object → object}/merge-deep.js.map +0 -0
  252. /package/{dist/parsing → parsing}/index.d.ts +0 -0
  253. /package/{dist/parsing → parsing}/index.js +0 -0
  254. /package/{dist/promise → parsing}/index.js.map +0 -0
  255. /package/{dist/parsing → parsing}/parse-boolean.d.ts +0 -0
  256. /package/{dist/parsing → parsing}/parse-boolean.js +0 -0
  257. /package/{dist/parsing → parsing}/parse-boolean.js.map +0 -0
  258. /package/{dist/parsing → parsing}/parse-enum.d.ts +0 -0
  259. /package/{dist/parsing → parsing}/parse-enum.js +0 -0
  260. /package/{dist/parsing → parsing}/parse-enum.js.map +0 -0
  261. /package/{dist/parsing → parsing}/parse-number.d.ts +0 -0
  262. /package/{dist/parsing → parsing}/parse-number.js +0 -0
  263. /package/{dist/parsing → parsing}/parse-number.js.map +0 -0
  264. /package/{dist/predicates → predicates}/index.d.ts +0 -0
  265. /package/{dist/predicates → predicates}/index.js +0 -0
  266. /package/{dist/predicates → predicates}/index.js.map +0 -0
  267. /package/{dist/predicates → predicates}/is-function.d.ts +0 -0
  268. /package/{dist/predicates → predicates}/is-function.js +0 -0
  269. /package/{dist/predicates → predicates}/is-function.js.map +0 -0
  270. /package/{dist/predicates → predicates}/is-null.d.ts +0 -0
  271. /package/{dist/predicates → predicates}/is-null.js +0 -0
  272. /package/{dist/predicates → predicates}/is-null.js.map +0 -0
  273. /package/{dist/predicates → predicates}/is-object.d.ts +0 -0
  274. /package/{dist/predicates → predicates}/is-object.js +0 -0
  275. /package/{dist/predicates → predicates}/is-object.js.map +0 -0
  276. /package/{dist/predicates → predicates}/is-primitive.d.ts +0 -0
  277. /package/{dist/predicates → predicates}/is-primitive.js +0 -0
  278. /package/{dist/predicates → predicates}/is-primitive.js.map +0 -0
  279. /package/{dist/predicates → predicates}/is-undefined.d.ts +0 -0
  280. /package/{dist/predicates → predicates}/is-undefined.js +0 -0
  281. /package/{dist/predicates → predicates}/is-undefined.js.map +0 -0
  282. /package/{dist/predicates → predicates}/is-uuid.d.ts +0 -0
  283. /package/{dist/promise → promise}/delay.d.ts +0 -0
  284. /package/{dist/promise → promise}/delay.js +0 -0
  285. /package/{dist/promise → promise}/delay.js.map +0 -0
  286. /package/{dist/promise → promise}/execute-or-resolve-default.d.ts +0 -0
  287. /package/{dist/promise → promise}/execute-or-resolve-default.js +0 -0
  288. /package/{dist/promise → promise}/execute-or-resolve-default.js.map +0 -0
  289. /package/{dist/promise → promise}/execute-with-delay.d.ts +0 -0
  290. /package/{dist/promise → promise}/execute-with-delay.js +0 -0
  291. /package/{dist/promise → promise}/execute-with-delay.js.map +0 -0
  292. /package/{dist/promise → promise}/index.d.ts +0 -0
  293. /package/{dist/promise → promise}/index.js +0 -0
  294. /package/{dist/string → string}/index.d.ts +0 -0
  295. /package/{dist/string → string}/index.js +0 -0
  296. /package/{dist/string → string}/index.js.map +0 -0
  297. /package/{dist/string → string}/replace-in-template.d.ts +0 -0
  298. /package/{dist/string → string}/replace-in-template.js +0 -0
  299. /package/{dist/string → string}/replace-in-template.js.map +0 -0
  300. /package/{dist/time → time}/constants.d.ts +0 -0
  301. /package/{dist/time → time}/constants.js +0 -0
  302. /package/{dist/time → time}/constants.js.map +0 -0
  303. /package/{dist/time → time}/convert.d.ts +0 -0
  304. /package/{dist/time → time}/convert.js +0 -0
  305. /package/{dist/time → time}/convert.js.map +0 -0
  306. /package/{dist/time → time}/format-minutes.d.ts +0 -0
  307. /package/{dist/time → time}/format-minutes.js +0 -0
  308. /package/{dist/time → time}/format-minutes.js.map +0 -0
  309. /package/{dist/time → time}/get-time-diff-as-string.d.ts +0 -0
  310. /package/{dist/time → time}/get-time-diff-as-string.js +0 -0
  311. /package/{dist/time → time}/get-time-diff-as-string.js.map +0 -0
  312. /package/{dist/time → time}/index.d.ts +0 -0
  313. /package/{dist/time → time}/index.js +0 -0
  314. /package/{dist/time → time}/index.js.map +0 -0
  315. /package/{dist/types → types}/function.d.ts +0 -0
  316. /package/{dist/types → types}/general.d.ts +0 -0
  317. /package/{dist/types → types}/index.d.ts +0 -0
  318. /package/{dist/types → types}/index.js +0 -0
  319. /package/{dist/types → types}/index.js.map +0 -0
  320. /package/{dist/types → types}/object.d.ts +0 -0
  321. /package/{dist/types → types}/search.d.ts +0 -0
@@ -6,7 +6,7 @@ export declare type ArrayToMapOptions<InitialValue, ModifiedValue = InitialValue
6
6
  /**
7
7
  * Transform the initial data into another value
8
8
  */
9
- dataModifier?: (value: InitialValue, map: Readonly<Record<string, ModifiedValue>>) => ModifiedValue;
9
+ dataModifier?: (value: InitialValue) => ModifiedValue;
10
10
  };
11
11
  /**
12
12
  * Transform an array to a map.
@@ -10,7 +10,7 @@ const arrayToMap = (array, options) => {
10
10
  return array.reduce((acc, current) => {
11
11
  const key = selectKey(current);
12
12
  const value = options.dataModifier
13
- ? options.dataModifier(current, acc)
13
+ ? options.dataModifier(current)
14
14
  : current;
15
15
  return Object.assign(Object.assign({}, acc), { [key]: value });
16
16
  }, {});
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-to-map.js","sources":["../../src/array/array-to-map.ts"],"sourcesContent":["export type ArrayToMapOptions<InitialValue, ModifiedValue = InitialValue> = {\n /**\n * Function to return the key used in the map.\n */\n selectKey: (value: InitialValue) => string,\n /**\n * Transform the initial data into another value\n */\n dataModifier?: (value: InitialValue) => ModifiedValue;\n};\n\n/**\n * Transform an array to a map.\n */\nexport const arrayToMap = <InitialValue, ModifiedValue = InitialValue>(\n array: ReadonlyArray<InitialValue>,\n options: ArrayToMapOptions<InitialValue, ModifiedValue>,\n) => {\n const { selectKey } = options;\n\n return array.reduce<Record<string, ModifiedValue>>((acc, current) => {\n const key = selectKey(current);\n const value = options.dataModifier\n ? options.dataModifier(current)\n : current;\n\n return {\n ...acc,\n [key]: value as ModifiedValue,\n };\n }, {});\n};\n"],"names":[],"mappings":";;;;AAWA;;AAEG;MACU,UAAU,GAAG,CACxB,KAAkC,EAClC,OAAuD,KACrD;AACF,IAAA,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,OAAO,KAAK,CAAC,MAAM,CAAgC,CAAC,GAAG,EAAE,OAAO,KAAI;AAClE,QAAA,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AAC/B,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY;AAChC,cAAE,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;cAC7B,OAAO,CAAC;AAEZ,QAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,GAAG,CACN,EAAA,EAAA,CAAC,GAAG,GAAG,KAAsB,EAC7B,CAAA,CAAA;KACH,EAAE,EAAE,CAAC,CAAC;AACT;;;;"}
@@ -0,0 +1,3 @@
1
+ import type { CreateCdn, ImgixConfig, ImgixTransformation, TransformationQueries } from '../types';
2
+ export declare const imgixTransformationQueries: TransformationQueries<ImgixTransformation>;
3
+ export declare const imgixCdnCreator: CreateCdn<ImgixConfig>;
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var getCdnFromS3Url_util = require('../utils/get-cdn-from-s3-url.util.js');
6
+
7
+ const imgixTransformationQueries = (params) => [
8
+ '?auto=compress,format',
9
+ ...Object.entries(params).map(([k, v]) => `&${k}=${v}`),
10
+ ].join('');
11
+ const imgixCdnCreator = (domain) => {
12
+ const getCdnUrl = (path) => `${domain}${path}`;
13
+ return {
14
+ getCdnUrl,
15
+ getCdnFromS3Url: getCdnFromS3Url_util.getCdnFromS3UrlFactory({
16
+ getCdnUrl,
17
+ transformationQueries: imgixTransformationQueries,
18
+ }),
19
+ };
20
+ };
21
+
22
+ exports.imgixCdnCreator = imgixCdnCreator;
23
+ exports.imgixTransformationQueries = imgixTransformationQueries;
24
+ //# sourceMappingURL=imgix.cdn-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imgix.cdn-creator.js","sources":["../../../src/cdn/cdn-creators/imgix.cdn-creator.ts"],"sourcesContent":["import type {\n CreateCdn,\n GetCdnUrl,\n ImgixConfig,\n ImgixTransformation,\n TransformationQueries,\n} from '../types';\nimport { getCdnFromS3UrlFactory } from '../utils/get-cdn-from-s3-url.util';\n\nexport const imgixTransformationQueries: TransformationQueries<\nImgixTransformation\n> = (params) => [\n '?auto=compress,format',\n ...Object.entries(params).map(([k, v]) => `&${k}=${v}`),\n].join('');\n\nexport const imgixCdnCreator: CreateCdn<ImgixConfig> = (domain) => {\n const getCdnUrl: GetCdnUrl = (path) => `${domain}${path}`;\n\n return {\n getCdnUrl,\n getCdnFromS3Url: getCdnFromS3UrlFactory({\n getCdnUrl,\n transformationQueries: imgixTransformationQueries,\n }),\n };\n};\n"],"names":["getCdnFromS3UrlFactory"],"mappings":";;;;;;MASa,0BAA0B,GAEnC,CAAC,MAAM,KAAK;IACd,uBAAuB;IACvB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAE,CAAC;AACxD,CAAA,CAAC,IAAI,CAAC,EAAE,EAAE;AAEE,MAAA,eAAe,GAA2B,CAAC,MAAM,KAAI;AAChE,IAAA,MAAM,SAAS,GAAc,CAAC,IAAI,KAAK,CAAA,EAAG,MAAM,CAAA,EAAG,IAAI,CAAA,CAAE,CAAC;IAE1D,OAAO;QACL,SAAS;QACT,eAAe,EAAEA,2CAAsB,CAAC;YACtC,SAAS;AACT,YAAA,qBAAqB,EAAE,0BAA0B;SAClD,CAAC;KACH,CAAC;AACJ;;;;;"}
@@ -0,0 +1,2 @@
1
+ export * from './imgix.cdn-creator';
2
+ export * from './twicpics.cdn-creator';
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var imgix_cdnCreator = require('./imgix.cdn-creator.js');
6
+ var twicpics_cdnCreator = require('./twicpics.cdn-creator.js');
7
+
8
+
9
+
10
+ exports.imgixCdnCreator = imgix_cdnCreator.imgixCdnCreator;
11
+ exports.imgixTransformationQueries = imgix_cdnCreator.imgixTransformationQueries;
12
+ exports.twicpicsCdnCreator = twicpics_cdnCreator.twicpicsCdnCreator;
13
+ exports.twicpicsTransformationQueries = twicpics_cdnCreator.twicpicsTransformationQueries;
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ import type { CreateCdn, TransformationQueries, TwicpicsConfig, TwicpicsTransformation } from '../types';
2
+ export declare const twicpicsTransformationQueries: TransformationQueries<TwicpicsTransformation>;
3
+ export declare const twicpicsCdnCreator: CreateCdn<TwicpicsConfig>;
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var getCdnFromS3Url_util = require('../utils/get-cdn-from-s3-url.util.js');
6
+
7
+ const twicpicsTransformationQueries = (params) => {
8
+ if (params.fit !== undefined) {
9
+ return `?twic=v1/${params.fit}=${params.width}x${params.height}`;
10
+ }
11
+ if (params.width !== undefined) {
12
+ return `?twic=v1/resize=${params.width}`;
13
+ }
14
+ return '';
15
+ };
16
+ const twicpicsCdnCreator = (domain, config) => {
17
+ const { baseUrlMapper } = config;
18
+ const getCdnUrl = (path, instanceId) => `${domain}${baseUrlMapper(instanceId)}${path}`;
19
+ return {
20
+ getCdnUrl,
21
+ getCdnFromS3Url: getCdnFromS3Url_util.getCdnFromS3UrlFactory({
22
+ getCdnUrl,
23
+ transformationQueries: twicpicsTransformationQueries,
24
+ }),
25
+ };
26
+ };
27
+
28
+ exports.twicpicsCdnCreator = twicpicsCdnCreator;
29
+ exports.twicpicsTransformationQueries = twicpicsTransformationQueries;
30
+ //# sourceMappingURL=twicpics.cdn-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twicpics.cdn-creator.js","sources":["../../../src/cdn/cdn-creators/twicpics.cdn-creator.ts"],"sourcesContent":["import type {\n CreateCdn,\n GetCdnUrl,\n TransformationQueries,\n TwicpicsConfig,\n TwicpicsTransformation,\n} from '../types';\nimport { getCdnFromS3UrlFactory } from '../utils';\n\nexport const twicpicsTransformationQueries: TransformationQueries<\nTwicpicsTransformation\n> = (params) => {\n if (params.fit !== undefined) {\n return `?twic=v1/${params.fit}=${params.width}x${params.height}`;\n }\n if (params.width !== undefined) {\n return `?twic=v1/resize=${params.width}`;\n }\n return '';\n};\n\nexport const twicpicsCdnCreator: CreateCdn<TwicpicsConfig> = (\n domain,\n config,\n) => {\n const { baseUrlMapper } = config;\n const getCdnUrl: GetCdnUrl = (path, instanceId) => `${domain}${baseUrlMapper(instanceId)}${path}`;\n\n return {\n getCdnUrl,\n getCdnFromS3Url: getCdnFromS3UrlFactory({\n getCdnUrl,\n transformationQueries: twicpicsTransformationQueries,\n }),\n };\n};\n"],"names":["getCdnFromS3UrlFactory"],"mappings":";;;;;;AASa,MAAA,6BAA6B,GAEtC,CAAC,MAAM,KAAI;AACb,IAAA,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE;AAC5B,QAAA,OAAO,CAAY,SAAA,EAAA,MAAM,CAAC,GAAG,CAAI,CAAA,EAAA,MAAM,CAAC,KAAK,CAAI,CAAA,EAAA,MAAM,CAAC,MAAM,EAAE,CAAC;AAClE,KAAA;AACD,IAAA,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;AAC9B,QAAA,OAAO,CAAmB,gBAAA,EAAA,MAAM,CAAC,KAAK,EAAE,CAAC;AAC1C,KAAA;AACD,IAAA,OAAO,EAAE,CAAC;AACZ,EAAE;MAEW,kBAAkB,GAA8B,CAC3D,MAAM,EACN,MAAM,KACJ;AACF,IAAA,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;AACjC,IAAA,MAAM,SAAS,GAAc,CAAC,IAAI,EAAE,UAAU,KAAK,GAAG,MAAM,CAAA,EAAG,aAAa,CAAC,UAAU,CAAC,CAAG,EAAA,IAAI,EAAE,CAAC;IAElG,OAAO;QACL,SAAS;QACT,eAAe,EAAEA,2CAAsB,CAAC;YACtC,SAAS;AACT,YAAA,qBAAqB,EAAE,6BAA6B;SACrD,CAAC;KACH,CAAC;AACJ;;;;;"}
@@ -0,0 +1,4 @@
1
+ import type { Cdn, ImgixConfig, TwicpicsConfig } from './types';
2
+ declare type WhichCdn<Config> = Config extends ImgixConfig ? Cdn<ImgixConfig> : Cdn<TwicpicsConfig>;
3
+ export declare function cdnFactory<Config extends ImgixConfig | TwicpicsConfig>(domain: string, config: Config): WhichCdn<Config>;
4
+ export {};
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var imgix_cdnCreator = require('./cdn-creators/imgix.cdn-creator.js');
6
+ var twicpics_cdnCreator = require('./cdn-creators/twicpics.cdn-creator.js');
7
+
8
+ function cdnFactory(domain, config) {
9
+ if (config.type === 'twicpics') {
10
+ return twicpics_cdnCreator.twicpicsCdnCreator(domain, config);
11
+ }
12
+ if (config.type === 'imgix') {
13
+ return imgix_cdnCreator.imgixCdnCreator(domain);
14
+ }
15
+ throw new Error('Unknown cdn type');
16
+ }
17
+
18
+ exports.cdnFactory = cdnFactory;
19
+ //# sourceMappingURL=cdn.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdn.factory.js","sources":["../../src/cdn/cdn.factory.ts"],"sourcesContent":["import { imgixCdnCreator, twicpicsCdnCreator } from './cdn-creators';\nimport type { Cdn, ImgixConfig, TwicpicsConfig } from './types';\n\ntype WhichCdn<Config> = Config extends ImgixConfig\n ? Cdn<ImgixConfig>\n : Cdn<TwicpicsConfig>;\n\nexport function cdnFactory<Config extends ImgixConfig | TwicpicsConfig>(\n domain: string,\n config: Config,\n): WhichCdn<Config> {\n if (config.type === 'twicpics') {\n return twicpicsCdnCreator(domain, config) as WhichCdn<Config>;\n }\n if (config.type === 'imgix') {\n return imgixCdnCreator(domain, config) as WhichCdn<Config>;\n }\n throw new Error('Unknown cdn type');\n}\n"],"names":["twicpicsCdnCreator","imgixCdnCreator"],"mappings":";;;;;;;AAOgB,SAAA,UAAU,CACxB,MAAc,EACd,MAAc,EAAA;AAEd,IAAA,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;AAC9B,QAAA,OAAOA,sCAAkB,CAAC,MAAM,EAAE,MAAM,CAAqB,CAAC;AAC/D,KAAA;AACD,IAAA,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AAC3B,QAAA,OAAOC,gCAAe,CAAC,MAAc,CAAqB,CAAC;AAC5D,KAAA;AACD,IAAA,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACtC;;;;"}
package/cdn/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { cdnFactory } from './cdn.factory';
2
+ export * from './types';
@@ -6,5 +6,5 @@ var cdn_factory = require('./cdn.factory.js');
6
6
 
7
7
 
8
8
 
9
- exports.createCdn = cdn_factory.createCdn;
9
+ exports.cdnFactory = cdn_factory.cdnFactory;
10
10
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,24 @@
1
+ import type { ImgixTransformation, Transformation, TwicpicsTransformation } from './transformation.type';
2
+ export declare type BaseConfig = {
3
+ type: 'twicpics' | 'imgix';
4
+ };
5
+ export declare type BaseUrlMapperFunc = (instanceId: string) => string;
6
+ export declare type TwicpicsConfig = BaseConfig & {
7
+ type: 'twicpics';
8
+ baseUrlMapper: BaseUrlMapperFunc;
9
+ };
10
+ export declare type ImgixConfig = BaseConfig & {
11
+ type: 'imgix';
12
+ };
13
+ export declare type CdnParams<T extends Transformation> = {
14
+ asThumbnail?: boolean;
15
+ transformation?: T;
16
+ };
17
+ export declare type GetCdnUrl = (path: string, instanceId: string) => string;
18
+ export declare type GetCdnFromS3Url<T extends Transformation> = (url: string, params?: CdnParams<T>) => string;
19
+ export declare type TransformationFromConfig<Config extends BaseConfig> = Config['type'] extends 'imgix' ? ImgixTransformation : TwicpicsTransformation;
20
+ export declare type Cdn<Config extends BaseConfig> = {
21
+ getCdnUrl: GetCdnUrl;
22
+ getCdnFromS3Url: GetCdnFromS3Url<TransformationFromConfig<Config>>;
23
+ };
24
+ export declare type CreateCdn<Config extends BaseConfig> = (domain: string, config: Config) => Cdn<typeof config>;
@@ -0,0 +1,2 @@
1
+ export * from './cdn-factory.type';
2
+ export * from './transformation.type';
@@ -0,0 +1,17 @@
1
+ export declare type Transformation = {
2
+ width?: number;
3
+ height?: number;
4
+ };
5
+ export declare type TwicpicsTransformation = Transformation & ({
6
+ fit: 'crop' | 'contain';
7
+ width: number;
8
+ height: number;
9
+ } | {
10
+ fit?: undefined;
11
+ width: number;
12
+ height?: undefined;
13
+ });
14
+ export declare type ImgixTransformation = Transformation & {
15
+ fit?: 'crop';
16
+ };
17
+ export declare type TransformationQueries<T extends Transformation> = (params: T) => string;
@@ -1,6 +1,6 @@
1
1
  declare type ExtractInfoFromUrl = (url: string) => {
2
2
  instanceId: string;
3
- path: `/${string}`;
3
+ path: string;
4
4
  } | undefined;
5
5
  export declare const extractInfoFromUrl: ExtractInfoFromUrl;
6
6
  export {};
@@ -2,11 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const S3_URL_RE = /https:\/\/sparted-prod-([^.]+)\.s3(\.eu-west-1)?(\.amazonaws\.com)?(\.fr-par\.scw\.cloud)?(\/[^?]+)/;
5
+ const S3_URL_RE = /https:\/\/sparted-prod-([^.]+)\.s3\.(eu-west-1)?(amazonaws\.com)?(fr-par\.scw\.cloud)?([^?]+)/;
6
6
  const extractInfoFromUrl = (url) => {
7
- if (typeof url !== 'string') {
8
- return undefined;
9
- }
10
7
  const matchS3Url = url.match(S3_URL_RE);
11
8
  if (!matchS3Url) {
12
9
  return undefined;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-info-from-url.util.js","sources":["../../../src/cdn/utils/extract-info-from-url.util.ts"],"sourcesContent":["type ExtractInfoFromUrl = (url: string) =>\n| {\n instanceId: string;\n path: string;\n}\n| undefined;\n\nconst S3_URL_RE = /https:\\/\\/sparted-prod-([^.]+)\\.s3\\.(eu-west-1)?(amazonaws\\.com)?(fr-par\\.scw\\.cloud)?([^?]+)/;\n\nexport const extractInfoFromUrl: ExtractInfoFromUrl = (url) => {\n const matchS3Url = url.match(S3_URL_RE);\n\n if (!matchS3Url) {\n return undefined;\n }\n\n const instanceId = matchS3Url[1];\n const path = matchS3Url[5];\n\n return { instanceId, path };\n};\n"],"names":[],"mappings":";;;;AAOA,MAAM,SAAS,GAAG,+FAA+F,CAAC;AAErG,MAAA,kBAAkB,GAAuB,CAAC,GAAG,KAAI;IAC5D,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAExC,IAAI,CAAC,UAAU,EAAE;AACf,QAAA,OAAO,SAAS,CAAC;AAClB,KAAA;AAED,IAAA,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACjC,IAAA,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAE3B,IAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC9B;;;;"}
@@ -0,0 +1,7 @@
1
+ import type { GetCdnFromS3Url, GetCdnUrl, Transformation, TransformationQueries } from '../types';
2
+ declare type FactoryConfig<T extends Transformation> = {
3
+ getCdnUrl: GetCdnUrl;
4
+ transformationQueries: TransformationQueries<T>;
5
+ };
6
+ export declare function getCdnFromS3UrlFactory<T extends Transformation>(config: FactoryConfig<T>): GetCdnFromS3Url<T>;
7
+ export {};
@@ -4,15 +4,17 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var extractInfoFromUrl_util = require('./extract-info-from-url.util.js');
6
6
 
7
+ const DEFAULT_THUMBNAIL_CONFIG = { width: 300, height: 300 };
7
8
  function getCdnFromS3UrlFactory(config) {
8
- return (url, params) => {
9
- const { getCdnUrl } = config;
9
+ return (url, params = {}) => {
10
+ const { getCdnUrl, transformationQueries } = config;
10
11
  const info = extractInfoFromUrl_util.extractInfoFromUrl(url);
11
12
  if (info === undefined) {
12
13
  return url;
13
14
  }
14
15
  const { instanceId, path } = info;
15
- return getCdnUrl(instanceId, path, params);
16
+ const { transformation = params.asThumbnail ? DEFAULT_THUMBNAIL_CONFIG : {}, } = params;
17
+ return `${getCdnUrl(path, instanceId)}${transformationQueries(transformation)}`;
16
18
  };
17
19
  }
18
20
 
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-cdn-from-s3-url.util.js","sources":["../../../src/cdn/utils/get-cdn-from-s3-url.util.ts"],"sourcesContent":["import type {\n GetCdnFromS3Url,\n GetCdnUrl,\n Transformation,\n TransformationQueries,\n} from '../types';\nimport { extractInfoFromUrl } from './extract-info-from-url.util';\n\nconst DEFAULT_THUMBNAIL_CONFIG: Transformation = { width: 300, height: 300 };\n\ntype FactoryConfig<T extends Transformation> = {\n getCdnUrl: GetCdnUrl;\n transformationQueries: TransformationQueries<T>;\n};\n\nexport function getCdnFromS3UrlFactory<T extends Transformation>(\n config: FactoryConfig<T>,\n): GetCdnFromS3Url<T> {\n return (url, params = {}) => {\n const { getCdnUrl, transformationQueries } = config;\n\n const info = extractInfoFromUrl(url);\n if (info === undefined) {\n return url;\n }\n const { instanceId, path } = info;\n\n const {\n transformation = params.asThumbnail ? DEFAULT_THUMBNAIL_CONFIG : {},\n } = params;\n\n return `${getCdnUrl(path, instanceId)}${transformationQueries(\n transformation as T,\n )}`;\n };\n}\n"],"names":["extractInfoFromUrl"],"mappings":";;;;;;AAQA,MAAM,wBAAwB,GAAmB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAOvE,SAAU,sBAAsB,CACpC,MAAwB,EAAA;AAExB,IAAA,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,KAAI;AAC1B,QAAA,MAAM,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC;AAEpD,QAAA,MAAM,IAAI,GAAGA,0CAAkB,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,IAAI,KAAK,SAAS,EAAE;AACtB,YAAA,OAAO,GAAG,CAAC;AACZ,SAAA;AACD,QAAA,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AAElC,QAAA,MAAM,EACJ,cAAc,GAAG,MAAM,CAAC,WAAW,GAAG,wBAAwB,GAAG,EAAE,GACpE,GAAG,MAAM,CAAC;AAEX,QAAA,OAAO,CAAG,EAAA,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA,EAAG,qBAAqB,CAC3D,cAAmB,CACpB,EAAE,CAAC;AACN,KAAC,CAAC;AACJ;;;;"}
@@ -0,0 +1,2 @@
1
+ export * from './extract-info-from-url.util';
2
+ export * from './get-cdn-from-s3-url.util';
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var extractInfoFromUrl_util = require('./extract-info-from-url.util.js');
6
+ var getCdnFromS3Url_util = require('./get-cdn-from-s3-url.util.js');
7
+
8
+
9
+
10
+ exports.extractInfoFromUrl = extractInfoFromUrl_util.extractInfoFromUrl;
11
+ exports.getCdnFromS3UrlFactory = getCdnFromS3Url_util.getCdnFromS3UrlFactory;
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -36,7 +36,7 @@ var replaceInTemplate = require('./string/replace-in-template.js');
36
36
 
37
37
  exports.arrayToMap = arrayToMap.arrayToMap;
38
38
  exports.valuesFromKeys = getValuesFromKeys.valuesFromKeys;
39
- exports.createCdn = cdn_factory.createCdn;
39
+ exports.cdnFactory = cdn_factory.cdnFactory;
40
40
  exports.MS_DAY = constants.MS_DAY;
41
41
  exports.MS_HOUR = constants.MS_HOUR;
42
42
  exports.MS_MINUTE = constants.MS_MINUTE;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sparted/shared-library",
3
- "version": "1.0.1O",
3
+ "version": "1.0.1",
4
4
  "repository": "git@github.com:Sparted/shared-library.git",
5
5
  "author": "Thomas <duprethomasfr@gmail.com>",
6
6
  "license": "MIT",
@@ -58,4 +58,4 @@
58
58
  "^.+\\.(t|j)s$": "ts-jest"
59
59
  }
60
60
  }
61
- }
61
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -1,40 +0,0 @@
1
- # Javascript Node CircleCI 2.0 configuration file
2
- #
3
- # Check https://circleci.com/docs/2.0/language-javascript/ for more details
4
- #
5
- version: 2.1
6
- jobs:
7
- test:
8
- docker:
9
- - image: cimg/node:18.10.0
10
-
11
- steps:
12
- - checkout
13
-
14
- - run:
15
- name: Set npm token
16
- command: 'echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc'
17
-
18
- - run:
19
- name: Install node modules
20
- command: yarn
21
-
22
- - run:
23
- name: Check lint
24
- command: yarn lint
25
-
26
- - run:
27
- name: Run tests
28
- # Limit resources as the default parameters overload the CPU of the machine and makes tests hang
29
- command: yarn test --maxWorkers=50%
30
-
31
- - run:
32
- name: Build
33
- command: yarn build
34
-
35
- workflows:
36
- version: 2
37
-
38
- autodeploy:
39
- jobs:
40
- - test
package/.eslintignore DELETED
@@ -1 +0,0 @@
1
- dist/
package/.eslintrc.js DELETED
@@ -1,17 +0,0 @@
1
- module.exports = {
2
- env: {
3
- es2021: true,
4
- node: true,
5
- },
6
- extends: '@sparted',
7
- parserOptions: {
8
- project: './tsconfig.eslint.json',
9
- },
10
- rules: {
11
- // Preference for this project
12
- 'import/prefer-default-export': 'off',
13
-
14
- // Preference for this project
15
- 'object-curly-newline': 'off',
16
- },
17
- };
package/.gitignore DELETED
@@ -1,37 +0,0 @@
1
- *.dat
2
- *.iml
3
- *.log
4
- *.out
5
- *.pid
6
- *.seed
7
- *.sublime-*
8
- *.swo
9
- *.swp
10
- *.tgz
11
- *.xml
12
- .tmp
13
- .env
14
- doc/*.json
15
-
16
- # Mac Related files
17
- .DS_Store
18
-
19
- # IDE Related Files
20
- .idea
21
- .project
22
-
23
- # eslint
24
- .eslintcache
25
-
26
- # jest
27
- jest-stare
28
-
29
- # JS Related files
30
- bower_components
31
- npm-debug.log
32
- node_modules
33
- nestjs/node_modules
34
- .npmrc
35
-
36
- # Build
37
- dist
package/CHANGELOG.md DELETED
@@ -1,43 +0,0 @@
1
- ## 1.0.10
2
- - Add valueOf type
3
-
4
- ## 1.0.9
5
- - Add option to remove image compression
6
-
7
- ## 1.0.8
8
- - Fix crash when passing undefined to extractInfoFromUrl function
9
-
10
- ## 1.0.7
11
- - Fix Twicpics resizing
12
-
13
- ## 1.0.6
14
- - Add current map to `dataModifier` function on `arrayToMap`
15
-
16
- ## 1.0.5
17
- - CDN abstraction for Imgix and Twicpics
18
-
19
- ## 1.0.0
20
- - Breaking change: rename date folder into time
21
- - Export convertion functions from time
22
-
23
- ## 0.0.18
24
- - Change update behavior to fully replace updated items
25
-
26
- ## 0.0.17
27
- - Remove error thrown when not every items have been visisted
28
-
29
- ## 0.0.16
30
- - Fix an issue when initializing an empty linked list
31
-
32
- ## 0.0.15
33
- - Rollback target version, change output format
34
-
35
- ## 0.0.14
36
- - Bump target version in tsconfig
37
-
38
- ## 0.0.13
39
- - Bring most utilities from the back-office, mobile-app and nest to this package (#32q6ude)
40
-
41
- ## 0.0.1
42
- - Library initialisation (#2ykhvcg)
43
- - Fix files taken as packaged
package/README.md DELETED
@@ -1,26 +0,0 @@
1
- # Shared-library
2
-
3
- Regroup low levels utils to share across Sparted's projects. Nothing should be platform specific and it should ideally not depend on any external library.
4
-
5
- # Publishing
6
-
7
- Since we want to be able to do the following sub imports when using the library:
8
-
9
- ```ts
10
- import { function1, function2 } from '@sparted/shared-library/array';
11
- import { function3, function4 } from '@sparted/shared-library/strings';
12
- ```
13
-
14
- While also being able to import everything from the root.
15
-
16
- We'll need to do some rollup/npm trickery to keep everything tree-shakable and intuitive.
17
-
18
- To do so, we copy the package.json inside the generated dist folder when building the library. Then we run `npm publish` from inside the dist folder.
19
-
20
- What this do, is take everything inside the dist folder and publish as its standalone package. This enables us to import directly from `@sparted/shared-library/array` without adding `dist` since `dist/array` becomes a root folder. If we do not do this and instead run `npm publish` in the root directory, the package would keep the folder structure and we would need to add `dist` in imports. eg: `@sparted/shared-library/dist/array`.
21
-
22
- ## How to publish
23
-
24
- 1. Update the `package.json` version
25
- 2. Run `yarn build-and-publish` (this command assumes the `package.json` version was not already published)
26
- 3. The new version should be commited and pushed
@@ -1 +0,0 @@
1
- {"version":3,"file":"array-to-map.js","sources":["../../src/array/array-to-map.ts"],"sourcesContent":["export type ArrayToMapOptions<InitialValue, ModifiedValue = InitialValue> = {\n /**\n * Function to return the key used in the map.\n */\n selectKey: (value: InitialValue) => string,\n /**\n * Transform the initial data into another value\n */\n dataModifier?: (value: InitialValue, map: Readonly<Record<string, ModifiedValue>>) => ModifiedValue;\n};\n\n/**\n * Transform an array to a map.\n */\nexport const arrayToMap = <InitialValue, ModifiedValue = InitialValue>(\n array: ReadonlyArray<InitialValue>,\n options: ArrayToMapOptions<InitialValue, ModifiedValue>,\n) => {\n const { selectKey } = options;\n\n return array.reduce<Record<string, ModifiedValue>>((acc, current) => {\n const key = selectKey(current);\n const value = options.dataModifier\n ? options.dataModifier(current, acc)\n : current;\n\n return {\n ...acc,\n [key]: value as ModifiedValue,\n };\n }, {});\n};\n"],"names":[],"mappings":";;;;AAWA;;AAEG;MACU,UAAU,GAAG,CACxB,KAAkC,EAClC,OAAuD,KACrD;AACF,IAAA,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,OAAO,KAAK,CAAC,MAAM,CAAgC,CAAC,GAAG,EAAE,OAAO,KAAI;AAClE,QAAA,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AAC/B,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY;cAC9B,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC;cAClC,OAAO,CAAC;AAEZ,QAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,GAAG,CACN,EAAA,EAAA,CAAC,GAAG,GAAG,KAAsB,EAC7B,CAAA,CAAA;KACH,EAAE,EAAE,CAAC,CAAC;AACT;;;;"}
@@ -1,11 +0,0 @@
1
- import type { CreateCdn, TransformationQueries } from './types';
2
- export declare const imgixTransformationQueries: TransformationQueries;
3
- export declare const twicpicsTransformationQueries: TransformationQueries;
4
- /**
5
- *
6
- * @param type cdn provider: 'twicpics' | 'imgix'
7
- * @param domain provider domain
8
- * @param instanceMapper domain + the result of the instanceMapper will form the base path
9
- * @returns \{ getCdnUrl, transformationQueries \}
10
- */
11
- export declare const createCdn: CreateCdn;
@@ -1,59 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var getCdnFromS3Url_util = require('./utils/get-cdn-from-s3-url.util.js');
6
- var getCdnUrl_util = require('./utils/get-cdn-url.util.js');
7
-
8
- const imgixTransformationQueries = ({ fit, devicePixelRatio, height, width, quality, }) => [
9
- '?auto=compress,format',
10
- fit === 'crop' ? '&fit=crop' : '',
11
- Number.isFinite(devicePixelRatio) ? `&dpr=${devicePixelRatio}` : '',
12
- Number.isFinite(height) ? `&h=${height}` : '',
13
- Number.isFinite(width) ? `&w=${width}` : '',
14
- quality !== undefined && quality >= 0 && quality <= 100
15
- ? `&q=${quality}`
16
- : '',
17
- ].join('');
18
- const twicpicsTransformationQueries = (params) => {
19
- if (params.fit !== undefined) {
20
- if (params.width === undefined || params.height === undefined) {
21
- // eslint-disable-next-line no-console
22
- console.error('⚠️ The Twicpics api needs a width and a height.');
23
- return '';
24
- }
25
- return `?twic=v1/${params.fit}=${params.width}x${params.height}`;
26
- }
27
- if (params.width !== undefined) {
28
- const resizeHeight = params.height !== undefined ? `x${params.height}` : '';
29
- return `?twic=v1/cover=${params.width}${resizeHeight}`;
30
- }
31
- return '';
32
- };
33
- /**
34
- *
35
- * @param type cdn provider: 'twicpics' | 'imgix'
36
- * @param domain provider domain
37
- * @param instanceMapper domain + the result of the instanceMapper will form the base path
38
- * @returns \{ getCdnUrl, transformationQueries \}
39
- */
40
- const createCdn = ({ type, domain, instanceMapper }) => {
41
- const getCdnUrl = getCdnUrl_util.getCdnUrlFactory({
42
- domain,
43
- instanceMapper,
44
- transformationQueries: type === 'imgix'
45
- ? imgixTransformationQueries
46
- : twicpicsTransformationQueries,
47
- });
48
- return {
49
- getCdnUrl,
50
- getCdnFromS3Url: getCdnFromS3Url_util.getCdnFromS3UrlFactory({
51
- getCdnUrl,
52
- }),
53
- };
54
- };
55
-
56
- exports.createCdn = createCdn;
57
- exports.imgixTransformationQueries = imgixTransformationQueries;
58
- exports.twicpicsTransformationQueries = twicpicsTransformationQueries;
59
- //# sourceMappingURL=cdn.factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cdn.factory.js","sources":["../../src/cdn/cdn.factory.ts"],"sourcesContent":["import type { CreateCdn, TransformationQueries } from './types';\nimport { getCdnFromS3UrlFactory } from './utils/get-cdn-from-s3-url.util';\nimport { getCdnUrlFactory } from './utils/get-cdn-url.util';\n\nexport const imgixTransformationQueries: TransformationQueries = ({\n fit,\n devicePixelRatio,\n height,\n width,\n quality,\n}) => [\n '?auto=compress,format',\n fit === 'crop' ? '&fit=crop' : '',\n Number.isFinite(devicePixelRatio) ? `&dpr=${devicePixelRatio}` : '',\n Number.isFinite(height) ? `&h=${height}` : '',\n Number.isFinite(width) ? `&w=${width}` : '',\n quality !== undefined && quality >= 0 && quality <= 100\n ? `&q=${quality}`\n : '',\n].join('');\n\nexport const twicpicsTransformationQueries: TransformationQueries = (\n params,\n) => {\n if (params.fit !== undefined) {\n if (params.width === undefined || params.height === undefined) {\n // eslint-disable-next-line no-console\n console.error('⚠️ The Twicpics api needs a width and a height.');\n return '';\n }\n return `?twic=v1/${params.fit}=${params.width}x${params.height}`;\n }\n if (params.width !== undefined) {\n const resizeHeight = params.height !== undefined ? `x${params.height}` : '';\n return `?twic=v1/cover=${params.width}${resizeHeight}`;\n }\n return '';\n};\n\n/**\n *\n * @param type cdn provider: 'twicpics' | 'imgix'\n * @param domain provider domain\n * @param instanceMapper domain + the result of the instanceMapper will form the base path\n * @returns \\{ getCdnUrl, transformationQueries \\}\n */\nexport const createCdn: CreateCdn = ({ type, domain, instanceMapper }) => {\n const getCdnUrl = getCdnUrlFactory({\n domain,\n instanceMapper,\n transformationQueries:\n type === 'imgix'\n ? imgixTransformationQueries\n : twicpicsTransformationQueries,\n });\n\n return {\n getCdnUrl,\n getCdnFromS3Url: getCdnFromS3UrlFactory({\n getCdnUrl,\n }),\n };\n};\n"],"names":["getCdnUrlFactory","getCdnFromS3UrlFactory"],"mappings":";;;;;;;AAIa,MAAA,0BAA0B,GAA0B,CAAC,EAChE,GAAG,EACH,gBAAgB,EAChB,MAAM,EACN,KAAK,EACL,OAAO,GACR,KAAK;IACJ,uBAAuB;IACvB,GAAG,KAAK,MAAM,GAAG,WAAW,GAAG,EAAE;AACjC,IAAA,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAA,KAAA,EAAQ,gBAAgB,CAAA,CAAE,GAAG,EAAE;AACnE,IAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAA,GAAA,EAAM,MAAM,CAAA,CAAE,GAAG,EAAE;AAC7C,IAAA,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAA,GAAA,EAAM,KAAK,CAAA,CAAE,GAAG,EAAE;IAC3C,OAAO,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,GAAG;UACnD,CAAM,GAAA,EAAA,OAAO,CAAE,CAAA;AACjB,UAAE,EAAE;AACP,CAAA,CAAC,IAAI,CAAC,EAAE,EAAE;AAEE,MAAA,6BAA6B,GAA0B,CAClE,MAAM,KACJ;AACF,IAAA,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE;QAC5B,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;;AAE7D,YAAA,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;AAClE,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACD,QAAA,OAAO,CAAY,SAAA,EAAA,MAAM,CAAC,GAAG,CAAI,CAAA,EAAA,MAAM,CAAC,KAAK,CAAI,CAAA,EAAA,MAAM,CAAC,MAAM,EAAE,CAAC;AAClE,KAAA;AACD,IAAA,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;AAC9B,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,GAAG,CAAI,CAAA,EAAA,MAAM,CAAC,MAAM,CAAA,CAAE,GAAG,EAAE,CAAC;AAC5E,QAAA,OAAO,kBAAkB,MAAM,CAAC,KAAK,CAAG,EAAA,YAAY,EAAE,CAAC;AACxD,KAAA;AACD,IAAA,OAAO,EAAE,CAAC;AACZ,EAAE;AAEF;;;;;;AAMG;AACI,MAAM,SAAS,GAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,KAAI;IACvE,MAAM,SAAS,GAAGA,+BAAgB,CAAC;QACjC,MAAM;QACN,cAAc;QACd,qBAAqB,EACnB,IAAI,KAAK,OAAO;AACd,cAAE,0BAA0B;AAC5B,cAAE,6BAA6B;AACpC,KAAA,CAAC,CAAC;IAEH,OAAO;QACL,SAAS;QACT,eAAe,EAAEC,2CAAsB,CAAC;YACtC,SAAS;SACV,CAAC;KACH,CAAC;AACJ;;;;;;"}
@@ -1,2 +0,0 @@
1
- export { createCdn } from './cdn.factory';
2
- export * from './types';
@@ -1,26 +0,0 @@
1
- export declare type BaseUrlMapperFunc = (instanceId: string) => string;
2
- export declare type Transformation = {
3
- fit?: 'crop' | 'contain';
4
- width?: number;
5
- height?: number;
6
- devicePixelRatio?: number;
7
- quality?: number;
8
- };
9
- export declare type CdnParams = {
10
- asThumbnail?: boolean;
11
- transformation?: Transformation;
12
- };
13
- export declare type TransformationQueries = (params: Transformation) => string;
14
- export declare type GetCdnUrl = (instanceId: string, path: `/${string}`, params?: CdnParams) => string;
15
- export declare type GetCdnFromS3Url = (url: string, params?: CdnParams) => string;
16
- export declare type InstanceMapper = (instanceId: string) => string;
17
- export declare type CdnConfig = {
18
- type: 'twicpics' | 'imgix';
19
- domain: `https://${string}`;
20
- instanceMapper: InstanceMapper;
21
- };
22
- export declare type Cdn = {
23
- getCdnUrl: GetCdnUrl;
24
- getCdnFromS3Url: GetCdnFromS3Url;
25
- };
26
- export declare type CreateCdn = (config: CdnConfig) => Cdn;
@@ -1 +0,0 @@
1
- export * from './cdn-factory.type';
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract-info-from-url.util.js","sources":["../../../src/cdn/utils/extract-info-from-url.util.ts"],"sourcesContent":["type ExtractInfoFromUrl = (url: string) =>\n| {\n instanceId: string;\n path: `/${string}`;\n}\n| undefined;\n\nconst S3_URL_RE = /https:\\/\\/sparted-prod-([^.]+)\\.s3(\\.eu-west-1)?(\\.amazonaws\\.com)?(\\.fr-par\\.scw\\.cloud)?(\\/[^?]+)/;\n\nexport const extractInfoFromUrl: ExtractInfoFromUrl = (url) => {\n if (typeof url !== 'string') {\n return undefined;\n }\n\n const matchS3Url = url.match(S3_URL_RE);\n\n if (!matchS3Url) {\n return undefined;\n }\n\n const instanceId = matchS3Url[1];\n const path = matchS3Url[5] as `/${string}`;\n\n return { instanceId, path };\n};\n"],"names":[],"mappings":";;;;AAOA,MAAM,SAAS,GAAG,qGAAqG,CAAC;AAE3G,MAAA,kBAAkB,GAAuB,CAAC,GAAG,KAAI;AAC5D,IAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC3B,QAAA,OAAO,SAAS,CAAC;AAClB,KAAA;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAExC,IAAI,CAAC,UAAU,EAAE;AACf,QAAA,OAAO,SAAS,CAAC;AAClB,KAAA;AAED,IAAA,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACjC,IAAA,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAiB,CAAC;AAE3C,IAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC9B;;;;"}