@uploadcare/file-uploader 1.5.2 → 1.5.3-alpha.2

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 (283) hide show
  1. package/README.md +5 -5
  2. package/abstract/ActivityBlock.d.ts +3 -3
  3. package/abstract/ActivityBlock.d.ts.map +1 -1
  4. package/abstract/Block.d.ts +4 -11
  5. package/abstract/Block.d.ts.map +1 -1
  6. package/abstract/Block.js +16 -16
  7. package/abstract/CTX.d.ts +7 -7
  8. package/abstract/CTX.d.ts.map +1 -1
  9. package/abstract/CTX.js +1 -1
  10. package/abstract/LocaleManager.d.ts +3 -3
  11. package/abstract/SecureUploadsManager.d.ts +2 -2
  12. package/abstract/SecureUploadsManager.d.ts.map +1 -1
  13. package/abstract/SolutionBlock.d.ts +2 -2
  14. package/abstract/SolutionBlock.d.ts.map +1 -1
  15. package/abstract/TypedCollection.d.ts +1 -1
  16. package/abstract/TypedCollection.d.ts.map +1 -1
  17. package/abstract/TypedCollection.js +4 -4
  18. package/abstract/TypedData.d.ts +2 -2
  19. package/abstract/TypedData.d.ts.map +1 -1
  20. package/abstract/TypedData.js +4 -4
  21. package/abstract/UploaderBlock.d.ts +5 -5
  22. package/abstract/UploaderBlock.d.ts.map +1 -1
  23. package/abstract/UploaderBlock.js +5 -5
  24. package/abstract/UploaderPublicApi.d.ts +22 -21
  25. package/abstract/UploaderPublicApi.d.ts.map +1 -1
  26. package/abstract/UploaderPublicApi.js +3 -3
  27. package/abstract/ValidationManager.d.ts +3 -3
  28. package/abstract/ValidationManager.d.ts.map +1 -1
  29. package/abstract/a11y.d.ts +2 -2
  30. package/abstract/a11y.d.ts.map +1 -1
  31. package/abstract/buildOutputCollectionState.d.ts +1 -1
  32. package/abstract/buildOutputCollectionState.d.ts.map +1 -1
  33. package/abstract/defineComponents.d.ts.map +1 -1
  34. package/abstract/defineComponents.js +5 -0
  35. package/abstract/l10nProcessor.d.ts.map +1 -1
  36. package/abstract/l10nProcessor.js +3 -3
  37. package/abstract/loadFileUploaderFrom.d.ts.map +1 -1
  38. package/abstract/localeRegistry.d.ts.map +1 -1
  39. package/abstract/sharedConfigKey.d.ts.map +1 -1
  40. package/abstract/uploadEntrySchema.d.ts +2 -2
  41. package/abstract/uploadEntrySchema.d.ts.map +1 -1
  42. package/abstract/uploadEntrySchema.js +1 -1
  43. package/blocks/CameraSource/CameraSource.d.ts.map +1 -1
  44. package/blocks/CameraSource/CameraSource.js +5 -4
  45. package/blocks/CloudImageEditor/src/CloudImageEditorBlock.d.ts.map +1 -1
  46. package/blocks/CloudImageEditor/src/CropFrame.d.ts +11 -11
  47. package/blocks/CloudImageEditor/src/CropFrame.d.ts.map +1 -1
  48. package/blocks/CloudImageEditor/src/CropFrame.js +2 -1
  49. package/blocks/CloudImageEditor/src/EditorButtonControl.d.ts.map +1 -1
  50. package/blocks/CloudImageEditor/src/EditorButtonControl.js +2 -1
  51. package/blocks/CloudImageEditor/src/EditorFilterControl.d.ts.map +1 -1
  52. package/blocks/CloudImageEditor/src/EditorFilterControl.js +3 -7
  53. package/blocks/CloudImageEditor/src/EditorImageCropper.d.ts +3 -3
  54. package/blocks/CloudImageEditor/src/EditorImageCropper.js +2 -2
  55. package/blocks/CloudImageEditor/src/EditorImageFader.d.ts +1 -1
  56. package/blocks/CloudImageEditor/src/EditorImageFader.d.ts.map +1 -1
  57. package/blocks/CloudImageEditor/src/EditorOperationControl.js +1 -1
  58. package/blocks/CloudImageEditor/src/EditorScroller.d.ts.map +1 -1
  59. package/blocks/CloudImageEditor/src/EditorScroller.js +2 -1
  60. package/blocks/CloudImageEditor/src/EditorSlider.d.ts.map +1 -1
  61. package/blocks/CloudImageEditor/src/EditorSlider.js +2 -1
  62. package/blocks/CloudImageEditor/src/EditorToolbar.d.ts +1 -1
  63. package/blocks/CloudImageEditor/src/EditorToolbar.d.ts.map +1 -1
  64. package/blocks/CloudImageEditor/src/EditorToolbar.js +4 -3
  65. package/blocks/CloudImageEditor/src/crop-utils.d.ts +14 -14
  66. package/blocks/CloudImageEditor/src/crop-utils.d.ts.map +1 -1
  67. package/blocks/CloudImageEditor/src/css/common.css +2 -2
  68. package/blocks/CloudImageEditor/src/elements/button/BtnUi.d.ts.map +1 -1
  69. package/blocks/CloudImageEditor/src/elements/button/BtnUi.js +3 -3
  70. package/blocks/CloudImageEditor/src/elements/line-loader/LineLoaderUi.d.ts.map +1 -1
  71. package/blocks/CloudImageEditor/src/elements/line-loader/LineLoaderUi.js +2 -1
  72. package/blocks/CloudImageEditor/src/elements/presence-toggle/PresenceToggle.d.ts.map +1 -1
  73. package/blocks/CloudImageEditor/src/elements/presence-toggle/PresenceToggle.js +3 -2
  74. package/blocks/CloudImageEditor/src/elements/slider/SliderUi.d.ts.map +1 -1
  75. package/blocks/CloudImageEditor/src/elements/slider/SliderUi.js +2 -1
  76. package/blocks/CloudImageEditor/src/lib/parseCropPreset.d.ts +1 -1
  77. package/blocks/CloudImageEditor/src/lib/transformationUtils.d.ts +3 -3
  78. package/blocks/CloudImageEditor/src/lib/transformationUtils.d.ts.map +1 -1
  79. package/blocks/CloudImageEditor/src/state.d.ts +4 -4
  80. package/blocks/CloudImageEditor/src/svg-sprite.d.ts +1 -1
  81. package/blocks/CloudImageEditor/src/svg-sprite.js +1 -1
  82. package/blocks/CloudImageEditor/src/template.d.ts.map +1 -1
  83. package/blocks/CloudImageEditor/src/template.js +2 -1
  84. package/blocks/CloudImageEditor/src/types.d.ts +2 -2
  85. package/blocks/CloudImageEditor/src/types.d.ts.map +1 -1
  86. package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.d.ts +1 -1
  87. package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.d.ts.map +1 -1
  88. package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.js +2 -1
  89. package/blocks/Config/Config.d.ts +3 -11
  90. package/blocks/Config/Config.d.ts.map +1 -1
  91. package/blocks/Config/initialConfig.d.ts +1 -1
  92. package/blocks/Config/normalizeConfigValue.d.ts.map +1 -1
  93. package/blocks/Copyright/Copyright.d.ts.map +1 -1
  94. package/blocks/Copyright/Copyright.js +2 -1
  95. package/blocks/DropArea/DropArea.d.ts +2 -2
  96. package/blocks/DropArea/DropArea.d.ts.map +1 -1
  97. package/blocks/DropArea/DropArea.js +3 -3
  98. package/blocks/DropArea/addDropzone.d.ts.map +1 -1
  99. package/blocks/DropArea/getDropItems.d.ts +2 -2
  100. package/blocks/DropArea/getDropItems.d.ts.map +1 -1
  101. package/blocks/ExternalSource/ExternalSource.d.ts +5 -5
  102. package/blocks/ExternalSource/ExternalSource.d.ts.map +1 -1
  103. package/blocks/ExternalSource/ExternalSource.js +3 -3
  104. package/blocks/ExternalSource/buildStyles.js +2 -2
  105. package/blocks/ExternalSource/query-string.d.ts.map +1 -1
  106. package/blocks/FileItem/FileItem.d.ts +3 -2
  107. package/blocks/FileItem/FileItem.d.ts.map +1 -1
  108. package/blocks/FileItem/FileItem.js +13 -7
  109. package/blocks/FormInput/FormInput.js +1 -1
  110. package/blocks/Icon/Icon.d.ts +0 -1
  111. package/blocks/Icon/Icon.d.ts.map +1 -1
  112. package/blocks/Icon/Icon.js +2 -4
  113. package/blocks/Img/ImgBase.js +9 -9
  114. package/blocks/Img/ImgConfig.d.ts +2 -2
  115. package/blocks/Img/ImgConfig.d.ts.map +1 -1
  116. package/blocks/Img/ImgConfig.js +3 -3
  117. package/blocks/Img/utils/parseObjectToString.js +1 -1
  118. package/blocks/Modal/Modal.d.ts.map +1 -1
  119. package/blocks/Modal/Modal.js +2 -1
  120. package/blocks/ProgressBar/ProgressBar.d.ts.map +1 -1
  121. package/blocks/ProgressBar/ProgressBar.js +2 -1
  122. package/blocks/ProgressBarCommon/ProgressBarCommon.d.ts.map +1 -1
  123. package/blocks/ProgressBarCommon/ProgressBarCommon.js +2 -1
  124. package/blocks/Select/Select.d.ts.map +1 -1
  125. package/blocks/Select/Select.js +14 -9
  126. package/blocks/SimpleBtn/SimpleBtn.d.ts +2 -2
  127. package/blocks/SimpleBtn/SimpleBtn.d.ts.map +1 -1
  128. package/blocks/SimpleBtn/SimpleBtn.js +2 -1
  129. package/blocks/SourceBtn/SourceBtn.d.ts +2 -2
  130. package/blocks/SourceBtn/SourceBtn.d.ts.map +1 -1
  131. package/blocks/SourceBtn/SourceBtn.js +3 -3
  132. package/blocks/SourceList/SourceList.d.ts.map +1 -1
  133. package/blocks/SourceList/SourceList.js +5 -4
  134. package/blocks/StartFrom/StartFrom.d.ts.map +1 -1
  135. package/blocks/StartFrom/StartFrom.js +2 -1
  136. package/blocks/UploadCtxProvider/EventEmitter.d.ts +19 -19
  137. package/blocks/UploadCtxProvider/EventEmitter.d.ts.map +1 -1
  138. package/blocks/UploadCtxProvider/UploadCtxProvider.d.ts +4 -4
  139. package/blocks/UploadCtxProvider/UploadCtxProvider.d.ts.map +1 -1
  140. package/blocks/UploadList/UploadList.d.ts +2 -2
  141. package/blocks/UploadList/UploadList.d.ts.map +1 -1
  142. package/blocks/UploadList/UploadList.js +4 -5
  143. package/blocks/UrlSource/UrlSource.d.ts.map +1 -1
  144. package/blocks/UrlSource/UrlSource.js +3 -2
  145. package/blocks/themes/uc-basic/index.css +0 -1
  146. package/blocks/themes/uc-basic/svg-sprite.d.ts +1 -1
  147. package/blocks/themes/uc-basic/svg-sprite.js +1 -1
  148. package/blocks/utils/debounce.d.ts +3 -1
  149. package/blocks/utils/debounce.d.ts.map +1 -1
  150. package/blocks/utils/throttle.d.ts +3 -1
  151. package/blocks/utils/throttle.d.ts.map +1 -1
  152. package/blocks/utils/userAgent.d.ts +1 -1
  153. package/blocks/utils/userAgent.d.ts.map +1 -1
  154. package/index.d.ts +1 -1
  155. package/index.js +1 -1
  156. package/index.ssr.d.ts +115 -1
  157. package/index.ssr.d.ts.map +1 -1
  158. package/index.ssr.js +122 -11
  159. package/locales/file-uploader/ar.d.ts +5 -0
  160. package/locales/file-uploader/ar.js +5 -0
  161. package/locales/file-uploader/az.d.ts +5 -0
  162. package/locales/file-uploader/az.js +5 -0
  163. package/locales/file-uploader/ca.d.ts +5 -0
  164. package/locales/file-uploader/ca.js +5 -0
  165. package/locales/file-uploader/cs.d.ts +5 -0
  166. package/locales/file-uploader/cs.js +5 -0
  167. package/locales/file-uploader/da.d.ts +5 -0
  168. package/locales/file-uploader/da.js +5 -0
  169. package/locales/file-uploader/de.d.ts +5 -0
  170. package/locales/file-uploader/de.js +5 -0
  171. package/locales/file-uploader/el.d.ts +5 -0
  172. package/locales/file-uploader/el.js +5 -0
  173. package/locales/file-uploader/en.d.ts +5 -0
  174. package/locales/file-uploader/en.js +5 -0
  175. package/locales/file-uploader/es.d.ts +5 -0
  176. package/locales/file-uploader/es.js +5 -0
  177. package/locales/file-uploader/et.d.ts +5 -0
  178. package/locales/file-uploader/et.js +5 -0
  179. package/locales/file-uploader/fr.d.ts +5 -0
  180. package/locales/file-uploader/fr.js +5 -0
  181. package/locales/file-uploader/he.d.ts +5 -0
  182. package/locales/file-uploader/he.js +5 -0
  183. package/locales/file-uploader/hy.d.ts +5 -0
  184. package/locales/file-uploader/hy.js +5 -0
  185. package/locales/file-uploader/is.d.ts +5 -0
  186. package/locales/file-uploader/is.js +5 -0
  187. package/locales/file-uploader/it.d.ts +5 -0
  188. package/locales/file-uploader/it.js +5 -0
  189. package/locales/file-uploader/ja.d.ts +5 -0
  190. package/locales/file-uploader/ja.js +5 -0
  191. package/locales/file-uploader/ka.d.ts +5 -0
  192. package/locales/file-uploader/ka.js +5 -0
  193. package/locales/file-uploader/kk.d.ts +5 -0
  194. package/locales/file-uploader/kk.js +5 -0
  195. package/locales/file-uploader/ko.d.ts +5 -0
  196. package/locales/file-uploader/ko.js +5 -0
  197. package/locales/file-uploader/lv.d.ts +5 -0
  198. package/locales/file-uploader/lv.js +5 -0
  199. package/locales/file-uploader/nb.d.ts +5 -0
  200. package/locales/file-uploader/nb.js +5 -0
  201. package/locales/file-uploader/nl.d.ts +5 -0
  202. package/locales/file-uploader/nl.js +5 -0
  203. package/locales/file-uploader/pl.d.ts +5 -0
  204. package/locales/file-uploader/pl.js +5 -0
  205. package/locales/file-uploader/pt.d.ts +5 -0
  206. package/locales/file-uploader/pt.js +5 -0
  207. package/locales/file-uploader/ro.d.ts +5 -0
  208. package/locales/file-uploader/ro.js +5 -0
  209. package/locales/file-uploader/ru.d.ts +5 -0
  210. package/locales/file-uploader/ru.js +5 -0
  211. package/locales/file-uploader/sk.d.ts +5 -0
  212. package/locales/file-uploader/sk.js +5 -0
  213. package/locales/file-uploader/sr.d.ts +5 -0
  214. package/locales/file-uploader/sr.js +5 -0
  215. package/locales/file-uploader/sv.d.ts +5 -0
  216. package/locales/file-uploader/sv.js +5 -0
  217. package/locales/file-uploader/tr.d.ts +5 -0
  218. package/locales/file-uploader/tr.js +5 -0
  219. package/locales/file-uploader/uk.d.ts +5 -0
  220. package/locales/file-uploader/uk.js +5 -0
  221. package/locales/file-uploader/vi.d.ts +5 -0
  222. package/locales/file-uploader/vi.js +5 -0
  223. package/locales/file-uploader/zh-TW.d.ts +5 -0
  224. package/locales/file-uploader/zh-TW.js +5 -0
  225. package/locales/file-uploader/zh.d.ts +5 -0
  226. package/locales/file-uploader/zh.js +5 -0
  227. package/package.json +10 -7
  228. package/solutions/file-uploader/inline/FileUploaderInline.d.ts +2 -2
  229. package/solutions/file-uploader/inline/FileUploaderInline.d.ts.map +1 -1
  230. package/solutions/file-uploader/inline/FileUploaderInline.js +3 -4
  231. package/solutions/file-uploader/minimal/FileUploaderMinimal.d.ts.map +1 -1
  232. package/solutions/file-uploader/minimal/FileUploaderMinimal.js +2 -1
  233. package/solutions/file-uploader/regular/FileUploaderRegular.d.ts +3 -3
  234. package/solutions/file-uploader/regular/FileUploaderRegular.d.ts.map +1 -1
  235. package/solutions/file-uploader/regular/FileUploaderRegular.js +2 -1
  236. package/symbiote.js +19 -0
  237. package/types/jsx.d.ts +9 -3
  238. package/utils/getPluralForm.d.ts.map +1 -1
  239. package/utils/isSecureTokenExpired.d.ts +1 -1
  240. package/utils/memoize.d.ts.map +1 -1
  241. package/utils/mixinClass.d.ts +3 -1
  242. package/utils/mixinClass.d.ts.map +1 -1
  243. package/utils/prettyBytes.d.ts.map +1 -1
  244. package/utils/template-utils.d.ts.map +1 -1
  245. package/utils/toKebabCase.d.ts.map +1 -1
  246. package/utils/uniqueArray.d.ts.map +1 -1
  247. package/utils/validators/collection/validateCollectionUploadError.d.ts +1 -1
  248. package/utils/validators/collection/validateMultiple.d.ts +1 -1
  249. package/utils/validators/file/validateFileType.d.ts +1 -1
  250. package/utils/validators/file/validateIsImage.d.ts +1 -1
  251. package/utils/validators/file/validateMaxSizeLimit.d.ts +1 -1
  252. package/utils/validators/file/validateUploadError.d.ts +1 -1
  253. package/utils/waitForAttribute.d.ts +12 -6
  254. package/utils/waitForAttribute.d.ts.map +1 -1
  255. package/utils/waitForAttribute.js +38 -8
  256. package/utils/waitForAttribute.test.js +10 -47
  257. package/utils/withResolvers.d.ts +7 -0
  258. package/utils/withResolvers.d.ts.map +1 -0
  259. package/utils/withResolvers.js +17 -0
  260. package/utils/withResolvers.test.d.ts +2 -0
  261. package/utils/withResolvers.test.d.ts.map +1 -0
  262. package/utils/withResolvers.test.js +27 -0
  263. package/web/file-uploader.iife.min.js +5 -4
  264. package/web/file-uploader.min.js +5 -4
  265. package/web/uc-basic.min.css +1 -1
  266. package/web/uc-cloud-image-editor.min.css +1 -1
  267. package/web/uc-cloud-image-editor.min.js +5 -4
  268. package/web/uc-file-uploader-inline.min.css +1 -1
  269. package/web/uc-file-uploader-inline.min.js +5 -4
  270. package/web/uc-file-uploader-minimal.min.js +4 -3
  271. package/web/uc-file-uploader-regular.min.css +1 -1
  272. package/web/uc-file-uploader-regular.min.js +5 -4
  273. package/web/uc-img.min.js +4 -3
  274. package/blocks/CloudImageEditor/src/lib/FocusVisible.d.ts +0 -15
  275. package/blocks/CloudImageEditor/src/lib/FocusVisible.d.ts.map +0 -1
  276. package/blocks/CloudImageEditor/src/lib/FocusVisible.js +0 -33
  277. package/blocks/CloudImageEditor/src/lib/applyFocusVisiblePolyfill.d.ts +0 -10
  278. package/blocks/CloudImageEditor/src/lib/applyFocusVisiblePolyfill.d.ts.map +0 -1
  279. package/blocks/CloudImageEditor/src/lib/applyFocusVisiblePolyfill.js +0 -256
  280. package/blocks/Range/Range.d.ts +0 -16
  281. package/blocks/Range/Range.d.ts.map +0 -1
  282. package/blocks/Range/Range.js +0 -44
  283. package/blocks/Range/range.css +0 -65
