@leancodepl/utils 7.3.5 → 7.3.7
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 +24 -0
- package/index.esm.js +23 -1
- package/package.json +2 -2
- package/src/index.d.ts +2 -0
- package/src/lib/addPrefix.d.ts +5 -0
package/index.cjs.js
CHANGED
|
@@ -9,6 +9,13 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
9
9
|
|
|
10
10
|
var invariant__default = /*#__PURE__*/_interopDefaultLegacy(invariant);
|
|
11
11
|
|
|
12
|
+
function addPrefix(object, prefix) {
|
|
13
|
+
return Object.fromEntries(Object.entries(object).map(([key, value])=>[
|
|
14
|
+
`${prefix}${key}`,
|
|
15
|
+
value
|
|
16
|
+
]));
|
|
17
|
+
}
|
|
18
|
+
|
|
12
19
|
function transformFirst(value, transformFn) {
|
|
13
20
|
if (value.length === 0) {
|
|
14
21
|
return "";
|
|
@@ -82,6 +89,21 @@ function ensureNotEmpty(value, message) {
|
|
|
82
89
|
return value;
|
|
83
90
|
}
|
|
84
91
|
|
|
92
|
+
function downloadFile(dataOrUrl, options = {}) {
|
|
93
|
+
if (typeof dataOrUrl === "string") {
|
|
94
|
+
const { name } = options;
|
|
95
|
+
const a = document.createElement("a");
|
|
96
|
+
a.href = dataOrUrl;
|
|
97
|
+
a.target = "_blank";
|
|
98
|
+
if (name) a.download = name;
|
|
99
|
+
a.click();
|
|
100
|
+
} else {
|
|
101
|
+
const url = URL.createObjectURL(dataOrUrl);
|
|
102
|
+
downloadFile(url, options);
|
|
103
|
+
URL.revokeObjectURL(url);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
85
107
|
function useRunInTask() {
|
|
86
108
|
const [runningTasks, setRunningTasks] = react.useState(0);
|
|
87
109
|
const runInTask = react.useCallback(async (task)=>{
|
|
@@ -149,10 +171,12 @@ function useDialog(onAfterClose) {
|
|
|
149
171
|
};
|
|
150
172
|
}
|
|
151
173
|
|
|
174
|
+
exports.addPrefix = addPrefix;
|
|
152
175
|
exports.assertDefined = assertDefined;
|
|
153
176
|
exports.assertNotEmpty = assertNotEmpty;
|
|
154
177
|
exports.assertNotNull = assertNotNull;
|
|
155
178
|
exports.capitalizeDeep = capitalizeDeep;
|
|
179
|
+
exports.downloadFile = downloadFile;
|
|
156
180
|
exports.ensureDefined = ensureDefined;
|
|
157
181
|
exports.ensureNotEmpty = ensureNotEmpty;
|
|
158
182
|
exports.ensureNotNull = ensureNotNull;
|
package/index.esm.js
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import invariant from 'tiny-invariant';
|
|
2
2
|
import { useState, useCallback, useMemo } from 'react';
|
|
3
3
|
|
|
4
|
+
function addPrefix(object, prefix) {
|
|
5
|
+
return Object.fromEntries(Object.entries(object).map(([key, value])=>[
|
|
6
|
+
`${prefix}${key}`,
|
|
7
|
+
value
|
|
8
|
+
]));
|
|
9
|
+
}
|
|
10
|
+
|
|
4
11
|
function transformFirst(value, transformFn) {
|
|
5
12
|
if (value.length === 0) {
|
|
6
13
|
return "";
|
|
@@ -74,6 +81,21 @@ function ensureNotEmpty(value, message) {
|
|
|
74
81
|
return value;
|
|
75
82
|
}
|
|
76
83
|
|
|
84
|
+
function downloadFile(dataOrUrl, options = {}) {
|
|
85
|
+
if (typeof dataOrUrl === "string") {
|
|
86
|
+
const { name } = options;
|
|
87
|
+
const a = document.createElement("a");
|
|
88
|
+
a.href = dataOrUrl;
|
|
89
|
+
a.target = "_blank";
|
|
90
|
+
if (name) a.download = name;
|
|
91
|
+
a.click();
|
|
92
|
+
} else {
|
|
93
|
+
const url = URL.createObjectURL(dataOrUrl);
|
|
94
|
+
downloadFile(url, options);
|
|
95
|
+
URL.revokeObjectURL(url);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
77
99
|
function useRunInTask() {
|
|
78
100
|
const [runningTasks, setRunningTasks] = useState(0);
|
|
79
101
|
const runInTask = useCallback(async (task)=>{
|
|
@@ -141,4 +163,4 @@ function useDialog(onAfterClose) {
|
|
|
141
163
|
};
|
|
142
164
|
}
|
|
143
165
|
|
|
144
|
-
export { assertDefined, assertNotEmpty, assertNotNull, capitalizeDeep, ensureDefined, ensureNotEmpty, ensureNotNull, toLowerFirst, toUpperFirst, uncapitalizeDeep, useBoundRunInTask, useDialog, useKeyByRoute, useRunInTask, useSetUnset };
|
|
166
|
+
export { addPrefix, assertDefined, assertNotEmpty, assertNotNull, capitalizeDeep, downloadFile, ensureDefined, ensureNotEmpty, ensureNotNull, toLowerFirst, toUpperFirst, uncapitalizeDeep, useBoundRunInTask, useDialog, useKeyByRoute, useRunInTask, useSetUnset };
|
package/package.json
CHANGED
package/src/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from "./lib/types";
|
|
2
|
+
export * from "./lib/addPrefix";
|
|
2
3
|
export * from "./lib/transformFirst";
|
|
3
4
|
export * from "./lib/transformDeep";
|
|
4
5
|
export * from "./lib/assertDefined";
|
|
@@ -7,6 +8,7 @@ export * from "./lib/assertNotEmpty";
|
|
|
7
8
|
export * from "./lib/ensureDefined";
|
|
8
9
|
export * from "./lib/ensureNotNull";
|
|
9
10
|
export * from "./lib/ensureNotEmpty";
|
|
11
|
+
export * from "./lib/downloadFile";
|
|
10
12
|
export * from "./lib/hooks/useRunInTask";
|
|
11
13
|
export * from "./lib/hooks/useBoundRunInTask";
|
|
12
14
|
export * from "./lib/hooks/useKeyByRoute";
|