util-helpers 4.0.8 → 4.1.0
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/README.md +4 -50
- package/dist/util-helpers.js +93 -1
- package/dist/util-helpers.min.js +1 -1
- package/dist/util-helpers.min.js.map +1 -1
- package/esm/blobToDataURL.js +43 -0
- package/esm/dataURLToBlob.js +31 -0
- package/esm/index.js +3 -0
- package/esm/setDataURLPrefix.js +28 -0
- package/lib/blobToDataURL.js +51 -0
- package/lib/dataURLToBlob.js +39 -0
- package/lib/index.js +24 -0
- package/lib/setDataURLPrefix.js +36 -0
- package/package.json +1 -1
- package/types/blobToDataURL.d.ts +25 -0
- package/types/dataURLToBlob.d.ts +15 -0
- package/types/index.d.ts +3 -0
- package/types/setDataURLPrefix.d.ts +23 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 设置 DataURL 前缀、MIME 类型、base64 标识。<br/><br/>
|
|
3
|
+
*
|
|
4
|
+
* 如果你需要获取DataURL 的 MIME 类型和数据本身,推荐使用 <a href="https://www.npmjs.com/package/data-urls">data-urls</a>。
|
|
5
|
+
*
|
|
6
|
+
* @static
|
|
7
|
+
* @alias module:Processor.setDataURLPrefix
|
|
8
|
+
* @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URIs|Data URLs}
|
|
9
|
+
* @param {string} data 数据本身
|
|
10
|
+
* @param {string} [mimetype="image/png"] MIME 类型
|
|
11
|
+
* @param {boolean} [base64=true] 添加 base64 标识
|
|
12
|
+
* @returns {string} DataURL 格式的字符串
|
|
13
|
+
* @example
|
|
14
|
+
* const data = 'PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=';
|
|
15
|
+
* setDataURLPrefix(data); // data:image/png;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
16
|
+
* setDataURLPrefix(data, 'image/png', false); // data:image/png,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
17
|
+
* setDataURLPrefix(data, 'image/jpg'); // data:image/jpg;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
18
|
+
* setDataURLPrefix(data, 'text/html'); // data:text/html;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
19
|
+
* setDataURLPrefix(data, ''); // data:;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
20
|
+
* setDataURLPrefix(data, '', false); // data:,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
21
|
+
*/
|
|
22
|
+
function setDataURLPrefix(data) {
|
|
23
|
+
var mimetype = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'image/png';
|
|
24
|
+
var base64 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
25
|
+
return "data:".concat(mimetype).concat(base64 ? ';base64' : '', ",").concat(data);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export default setDataURLPrefix;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
// file、blob文件如何预览图片?
|
|
9
|
+
// 方法1:将file或者blob类型文件转成base64数据,再作为src赋值给img标签
|
|
10
|
+
// 方法2:使用 window.URL.createObjectURL(blob) 为blob、file 创建一个指向该参数对象的URL
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* 将 Blob 或 File 对象转成 data:URL 格式的 Base64 字符串。
|
|
14
|
+
*
|
|
15
|
+
* @static
|
|
16
|
+
* @alias module:Processor.blobToDataURL
|
|
17
|
+
* @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader/readAsDataURL|FileReader.readAsDataURL()}
|
|
18
|
+
* @since 4.1.0
|
|
19
|
+
* @param {Blob} blob Blob 或 File 对象
|
|
20
|
+
* @returns {Promise<string>} data:URL 格式的 Base64 字符串。
|
|
21
|
+
* @example
|
|
22
|
+
* const aFileParts = ['<a id="a"><b id="b">hey!</b></a>']; // 一个包含DOMString的数组
|
|
23
|
+
* const htmlBlob = new Blob(aFileParts, { type: 'text/html' }); // 得到 blob
|
|
24
|
+
*
|
|
25
|
+
* blobToDataURL(htmlBlob).then(data=>{
|
|
26
|
+
* console.log(data); // data:text/html;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
27
|
+
* });
|
|
28
|
+
*
|
|
29
|
+
* const textBlob = new Blob(aFileParts, { type: 'text/plain' });
|
|
30
|
+
*
|
|
31
|
+
* blobToDataURL(textBlob).then(data=>{
|
|
32
|
+
* console.log(data); // data:text/plain;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
33
|
+
* });
|
|
34
|
+
*/
|
|
35
|
+
function blobToDataURL(blob) {
|
|
36
|
+
return new Promise(function (resolve, reject) {
|
|
37
|
+
var reader = new FileReader();
|
|
38
|
+
reader.readAsDataURL(blob); // @ts-ignore
|
|
39
|
+
|
|
40
|
+
reader.onload = function () {
|
|
41
|
+
return resolve(reader.result);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
reader.onerror = function (error) {
|
|
45
|
+
return reject(error);
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
var _default = blobToDataURL;
|
|
51
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* 将 DataURL 转为 Blob 对象
|
|
10
|
+
*
|
|
11
|
+
* @static
|
|
12
|
+
* @alias module:Processor.dataURLToBlob
|
|
13
|
+
* @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Glossary/Base64|Base64}
|
|
14
|
+
* @since 4.1.0
|
|
15
|
+
* @param {string} dataurl data: 协议的URL
|
|
16
|
+
* @returns {Blob} Blob 对象
|
|
17
|
+
* @example
|
|
18
|
+
* const dataurl = 'data:text/html;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=';
|
|
19
|
+
* dataURLToBlob(dataurl);
|
|
20
|
+
*/
|
|
21
|
+
function dataURLToBlob(dataurl) {
|
|
22
|
+
var arr = dataurl.split(','); // @ts-ignore
|
|
23
|
+
|
|
24
|
+
var mime = arr[0].match(/:(.*?);/)[1];
|
|
25
|
+
var bstr = atob(arr[1]);
|
|
26
|
+
var n = bstr.length;
|
|
27
|
+
var u8arr = new Uint8Array(n);
|
|
28
|
+
|
|
29
|
+
while (n--) {
|
|
30
|
+
u8arr[n] = bstr.charCodeAt(n);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return new Blob([u8arr], {
|
|
34
|
+
type: mime
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
var _default = dataURLToBlob;
|
|
39
|
+
exports["default"] = _default;
|
package/lib/index.js
CHANGED
|
@@ -165,6 +165,24 @@ Object.defineProperty(exports, "parseIdCard", {
|
|
|
165
165
|
return _parseIdCard["default"];
|
|
166
166
|
}
|
|
167
167
|
});
|
|
168
|
+
Object.defineProperty(exports, "blobToDataURL", {
|
|
169
|
+
enumerable: true,
|
|
170
|
+
get: function get() {
|
|
171
|
+
return _blobToDataURL["default"];
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
Object.defineProperty(exports, "dataURLToBlob", {
|
|
175
|
+
enumerable: true,
|
|
176
|
+
get: function get() {
|
|
177
|
+
return _dataURLToBlob["default"];
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
Object.defineProperty(exports, "setDataURLPrefix", {
|
|
181
|
+
enumerable: true,
|
|
182
|
+
get: function get() {
|
|
183
|
+
return _setDataURLPrefix["default"];
|
|
184
|
+
}
|
|
185
|
+
});
|
|
168
186
|
Object.defineProperty(exports, "plus", {
|
|
169
187
|
enumerable: true,
|
|
170
188
|
get: function get() {
|
|
@@ -256,6 +274,12 @@ var _bytesToSize = _interopRequireDefault(require("./bytesToSize"));
|
|
|
256
274
|
|
|
257
275
|
var _parseIdCard = _interopRequireDefault(require("./parseIdCard"));
|
|
258
276
|
|
|
277
|
+
var _blobToDataURL = _interopRequireDefault(require("./blobToDataURL"));
|
|
278
|
+
|
|
279
|
+
var _dataURLToBlob = _interopRequireDefault(require("./dataURLToBlob"));
|
|
280
|
+
|
|
281
|
+
var _setDataURLPrefix = _interopRequireDefault(require("./setDataURLPrefix"));
|
|
282
|
+
|
|
259
283
|
var _plus = _interopRequireDefault(require("./plus"));
|
|
260
284
|
|
|
261
285
|
var _minus = _interopRequireDefault(require("./minus"));
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* 设置 DataURL 前缀、MIME 类型、base64 标识。<br/><br/>
|
|
10
|
+
*
|
|
11
|
+
* 如果你需要获取DataURL 的 MIME 类型和数据本身,推荐使用 <a href="https://www.npmjs.com/package/data-urls">data-urls</a>。
|
|
12
|
+
*
|
|
13
|
+
* @static
|
|
14
|
+
* @alias module:Processor.setDataURLPrefix
|
|
15
|
+
* @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URIs|Data URLs}
|
|
16
|
+
* @param {string} data 数据本身
|
|
17
|
+
* @param {string} [mimetype="image/png"] MIME 类型
|
|
18
|
+
* @param {boolean} [base64=true] 添加 base64 标识
|
|
19
|
+
* @returns {string} DataURL 格式的字符串
|
|
20
|
+
* @example
|
|
21
|
+
* const data = 'PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=';
|
|
22
|
+
* setDataURLPrefix(data); // data:image/png;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
23
|
+
* setDataURLPrefix(data, 'image/png', false); // data:image/png,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
24
|
+
* setDataURLPrefix(data, 'image/jpg'); // data:image/jpg;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
25
|
+
* setDataURLPrefix(data, 'text/html'); // data:text/html;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
26
|
+
* setDataURLPrefix(data, ''); // data:;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
27
|
+
* setDataURLPrefix(data, '', false); // data:,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
28
|
+
*/
|
|
29
|
+
function setDataURLPrefix(data) {
|
|
30
|
+
var mimetype = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'image/png';
|
|
31
|
+
var base64 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
32
|
+
return "data:".concat(mimetype).concat(base64 ? ';base64' : '', ",").concat(data);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
var _default = setDataURLPrefix;
|
|
36
|
+
exports["default"] = _default;
|
package/package.json
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export default blobToDataURL;
|
|
2
|
+
/**
|
|
3
|
+
* 将 Blob 或 File 对象转成 data:URL 格式的 Base64 字符串。
|
|
4
|
+
*
|
|
5
|
+
* @static
|
|
6
|
+
* @alias module:Processor.blobToDataURL
|
|
7
|
+
* @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader/readAsDataURL|FileReader.readAsDataURL()}
|
|
8
|
+
* @since 4.1.0
|
|
9
|
+
* @param {Blob} blob Blob 或 File 对象
|
|
10
|
+
* @returns {Promise<string>} data:URL 格式的 Base64 字符串。
|
|
11
|
+
* @example
|
|
12
|
+
* const aFileParts = ['<a id="a"><b id="b">hey!</b></a>']; // 一个包含DOMString的数组
|
|
13
|
+
* const htmlBlob = new Blob(aFileParts, { type: 'text/html' }); // 得到 blob
|
|
14
|
+
*
|
|
15
|
+
* blobToDataURL(htmlBlob).then(data=>{
|
|
16
|
+
* console.log(data); // data:text/html;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* const textBlob = new Blob(aFileParts, { type: 'text/plain' });
|
|
20
|
+
*
|
|
21
|
+
* blobToDataURL(textBlob).then(data=>{
|
|
22
|
+
* console.log(data); // data:text/plain;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
23
|
+
* });
|
|
24
|
+
*/
|
|
25
|
+
declare function blobToDataURL(blob: Blob): Promise<string>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export default dataURLToBlob;
|
|
2
|
+
/**
|
|
3
|
+
* 将 DataURL 转为 Blob 对象
|
|
4
|
+
*
|
|
5
|
+
* @static
|
|
6
|
+
* @alias module:Processor.dataURLToBlob
|
|
7
|
+
* @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Glossary/Base64|Base64}
|
|
8
|
+
* @since 4.1.0
|
|
9
|
+
* @param {string} dataurl data: 协议的URL
|
|
10
|
+
* @returns {Blob} Blob 对象
|
|
11
|
+
* @example
|
|
12
|
+
* const dataurl = 'data:text/html;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=';
|
|
13
|
+
* dataURLToBlob(dataurl);
|
|
14
|
+
*/
|
|
15
|
+
declare function dataURLToBlob(dataurl: string): Blob;
|
package/types/index.d.ts
CHANGED
|
@@ -25,6 +25,9 @@ export { default as replaceChar } from "./replaceChar";
|
|
|
25
25
|
export { default as numberToChinese } from "./numberToChinese";
|
|
26
26
|
export { default as bytesToSize } from "./bytesToSize";
|
|
27
27
|
export { default as parseIdCard } from "./parseIdCard";
|
|
28
|
+
export { default as blobToDataURL } from "./blobToDataURL";
|
|
29
|
+
export { default as dataURLToBlob } from "./dataURLToBlob";
|
|
30
|
+
export { default as setDataURLPrefix } from "./setDataURLPrefix";
|
|
28
31
|
export { default as plus } from "./plus";
|
|
29
32
|
export { default as minus } from "./minus";
|
|
30
33
|
export { default as times } from "./times";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export default setDataURLPrefix;
|
|
2
|
+
/**
|
|
3
|
+
* 设置 DataURL 前缀、MIME 类型、base64 标识。<br/><br/>
|
|
4
|
+
*
|
|
5
|
+
* 如果你需要获取DataURL 的 MIME 类型和数据本身,推荐使用 <a href="https://www.npmjs.com/package/data-urls">data-urls</a>。
|
|
6
|
+
*
|
|
7
|
+
* @static
|
|
8
|
+
* @alias module:Processor.setDataURLPrefix
|
|
9
|
+
* @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URIs|Data URLs}
|
|
10
|
+
* @param {string} data 数据本身
|
|
11
|
+
* @param {string} [mimetype="image/png"] MIME 类型
|
|
12
|
+
* @param {boolean} [base64=true] 添加 base64 标识
|
|
13
|
+
* @returns {string} DataURL 格式的字符串
|
|
14
|
+
* @example
|
|
15
|
+
* const data = 'PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=';
|
|
16
|
+
* setDataURLPrefix(data); // data:image/png;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
17
|
+
* setDataURLPrefix(data, 'image/png', false); // data:image/png,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
18
|
+
* setDataURLPrefix(data, 'image/jpg'); // data:image/jpg;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
19
|
+
* setDataURLPrefix(data, 'text/html'); // data:text/html;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
20
|
+
* setDataURLPrefix(data, ''); // data:;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
21
|
+
* setDataURLPrefix(data, '', false); // data:,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
|
|
22
|
+
*/
|
|
23
|
+
declare function setDataURLPrefix(data: string, mimetype?: string | undefined, base64?: boolean | undefined): string;
|