@@ -1,78 +1,41 @@
1
+ // @ts-check
1
2
  import { expect } from '@esm-bundle/chai';
2
- import { spy } from 'sinon';
3
3
  import { delay } from './delay';
4
4
  import { waitForAttribute } from './waitForAttribute';
5
5
 
6
6
  const TEST_ATTRIBUTE = 'test-attribute';
7
7
 
8
8
  describe('waitForAttribute', () => {
9
- it('should call onTimeout callback when timeout is over', async () => {
9
+ it('should resolve success false when timeout is over', async () => {
10
10
  const element = document.createElement('div');
11
- const onSuccess = spy();
12
- const onTimeout = spy();
13
- waitForAttribute({
11
+ const promise = waitForAttribute({
14
12
  element,
15
13
  attribute: TEST_ATTRIBUTE,
16
- onSuccess,
17
- onTimeout,
18
14
  timeout: 10,
19
15
  });
20
16
  await delay(100);
21
- expect(onSuccess.called).to.be.false;
22
- expect(onTimeout.calledOnce).to.be.true;
17
+ expect(await promise).to.be.eql({ success: false, attribute: TEST_ATTRIBUTE });
23
18
  });
24
- it('should call onSuccess callback when attribute is set async', async () => {
19
+ it('should resolve success true when attribute is set async', async () => {
25
20
  const element = document.createElement('div');
26
- const onSuccess = spy();
27
- const onTimeout = spy();
28
- waitForAttribute({
21
+ const promise = waitForAttribute({
29
22
  element,
30
23
  attribute: TEST_ATTRIBUTE,
31
- onSuccess,
32
- onTimeout,
33
24
  timeout: 10,
34
25
  });
35
26
  element.setAttribute(TEST_ATTRIBUTE, 'test');
36
27
  await delay(100);
37
- expect(onSuccess.calledOnce).to.be.true;
38
- expect(onSuccess.getCall(0).args[0]).to.equal('test');
39
- expect(onTimeout.called).to.be.false;
28
+ expect(await promise).to.be.eql({ success: true, attribute: TEST_ATTRIBUTE, value: 'test' });
40
29
  });
41
- it('should call onSuccess callback when attribute is set sync', async () => {
30
+ it('should resolve success true when attribute is set sync', async () => {
42
31
  const element = document.createElement('div');
43
32
  element.setAttribute(TEST_ATTRIBUTE, 'test');
44
- const onSuccess = spy();
45
- const onTimeout = spy();
46
- waitForAttribute({
33
+ const promise = waitForAttribute({
47
34
  element,
48
35
  attribute: TEST_ATTRIBUTE,
49
- onSuccess,
50
- onTimeout,
51
36
  timeout: 10,
52
37
  });
53
38
  await delay(100);
54
- expect(onSuccess.calledOnce).to.be.true;
55
- expect(onSuccess.getCall(0).args[0]).to.equal('test');
56
- expect(onTimeout.called).to.be.false;
57
- });
58
-
59
- it('should not call onSuccess on the second attribute change', async () => {
60
- const element = document.createElement('div');
61
- element.setAttribute(TEST_ATTRIBUTE, 'test');
62
- const onSuccess = spy();
63
- const onTimeout = spy();
64
- waitForAttribute({
65
- element,
66
- attribute: TEST_ATTRIBUTE,
67
- onSuccess,
68
- onTimeout,
69
- timeout: 10,
70
- });
71
- await delay(100);
72
- element.setAttribute(TEST_ATTRIBUTE, 'tes2');
73
- await delay(100);
74
- expect(onSuccess.calledOnce).to.be.true;
75
- expect(onSuccess.getCall(0).args[0]).to.equal('test');
76
- expect(onTimeout.called).to.be.false;
39
+ expect(await promise).to.be.eql({ success: true, attribute: TEST_ATTRIBUTE, value: 'test' });
77
40
  });
78
41
  });
@@ -0,0 +1,7 @@
1
+ /** @template T */
2
+ export function withResolvers<T>(): {
3
+ resolve: (value: T | PromiseLike<T>) => void;
4
+ reject: (value?: unknown) => void;
5
+ promise: Promise<T>;
6
+ };
7
+ //# sourceMappingURL=withResolvers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withResolvers.d.ts","sourceRoot":"","sources":["withResolvers.js"],"names":[],"mappings":"AAEA,kBAAkB;AAClB,8BADc,CAAC;aAUS,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI;YACpC,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI;;EAG/C"}
@@ -0,0 +1,17 @@
1
+ // @ts-check
2
+
3
+ /** @template T */
4
+ export function withResolvers() {
5
+ let resolve;
6
+ let reject;
7
+ /** @type {Promise<T>} */
8
+ const promise = new Promise((_resolve, _reject) => {
9
+ resolve = _resolve;
10
+ reject = _reject;
11
+ });
12
+ return {
13
+ resolve: /** @type {(value: T | PromiseLike<T>) => void} */ (/** @type {unknown} */ (resolve)),
14
+ reject: /** @type {(value?: unknown) => void} */ (/** @type {unknown} */ (reject)),
15
+ promise,
16
+ };
17
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=withResolvers.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withResolvers.test.d.ts","sourceRoot":"","sources":["withResolvers.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import { expect } from '@esm-bundle/chai';
2
+ import { withResolvers } from './withResolvers';
3
+
4
+ describe('withResolvers', () => {
5
+ it('should return resolve, reject and promise', () => {
6
+ const { resolve, reject, promise } = withResolvers();
7
+ expect(resolve).to.be.a('function');
8
+ expect(reject).to.be.a('function');
9
+ expect(promise).to.be.instanceOf(Promise);
10
+ });
11
+
12
+ it('should resolve promise', async () => {
13
+ const { resolve, promise } = withResolvers();
14
+ resolve('resolved');
15
+ expect(await promise).to.equal('resolved');
16
+ });
17
+
18
+ it('should reject promise', async () => {
19
+ const { reject, promise } = withResolvers();
20
+ reject(new Error('rejected'));
21
+ try {
22
+ await promise;
23
+ } catch (error) {
24
+ expect(error.message).to.equal('rejected');
25
+ }
26
+ });
27
+ });