@leancodepl/utils 7.3.4 → 7.3.6

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.
package/index.cjs.js CHANGED
@@ -82,6 +82,21 @@ function ensureNotEmpty(value, message) {
82
82
  return value;
83
83
  }
84
84
 
85
+ function downloadFile(dataOrUrl, options = {}) {
86
+ if (typeof dataOrUrl === "string") {
87
+ const { name } = options;
88
+ const a = document.createElement("a");
89
+ a.href = dataOrUrl;
90
+ a.target = "_blank";
91
+ if (name) a.download = name;
92
+ a.click();
93
+ } else {
94
+ const url = URL.createObjectURL(dataOrUrl);
95
+ downloadFile(url, options);
96
+ URL.revokeObjectURL(url);
97
+ }
98
+ }
99
+
85
100
  function useRunInTask() {
86
101
  const [runningTasks, setRunningTasks] = react.useState(0);
87
102
  const runInTask = react.useCallback(async (task)=>{
@@ -153,6 +168,7 @@ exports.assertDefined = assertDefined;
153
168
  exports.assertNotEmpty = assertNotEmpty;
154
169
  exports.assertNotNull = assertNotNull;
155
170
  exports.capitalizeDeep = capitalizeDeep;
171
+ exports.downloadFile = downloadFile;
156
172
  exports.ensureDefined = ensureDefined;
157
173
  exports.ensureNotEmpty = ensureNotEmpty;
158
174
  exports.ensureNotNull = ensureNotNull;
package/index.esm.js CHANGED
@@ -74,6 +74,21 @@ function ensureNotEmpty(value, message) {
74
74
  return value;
75
75
  }
76
76
 
77
+ function downloadFile(dataOrUrl, options = {}) {
78
+ if (typeof dataOrUrl === "string") {
79
+ const { name } = options;
80
+ const a = document.createElement("a");
81
+ a.href = dataOrUrl;
82
+ a.target = "_blank";
83
+ if (name) a.download = name;
84
+ a.click();
85
+ } else {
86
+ const url = URL.createObjectURL(dataOrUrl);
87
+ downloadFile(url, options);
88
+ URL.revokeObjectURL(url);
89
+ }
90
+ }
91
+
77
92
  function useRunInTask() {
78
93
  const [runningTasks, setRunningTasks] = useState(0);
79
94
  const runInTask = useCallback(async (task)=>{
@@ -141,4 +156,4 @@ function useDialog(onAfterClose) {
141
156
  };
142
157
  }
143
158
 
144
- export { assertDefined, assertNotEmpty, assertNotNull, capitalizeDeep, ensureDefined, ensureNotEmpty, ensureNotNull, toLowerFirst, toUpperFirst, uncapitalizeDeep, useBoundRunInTask, useDialog, useKeyByRoute, useRunInTask, useSetUnset };
159
+ export { assertDefined, assertNotEmpty, assertNotNull, capitalizeDeep, downloadFile, ensureDefined, ensureNotEmpty, ensureNotNull, toLowerFirst, toUpperFirst, uncapitalizeDeep, useBoundRunInTask, useDialog, useKeyByRoute, useRunInTask, useSetUnset };
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@leancodepl/utils",
3
- "version": "7.3.4",
3
+ "version": "7.3.6",
4
4
  "license": "Apache-2.0",
5
5
  "dependencies": {
6
- "@leancodepl/api-date": "7.3.4",
6
+ "@leancodepl/api-date": "7.3.6",
7
7
  "tiny-invariant": ">=1.3.1"
8
8
  },
9
9
  "peerDependencies": {
package/src/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export * from "./lib/assertNotEmpty";
7
7
  export * from "./lib/ensureDefined";
8
8
  export * from "./lib/ensureNotNull";
9
9
  export * from "./lib/ensureNotEmpty";
10
+ export * from "./lib/downloadFile";
10
11
  export * from "./lib/hooks/useRunInTask";
11
12
  export * from "./lib/hooks/useBoundRunInTask";
12
13
  export * from "./lib/hooks/useKeyByRoute";