@ringcentral-integration/utils 0.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.
- package/LICENSE +17 -0
- package/README.md +9 -0
- package/index.js +17 -0
- package/index.js.map +1 -0
- package/package.json +26 -0
- package/src/decorators/index.js +17 -0
- package/src/decorators/index.js.map +1 -0
- package/src/decorators/time.js +81 -0
- package/src/decorators/time.js.map +1 -0
- package/src/index.js +28 -0
- package/src/index.js.map +1 -0
- package/src/utils/MultiPartUTF8FormData.js +239 -0
- package/src/utils/MultiPartUTF8FormData.js.map +1 -0
- package/src/utils/base64Handler.js +96 -0
- package/src/utils/base64Handler.js.map +1 -0
- package/src/utils/blobHandler.js +44 -0
- package/src/utils/blobHandler.js.map +1 -0
- package/src/utils/downloadFile.js +95 -0
- package/src/utils/downloadFile.js.map +1 -0
- package/src/utils/empty.js +16 -0
- package/src/utils/empty.js.map +1 -0
- package/src/utils/fileHandler/constant.js +37 -0
- package/src/utils/fileHandler/constant.js.map +1 -0
- package/src/utils/fileHandler/fileHandler.js +65 -0
- package/src/utils/fileHandler/fileHandler.js.map +1 -0
- package/src/utils/fileHandler/index.js +17 -0
- package/src/utils/fileHandler/index.js.map +1 -0
- package/src/utils/format.js +14 -0
- package/src/utils/format.js.map +1 -0
- package/src/utils/getTranslateFn.js +98 -0
- package/src/utils/getTranslateFn.js.map +1 -0
- package/src/utils/index.js +204 -0
- package/src/utils/index.js.map +1 -0
- package/src/utils/invertObj.js +26 -0
- package/src/utils/invertObj.js.map +1 -0
- package/src/utils/isElectron.js +13 -0
- package/src/utils/isElectron.js.map +1 -0
- package/src/utils/isSafari.js +10 -0
- package/src/utils/isSafari.js.map +1 -0
- package/src/utils/loadImage.js +24 -0
- package/src/utils/loadImage.js.map +1 -0
- package/src/utils/polling.js +107 -0
- package/src/utils/polling.js.map +1 -0
- package/src/utils/sleep.js +48 -0
- package/src/utils/sleep.js.map +1 -0
- package/src/utils/stopEvent.js +20 -0
- package/src/utils/stopEvent.js.map +1 -0
- package/src/utils/stringHandler/index.js +17 -0
- package/src/utils/stringHandler/index.js.map +1 -0
- package/src/utils/stringHandler/isASCII.js +12 -0
- package/src/utils/stringHandler/isASCII.js.map +1 -0
- package/src/utils/waitUntil.js +70 -0
- package/src/utils/waitUntil.js.map +1 -0
- package/src/utils/waitUntilTo.js +99 -0
- package/src/utils/waitUntilTo.js.map +1 -0
- package/src/webpackPlugins/NoChunkChecker/NoChunkChecker.js +56 -0
- package/src/webpackPlugins/NoChunkChecker/NoChunkChecker.js.map +1 -0
- package/src/webpackPlugins/NoChunkChecker/index.js +17 -0
- package/src/webpackPlugins/NoChunkChecker/index.js.map +1 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.array.iterator");
|
|
4
|
+
require("core-js/modules/es.object.to-string");
|
|
5
|
+
require("core-js/modules/es.promise");
|
|
6
|
+
require("core-js/modules/es.string.iterator");
|
|
7
|
+
require("core-js/modules/web.dom-collections.iterator");
|
|
8
|
+
require("core-js/modules/web.url");
|
|
9
|
+
Object.defineProperty(exports, "__esModule", {
|
|
10
|
+
value: true
|
|
11
|
+
});
|
|
12
|
+
exports.getBlobURL = getBlobURL;
|
|
13
|
+
require("regenerator-runtime/runtime");
|
|
14
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
15
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
16
|
+
function getBlobURL(_x) {
|
|
17
|
+
return _getBlobURL.apply(this, arguments);
|
|
18
|
+
}
|
|
19
|
+
function _getBlobURL() {
|
|
20
|
+
_getBlobURL = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(imageSrc) {
|
|
21
|
+
var image, imageBlog;
|
|
22
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
23
|
+
while (1) {
|
|
24
|
+
switch (_context.prev = _context.next) {
|
|
25
|
+
case 0:
|
|
26
|
+
_context.next = 2;
|
|
27
|
+
return fetch(imageSrc);
|
|
28
|
+
case 2:
|
|
29
|
+
image = _context.sent;
|
|
30
|
+
_context.next = 5;
|
|
31
|
+
return image.blob();
|
|
32
|
+
case 5:
|
|
33
|
+
imageBlog = _context.sent;
|
|
34
|
+
return _context.abrupt("return", URL.createObjectURL(imageBlog));
|
|
35
|
+
case 7:
|
|
36
|
+
case "end":
|
|
37
|
+
return _context.stop();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}, _callee);
|
|
41
|
+
}));
|
|
42
|
+
return _getBlobURL.apply(this, arguments);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=blobHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blobHandler.js","names":["getBlobURL","_x","_getBlobURL","apply","arguments","_asyncToGenerator","regeneratorRuntime","mark","_callee","imageSrc","image","imageBlog","wrap","_callee$","_context","prev","next","fetch","sent","blob","abrupt","URL","createObjectURL","stop"],"sources":["src/utils/blobHandler.ts"],"sourcesContent":["export async function getBlobURL(imageSrc: string) {\n const image = await fetch(imageSrc);\n const imageBlog = await image.blob();\n return URL.createObjectURL(imageBlog);\n}\n"],"mappings":";;;;;;;;;;;;;;;SAAsBA,UAAUA,CAAAC,EAAA;EAAA,OAAAC,WAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,YAAA;EAAAA,WAAA,GAAAG,iBAAA,eAAAC,kBAAA,CAAAC,IAAA,CAAzB,SAAAC,QAA0BC,QAAgB;IAAA,IAAAC,KAAA,EAAAC,SAAA;IAAA,OAAAL,kBAAA,CAAAM,IAAA,UAAAC,SAAAC,QAAA;MAAA;QAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OAC3BC,KAAK,CAACR,QAAQ,CAAC;UAAA;YAA7BC,KAAK,GAAAI,QAAA,CAAAI,IAAA;YAAAJ,QAAA,CAAAE,IAAA;YAAA,OACaN,KAAK,CAACS,IAAI,CAAC,CAAC;UAAA;YAA9BR,SAAS,GAAAG,QAAA,CAAAI,IAAA;YAAA,OAAAJ,QAAA,CAAAM,MAAA,WACRC,GAAG,CAACC,eAAe,CAACX,SAAS,CAAC;UAAA;UAAA;YAAA,OAAAG,QAAA,CAAAS,IAAA;QAAA;MAAA;IAAA,GAAAf,OAAA;EAAA,CACtC;EAAA,OAAAN,WAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.to-string");
|
|
4
|
+
require("core-js/modules/es.promise");
|
|
5
|
+
require("core-js/modules/es.promise.finally");
|
|
6
|
+
Object.defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
exports.downloadFileWithIframe = exports.downloadFile = void 0;
|
|
10
|
+
var _isSafari = require("./isSafari");
|
|
11
|
+
var _sleep = require("./sleep");
|
|
12
|
+
function appendAndClickDownloadLink(target, _ref) {
|
|
13
|
+
var href = _ref.href,
|
|
14
|
+
download = _ref.download;
|
|
15
|
+
var link = target.document.createElement('a');
|
|
16
|
+
link.href = href;
|
|
17
|
+
// that custom file name only support with same site origin
|
|
18
|
+
link.download = download;
|
|
19
|
+
target.document.body.appendChild(link); // required for firefox
|
|
20
|
+
|
|
21
|
+
link.dispatchEvent(new MouseEvent('click', {
|
|
22
|
+
bubbles: false
|
|
23
|
+
}));
|
|
24
|
+
return link;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* create browser download event
|
|
29
|
+
*
|
|
30
|
+
* ! Safari not support download a href, always open by window.open _self
|
|
31
|
+
*/
|
|
32
|
+
var downloadFile = function downloadFile(url, filename) {
|
|
33
|
+
if ((0, _isSafari.isSafari)()) {
|
|
34
|
+
return global.window.open(url, '_self');
|
|
35
|
+
}
|
|
36
|
+
var link = appendAndClickDownloadLink(global.window, {
|
|
37
|
+
href: url,
|
|
38
|
+
download: filename
|
|
39
|
+
});
|
|
40
|
+
link.remove();
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* with iframe mechanism
|
|
45
|
+
* let you download multiple files in one browser tab.
|
|
46
|
+
*
|
|
47
|
+
* ! Safari not support download a href, always open by window.open _self
|
|
48
|
+
*/
|
|
49
|
+
exports.downloadFile = downloadFile;
|
|
50
|
+
var downloadFileWithIframe = function downloadFileWithIframe(url, filename) {
|
|
51
|
+
var serverResponseTime = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 20 * 1000;
|
|
52
|
+
if ((0, _isSafari.isSafari)()) {
|
|
53
|
+
return global.window.open(url, '_self');
|
|
54
|
+
}
|
|
55
|
+
var iframe = document.createElement('iframe');
|
|
56
|
+
iframe.style.display = 'none';
|
|
57
|
+
document.body.appendChild(iframe);
|
|
58
|
+
iframe.addEventListener('load', function () {
|
|
59
|
+
appendAndClickDownloadLink(iframe.contentWindow, {
|
|
60
|
+
href: url,
|
|
61
|
+
download: filename
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
iframe.src = 'about:blank';
|
|
65
|
+
|
|
66
|
+
// TODO: there is an only way to remove that download iframe, but need backend support
|
|
67
|
+
// https://stackoverflow.com/a/4168965/7720164
|
|
68
|
+
// remove that download iframe after 20s,
|
|
69
|
+
// that download event will be keep in main tab.
|
|
70
|
+
// sever response download stream event inside 20s can make this download work.
|
|
71
|
+
|
|
72
|
+
// const id = encodeURIComponent(url);
|
|
73
|
+
// const prevIframe = document.getElementById(id);
|
|
74
|
+
|
|
75
|
+
// if (prevIframe) {
|
|
76
|
+
// // eslint-disable-next-line no-console
|
|
77
|
+
// console.log('continue previous download event');
|
|
78
|
+
// // continue previous download event
|
|
79
|
+
// return;
|
|
80
|
+
// }
|
|
81
|
+
// iframe.id = id;
|
|
82
|
+
|
|
83
|
+
var sleepPromise;
|
|
84
|
+
try {
|
|
85
|
+
sleepPromise = (0, _sleep.sleep)(serverResponseTime);
|
|
86
|
+
sleepPromise["finally"](function () {
|
|
87
|
+
iframe.remove();
|
|
88
|
+
});
|
|
89
|
+
} catch (error) {
|
|
90
|
+
//
|
|
91
|
+
}
|
|
92
|
+
return sleepPromise;
|
|
93
|
+
};
|
|
94
|
+
exports.downloadFileWithIframe = downloadFileWithIframe;
|
|
95
|
+
//# sourceMappingURL=downloadFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"downloadFile.js","names":["_isSafari","require","_sleep","appendAndClickDownloadLink","target","_ref","href","download","link","document","createElement","body","appendChild","dispatchEvent","MouseEvent","bubbles","downloadFile","url","filename","isSafari","global","window","open","remove","exports","downloadFileWithIframe","serverResponseTime","arguments","length","undefined","iframe","style","display","addEventListener","contentWindow","src","sleepPromise","sleep","error"],"sources":["src/utils/downloadFile.ts"],"sourcesContent":["import { isSafari } from './isSafari';\nimport { sleep, SleepPromise } from './sleep';\n\ntype DownloadLinkOptions = {\n href: string;\n download: string;\n};\n\nfunction appendAndClickDownloadLink(\n target: Window,\n { href, download }: DownloadLinkOptions,\n) {\n const link = target.document.createElement('a');\n link.href = href;\n // that custom file name only support with same site origin\n link.download = download;\n\n target.document.body.appendChild(link); // required for firefox\n\n link.dispatchEvent(new MouseEvent('click', { bubbles: false }));\n\n return link;\n}\n\n/**\n * create browser download event\n *\n * ! Safari not support download a href, always open by window.open _self\n */\nexport const downloadFile = (url: string, filename: string) => {\n if (isSafari()) {\n return global.window.open(url, '_self');\n }\n\n const link = appendAndClickDownloadLink(global.window, {\n href: url,\n download: filename,\n });\n\n link.remove();\n};\n\n/**\n * with iframe mechanism\n * let you download multiple files in one browser tab.\n *\n * ! Safari not support download a href, always open by window.open _self\n */\nexport const downloadFileWithIframe = (\n url: string,\n filename: string,\n /**\n * server response time must in side this value\n *\n * if that server not start download stream in 20s, that event will be cancelled.\n *\n * @default 20000ms => 20s\n */\n serverResponseTime = 20 * 1000,\n) => {\n if (isSafari()) {\n return global.window.open(url, '_self');\n }\n\n const iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n\n document.body.appendChild(iframe);\n\n iframe.addEventListener('load', () => {\n appendAndClickDownloadLink(iframe.contentWindow!, {\n href: url,\n download: filename,\n });\n });\n\n iframe.src = 'about:blank';\n\n // TODO: there is an only way to remove that download iframe, but need backend support\n // https://stackoverflow.com/a/4168965/7720164\n // remove that download iframe after 20s,\n // that download event will be keep in main tab.\n // sever response download stream event inside 20s can make this download work.\n\n // const id = encodeURIComponent(url);\n // const prevIframe = document.getElementById(id);\n\n // if (prevIframe) {\n // // eslint-disable-next-line no-console\n // console.log('continue previous download event');\n // // continue previous download event\n // return;\n // }\n // iframe.id = id;\n\n let sleepPromise!: SleepPromise;\n\n try {\n sleepPromise = sleep(serverResponseTime);\n\n sleepPromise.finally(() => {\n iframe.remove();\n });\n } catch (error) {\n //\n }\n\n return sleepPromise;\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAOA,SAASE,0BAA0BA,CACjCC,MAAc,EAAAC,IAAA,EAEd;EAAA,IADEC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;EAEhB,IAAMC,IAAI,GAAGJ,MAAM,CAACK,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC;EAC/CF,IAAI,CAACF,IAAI,GAAGA,IAAI;EAChB;EACAE,IAAI,CAACD,QAAQ,GAAGA,QAAQ;EAExBH,MAAM,CAACK,QAAQ,CAACE,IAAI,CAACC,WAAW,CAACJ,IAAI,CAAC,CAAC,CAAC;;EAExCA,IAAI,CAACK,aAAa,CAAC,IAAIC,UAAU,CAAC,OAAO,EAAE;IAAEC,OAAO,EAAE;EAAM,CAAC,CAAC,CAAC;EAE/D,OAAOP,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMQ,YAAY,GAAG,SAAfA,YAAYA,CAAIC,GAAW,EAAEC,QAAgB,EAAK;EAC7D,IAAI,IAAAC,kBAAQ,EAAC,CAAC,EAAE;IACd,OAAOC,MAAM,CAACC,MAAM,CAACC,IAAI,CAACL,GAAG,EAAE,OAAO,CAAC;EACzC;EAEA,IAAMT,IAAI,GAAGL,0BAA0B,CAACiB,MAAM,CAACC,MAAM,EAAE;IACrDf,IAAI,EAAEW,GAAG;IACTV,QAAQ,EAAEW;EACZ,CAAC,CAAC;EAEFV,IAAI,CAACe,MAAM,CAAC,CAAC;AACf,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALAC,OAAA,CAAAR,YAAA,GAAAA,YAAA;AAMO,IAAMS,sBAAsB,GAAG,SAAzBA,sBAAsBA,CACjCR,GAAW,EACXC,QAAgB,EASb;EAAA,IADHQ,kBAAkB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE,GAAG,IAAI;EAE9B,IAAI,IAAAR,kBAAQ,EAAC,CAAC,EAAE;IACd,OAAOC,MAAM,CAACC,MAAM,CAACC,IAAI,CAACL,GAAG,EAAE,OAAO,CAAC;EACzC;EAEA,IAAMa,MAAM,GAAGrB,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;EAC/CoB,MAAM,CAACC,KAAK,CAACC,OAAO,GAAG,MAAM;EAE7BvB,QAAQ,CAACE,IAAI,CAACC,WAAW,CAACkB,MAAM,CAAC;EAEjCA,MAAM,CAACG,gBAAgB,CAAC,MAAM,EAAE,YAAM;IACpC9B,0BAA0B,CAAC2B,MAAM,CAACI,aAAa,EAAG;MAChD5B,IAAI,EAAEW,GAAG;MACTV,QAAQ,EAAEW;IACZ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFY,MAAM,CAACK,GAAG,GAAG,aAAa;;EAE1B;EACA;EACA;EACA;EACA;;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,IAAIC,YAA2B;EAE/B,IAAI;IACFA,YAAY,GAAG,IAAAC,YAAK,EAACX,kBAAkB,CAAC;IAExCU,YAAY,WAAQ,CAAC,YAAM;MACzBN,MAAM,CAACP,MAAM,CAAC,CAAC;IACjB,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOe,KAAK,EAAE;IACd;EAAA;EAGF,OAAOF,YAAY;AACrB,CAAC;AAACZ,OAAA,CAAAC,sBAAA,GAAAA,sBAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.freeze");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.emptyObject = exports.emptyFn = exports.emptyArray = void 0;
|
|
8
|
+
var emptyFn = function emptyFn() {
|
|
9
|
+
//
|
|
10
|
+
};
|
|
11
|
+
exports.emptyFn = emptyFn;
|
|
12
|
+
var emptyArray = Object.freeze([]);
|
|
13
|
+
exports.emptyArray = emptyArray;
|
|
14
|
+
var emptyObject = Object.freeze({});
|
|
15
|
+
exports.emptyObject = emptyObject;
|
|
16
|
+
//# sourceMappingURL=empty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty.js","names":["emptyFn","exports","emptyArray","Object","freeze","emptyObject"],"sources":["src/utils/empty.ts"],"sourcesContent":["export const emptyFn = () => {\n //\n};\nexport const emptyArray = Object.freeze([]);\nexport const emptyObject = Object.freeze({});\n"],"mappings":";;;;;;;AAAO,IAAMA,OAAO,GAAG,SAAVA,OAAOA,CAAA,EAAS;EAC3B;AAAA,CACD;AAACC,OAAA,CAAAD,OAAA,GAAAA,OAAA;AACK,IAAME,UAAU,GAAGC,MAAM,CAACC,MAAM,CAAC,EAAE,CAAC;AAACH,OAAA,CAAAC,UAAA,GAAAA,UAAA;AACrC,IAAMG,WAAW,GAAGF,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC;AAACH,OAAA,CAAAI,WAAA,GAAAA,WAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.EXTENSION_TO_CONTENT_TYPE = exports.CONTENT_TYPE_TO_EXTENSION = void 0;
|
|
7
|
+
var _invertObj = require("../invertObj");
|
|
8
|
+
// project/phone/core/rc_item_common/src/utils/RCItemUtils.ts:153
|
|
9
|
+
var CONTENT_TYPE_TO_EXTENSION = {
|
|
10
|
+
'text/vcard': 'vcf',
|
|
11
|
+
'image/tiff': 'tif',
|
|
12
|
+
'image/jpeg': 'jpg',
|
|
13
|
+
'x-ms-wmv': 'wmv',
|
|
14
|
+
'x-flv': 'flv',
|
|
15
|
+
'audio/mpeg': 'mp3',
|
|
16
|
+
'video/mpeg': 'mpeg',
|
|
17
|
+
'video/mp4': 'mp4',
|
|
18
|
+
'text/plain': 'txt',
|
|
19
|
+
'text/html': 'html',
|
|
20
|
+
'image/svg+xml': 'svg',
|
|
21
|
+
'image/png': 'png',
|
|
22
|
+
'image/gif': 'gif',
|
|
23
|
+
'image/bmp': 'bmp',
|
|
24
|
+
'application/gzip': 'gz',
|
|
25
|
+
'audio/mp4': 'm4a',
|
|
26
|
+
'audio/amr': 'amr',
|
|
27
|
+
'application/rtf': 'rtf',
|
|
28
|
+
'application/zip': 'zip',
|
|
29
|
+
'video/x-msvideo': 'avi',
|
|
30
|
+
'video/msvideo': 'msvideo',
|
|
31
|
+
'video/x-flv': 'flv',
|
|
32
|
+
'video/quicktime': 'mov'
|
|
33
|
+
};
|
|
34
|
+
exports.CONTENT_TYPE_TO_EXTENSION = CONTENT_TYPE_TO_EXTENSION;
|
|
35
|
+
var EXTENSION_TO_CONTENT_TYPE = (0, _invertObj.invertObj)(CONTENT_TYPE_TO_EXTENSION);
|
|
36
|
+
exports.EXTENSION_TO_CONTENT_TYPE = EXTENSION_TO_CONTENT_TYPE;
|
|
37
|
+
//# sourceMappingURL=constant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constant.js","names":["_invertObj","require","CONTENT_TYPE_TO_EXTENSION","exports","EXTENSION_TO_CONTENT_TYPE","invertObj"],"sources":["src/utils/fileHandler/constant.ts"],"sourcesContent":["import { invertObj } from '../invertObj';\n\n// project/phone/core/rc_item_common/src/utils/RCItemUtils.ts:153\nexport const CONTENT_TYPE_TO_EXTENSION = {\n 'text/vcard': 'vcf',\n 'image/tiff': 'tif',\n 'image/jpeg': 'jpg',\n 'x-ms-wmv': 'wmv',\n 'x-flv': 'flv',\n 'audio/mpeg': 'mp3',\n 'video/mpeg': 'mpeg',\n 'video/mp4': 'mp4',\n 'text/plain': 'txt',\n 'text/html': 'html',\n 'image/svg+xml': 'svg',\n 'image/png': 'png',\n 'image/gif': 'gif',\n 'image/bmp': 'bmp',\n 'application/gzip': 'gz',\n 'audio/mp4': 'm4a',\n 'audio/amr': 'amr',\n 'application/rtf': 'rtf',\n 'application/zip': 'zip',\n 'video/x-msvideo': 'avi',\n 'video/msvideo': 'msvideo',\n 'video/x-flv': 'flv',\n 'video/quicktime': 'mov',\n} as Record<string, string>;\n\nexport const EXTENSION_TO_CONTENT_TYPE = invertObj(CONTENT_TYPE_TO_EXTENSION);\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEA;AACO,IAAMC,yBAAyB,GAAG;EACvC,YAAY,EAAE,KAAK;EACnB,YAAY,EAAE,KAAK;EACnB,YAAY,EAAE,KAAK;EACnB,UAAU,EAAE,KAAK;EACjB,OAAO,EAAE,KAAK;EACd,YAAY,EAAE,KAAK;EACnB,YAAY,EAAE,MAAM;EACpB,WAAW,EAAE,KAAK;EAClB,YAAY,EAAE,KAAK;EACnB,WAAW,EAAE,MAAM;EACnB,eAAe,EAAE,KAAK;EACtB,WAAW,EAAE,KAAK;EAClB,WAAW,EAAE,KAAK;EAClB,WAAW,EAAE,KAAK;EAClB,kBAAkB,EAAE,IAAI;EACxB,WAAW,EAAE,KAAK;EAClB,WAAW,EAAE,KAAK;EAClB,iBAAiB,EAAE,KAAK;EACxB,iBAAiB,EAAE,KAAK;EACxB,iBAAiB,EAAE,KAAK;EACxB,eAAe,EAAE,SAAS;EAC1B,aAAa,EAAE,KAAK;EACpB,iBAAiB,EAAE;AACrB,CAA2B;AAACC,OAAA,CAAAD,yBAAA,GAAAA,yBAAA;AAErB,IAAME,yBAAyB,GAAG,IAAAC,oBAAS,EAACH,yBAAyB,CAAC;AAACC,OAAA,CAAAC,yBAAA,GAAAA,yBAAA"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.array.join");
|
|
4
|
+
require("core-js/modules/es.array.last-index-of");
|
|
5
|
+
require("core-js/modules/es.array.slice");
|
|
6
|
+
require("core-js/modules/es.regexp.exec");
|
|
7
|
+
require("core-js/modules/es.string.split");
|
|
8
|
+
Object.defineProperty(exports, "__esModule", {
|
|
9
|
+
value: true
|
|
10
|
+
});
|
|
11
|
+
exports.getFileExtensionFromContentType = exports.getFileExtension = exports.getFileContentTypeFromExtension = void 0;
|
|
12
|
+
exports.getFilename = getFilename;
|
|
13
|
+
exports.removeExtension = void 0;
|
|
14
|
+
var _constant = require("./constant");
|
|
15
|
+
/**
|
|
16
|
+
* get file name with extension.
|
|
17
|
+
*/
|
|
18
|
+
function getFilename(fullPath) {
|
|
19
|
+
return fullPath.substring(fullPath.lastIndexOf('/') + 1);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* remove file path extension.
|
|
24
|
+
*/
|
|
25
|
+
var removeExtension = function removeExtension(str) {
|
|
26
|
+
return str.split('.').slice(0, -1).join('.');
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* get file extension.
|
|
31
|
+
*/
|
|
32
|
+
exports.removeExtension = removeExtension;
|
|
33
|
+
var getFileExtension = function getFileExtension(fileName) {
|
|
34
|
+
var splitArrays = fileName.toLowerCase().split('.');
|
|
35
|
+
return splitArrays.length > 1 ? splitArrays.pop() : '';
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* get file extension from content type
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* console.log(getFileExtensionFromContentType('image/gif')) // gif
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
exports.getFileExtension = getFileExtension;
|
|
47
|
+
var getFileExtensionFromContentType = function getFileExtensionFromContentType(contentType) {
|
|
48
|
+
var _CONTENT_TYPE_TO_EXTE;
|
|
49
|
+
return contentType ? (_CONTENT_TYPE_TO_EXTE = _constant.CONTENT_TYPE_TO_EXTENSION[contentType.toLowerCase()]) !== null && _CONTENT_TYPE_TO_EXTE !== void 0 ? _CONTENT_TYPE_TO_EXTE : contentType.split('/')[1] : undefined;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* get content type from file extension
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts
|
|
57
|
+
* console.log(getFileContentTypeFromExtension('gif')) // image/gif
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
exports.getFileExtensionFromContentType = getFileExtensionFromContentType;
|
|
61
|
+
var getFileContentTypeFromExtension = function getFileContentTypeFromExtension(extensionName) {
|
|
62
|
+
return extensionName ? _constant.EXTENSION_TO_CONTENT_TYPE[extensionName.toLowerCase()] : undefined;
|
|
63
|
+
};
|
|
64
|
+
exports.getFileContentTypeFromExtension = getFileContentTypeFromExtension;
|
|
65
|
+
//# sourceMappingURL=fileHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileHandler.js","names":["_constant","require","getFilename","fullPath","substring","lastIndexOf","removeExtension","str","split","slice","join","exports","getFileExtension","fileName","splitArrays","toLowerCase","length","pop","getFileExtensionFromContentType","contentType","_CONTENT_TYPE_TO_EXTE","CONTENT_TYPE_TO_EXTENSION","undefined","getFileContentTypeFromExtension","extensionName","EXTENSION_TO_CONTENT_TYPE"],"sources":["src/utils/fileHandler/fileHandler.ts"],"sourcesContent":["import {\n CONTENT_TYPE_TO_EXTENSION,\n EXTENSION_TO_CONTENT_TYPE,\n} from './constant';\n\n/**\n * get file name with extension.\n */\nexport function getFilename(fullPath: string) {\n return fullPath.substring(fullPath.lastIndexOf('/') + 1);\n}\n\n/**\n * remove file path extension.\n */\nexport const removeExtension = (str: string) => {\n return str.split('.').slice(0, -1).join('.');\n};\n\n/**\n * get file extension.\n */\nexport const getFileExtension = (fileName: string) => {\n const splitArrays = fileName.toLowerCase().split('.');\n return splitArrays.length > 1 ? splitArrays.pop()! : '';\n};\n\n/**\n * get file extension from content type\n *\n * @example\n * ```ts\n * console.log(getFileExtensionFromContentType('image/gif')) // gif\n * ```\n */\nexport const getFileExtensionFromContentType = (contentType?: string) => {\n return contentType\n ? CONTENT_TYPE_TO_EXTENSION[contentType.toLowerCase()] ??\n contentType.split('/')[1]\n : undefined;\n};\n\n/**\n * get content type from file extension\n *\n * @example\n * ```ts\n * console.log(getFileContentTypeFromExtension('gif')) // image/gif\n * ```\n */\nexport const getFileContentTypeFromExtension = (extensionName?: string) => {\n return extensionName\n ? EXTENSION_TO_CONTENT_TYPE[extensionName.toLowerCase()]\n : undefined;\n};\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAKA;AACA;AACA;AACO,SAASC,WAAWA,CAACC,QAAgB,EAAE;EAC5C,OAAOA,QAAQ,CAACC,SAAS,CAACD,QAAQ,CAACE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1D;;AAEA;AACA;AACA;AACO,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,GAAW,EAAK;EAC9C,OAAOA,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;AAC9C,CAAC;;AAED;AACA;AACA;AAFAC,OAAA,CAAAL,eAAA,GAAAA,eAAA;AAGO,IAAMM,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,QAAgB,EAAK;EACpD,IAAMC,WAAW,GAAGD,QAAQ,CAACE,WAAW,CAAC,CAAC,CAACP,KAAK,CAAC,GAAG,CAAC;EACrD,OAAOM,WAAW,CAACE,MAAM,GAAG,CAAC,GAAGF,WAAW,CAACG,GAAG,CAAC,CAAC,GAAI,EAAE;AACzD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPAN,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAQO,IAAMM,+BAA+B,GAAG,SAAlCA,+BAA+BA,CAAIC,WAAoB,EAAK;EAAA,IAAAC,qBAAA;EACvE,OAAOD,WAAW,IAAAC,qBAAA,GACdC,mCAAyB,CAACF,WAAW,CAACJ,WAAW,CAAC,CAAC,CAAC,cAAAK,qBAAA,cAAAA,qBAAA,GAClDD,WAAW,CAACX,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAC3Bc,SAAS;AACf,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPAX,OAAA,CAAAO,+BAAA,GAAAA,+BAAA;AAQO,IAAMK,+BAA+B,GAAG,SAAlCA,+BAA+BA,CAAIC,aAAsB,EAAK;EACzE,OAAOA,aAAa,GAChBC,mCAAyB,CAACD,aAAa,CAACT,WAAW,CAAC,CAAC,CAAC,GACtDO,SAAS;AACf,CAAC;AAACX,OAAA,CAAAY,+BAAA,GAAAA,+BAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _fileHandler = require("./fileHandler");
|
|
7
|
+
Object.keys(_fileHandler).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _fileHandler[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _fileHandler[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_fileHandler","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["src/utils/fileHandler/index.ts"],"sourcesContent":["export * from './fileHandler';\n"],"mappings":";;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,YAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,YAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,YAAA,CAAAK,GAAA;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "format", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _stringTemplate["default"];
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _stringTemplate = _interopRequireDefault(require("string-template"));
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
14
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","names":["_stringTemplate","_interopRequireDefault","require","obj","__esModule"],"sources":["src/utils/format.ts"],"sourcesContent":["import format from 'string-template';\n\nexport { format };\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAqC,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
require("core-js/modules/es.array.concat");
|
|
5
|
+
require("core-js/modules/es.array.for-each");
|
|
6
|
+
require("core-js/modules/es.array.is-array");
|
|
7
|
+
require("core-js/modules/es.array.slice");
|
|
8
|
+
require("core-js/modules/es.array.some");
|
|
9
|
+
require("core-js/modules/es.function.bind");
|
|
10
|
+
require("core-js/modules/es.function.name");
|
|
11
|
+
require("core-js/modules/es.object.get-prototype-of");
|
|
12
|
+
require("core-js/modules/es.object.keys");
|
|
13
|
+
require("core-js/modules/es.object.set-prototype-of");
|
|
14
|
+
require("core-js/modules/web.dom-collections.for-each");
|
|
15
|
+
Object.defineProperty(exports, "__esModule", {
|
|
16
|
+
value: true
|
|
17
|
+
});
|
|
18
|
+
exports.getTranslateFn = void 0;
|
|
19
|
+
var _i18n = require("@ringcentral-integration/i18n");
|
|
20
|
+
var _format = require("./format");
|
|
21
|
+
function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }
|
|
22
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
23
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
24
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
25
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
26
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
27
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
28
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
29
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
30
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
31
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
32
|
+
function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }
|
|
33
|
+
function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }
|
|
34
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
35
|
+
function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; }
|
|
36
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
37
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } /* eslint-disable @typescript-eslint/no-explicit-any */
|
|
38
|
+
// TODO: that second object can be inject from string-template
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* provide method to work translate and format string
|
|
42
|
+
*/
|
|
43
|
+
var getTranslateFn = function getTranslateFn() {
|
|
44
|
+
for (var _len = arguments.length, i18nInput = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
45
|
+
i18nInput[_key] = arguments[_key];
|
|
46
|
+
}
|
|
47
|
+
var i18nInstances = Array.isArray(i18nInput) ? i18nInput : [i18nInput];
|
|
48
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
49
|
+
var TranslateError = /*#__PURE__*/function (_Error) {
|
|
50
|
+
_inherits(TranslateError, _Error);
|
|
51
|
+
var _super = _createSuper(TranslateError);
|
|
52
|
+
function TranslateError(message) {
|
|
53
|
+
var _this;
|
|
54
|
+
_classCallCheck(this, TranslateError);
|
|
55
|
+
_this = _super.call(this, message);
|
|
56
|
+
_this.name = 'TranslateError';
|
|
57
|
+
return _this;
|
|
58
|
+
}
|
|
59
|
+
return TranslateError;
|
|
60
|
+
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
|
61
|
+
if (i18nInstances.length > 1) {
|
|
62
|
+
var _i18nInstances = _toArray(i18nInstances),
|
|
63
|
+
firstI18n = _i18nInstances[0],
|
|
64
|
+
rest = _i18nInstances.slice(1);
|
|
65
|
+
rest.forEach(function (nextI18n) {
|
|
66
|
+
Object.keys(firstI18n._cache[_i18n.RUNTIME.defaultLocale] || {}).forEach(function (key) {
|
|
67
|
+
if (Object.prototype.hasOwnProperty.call(nextI18n._cache[_i18n.RUNTIME.defaultLocale], key)) {
|
|
68
|
+
// eslint-disable-next-line no-console
|
|
69
|
+
console.warn(new TranslateError("[i18n] i18n files has duplicated key \"".concat(key, "\"")), {
|
|
70
|
+
duplicatedKey: key,
|
|
71
|
+
i18nInstances: i18nInstances
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return function (key) {
|
|
79
|
+
var i18nString = key;
|
|
80
|
+
i18nInstances.some(function (i18nInstance) {
|
|
81
|
+
var result = i18nInstance.getString(key);
|
|
82
|
+
if (result !== key) {
|
|
83
|
+
i18nString = result;
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
return false;
|
|
87
|
+
});
|
|
88
|
+
for (var _len2 = arguments.length, options = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
89
|
+
options[_key2 - 1] = arguments[_key2];
|
|
90
|
+
}
|
|
91
|
+
if (options.length > 0) {
|
|
92
|
+
return _format.format.apply(void 0, [i18nString].concat(options));
|
|
93
|
+
}
|
|
94
|
+
return i18nString;
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
exports.getTranslateFn = getTranslateFn;
|
|
98
|
+
//# sourceMappingURL=getTranslateFn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTranslateFn.js","names":["_i18n","require","_format","_toArray","arr","_arrayWithHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","i","arr2","iter","Symbol","iterator","isArray","_classCallCheck","instance","Constructor","_inherits","subClass","superClass","create","value","writable","configurable","defineProperty","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","arguments","apply","_possibleConstructorReturn","self","_typeof","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","Map","undefined","_isNativeFunction","has","get","set","Wrapper","_construct","enumerable","Parent","args","bind","a","push","Function","sham","Proxy","Boolean","valueOf","e","fn","indexOf","p","setPrototypeOf","__proto__","getPrototypeOf","getTranslateFn","_len","i18nInput","_key","i18nInstances","process","env","NODE_ENV","TranslateError","_Error","_super","message","_this","Error","_i18nInstances","firstI18n","rest","forEach","nextI18n","keys","RUNTIME","defaultLocale","key","hasOwnProperty","console","warn","concat","duplicatedKey","i18nString","some","i18nInstance","getString","_len2","options","_key2","format","exports"],"sources":["src/utils/getTranslateFn.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type I18n from '@ringcentral-integration/i18n';\nimport type { GetI18nKey } from '@ringcentral-integration/i18n';\nimport { RUNTIME } from '@ringcentral-integration/i18n';\n\nimport { format } from './format';\n\n// TODO: that second object can be inject from string-template\n\nexport interface Format<T> {\n /**\n * i18n method `t`\n * Format using an object hash with keys matching [0-9a-zA-Z]+\n *\n * ```ts\n * showMessageWithSlot => '{hello} Show message'\n *\n * const message2 = t('showMessageWithSlot', { hello: 'Hello world' }); // => 'Hello world Show message'\n * ```\n */\n (string: T, object: any): string;\n /**\n * i18n method `t`\n * Format using a number indexed array\n *\n * ```ts\n * showMessageWithArraySlot => '{0} Show message {1}'\n *\n * const message3 = t('showMessageWithArraySlot', [1, 2]); // => '1 Show message 2'\n * ```\n */\n (string: T, array: Array<any>): string;\n /**\n * i18n method `t`\n * Format using optional arguments\n *\n * ```ts\n * showMessageWithArraySlot => '{0} Show message {1}'\n *\n * const message4 = t('showMessageWithArraySlot', 1, 2); // => '1 Show message 2'\n * ```\n */\n (string: T, ...array: Array<any>): string;\n /**\n * i18n method `t`\n * Escape {} pairs by using double {{}}\n *\n * ```ts\n * showMessage => 'Show message'\n * showMessageWithSlot => '{hello} Show message'\n * showMessageWithArraySlot => '{0} Show message {1}'\n *\n * const message1 = t('showMessage'); // => 'Show message'\n * const message2 = t('showMessageWithSlot', { hello: 'Hello world' }); // => 'Hello world Show message'\n * const message3 = t('showMessageWithArraySlot', [1, 2]); // => '1 Show message 2'\n * const message4 = t('showMessageWithArraySlot', 1, 2); // => '1 Show message 2'\n * ```\n */\n (string: T): string;\n}\n/**\n * provide method to work translate and format string\n */\nexport const getTranslateFn = <\n T extends I18n[],\n K = GetI18nKey<T extends I18n[] ? T[number] : T>,\n>(\n ...i18nInput: T\n): Format<K> => {\n const i18nInstances = Array.isArray(i18nInput) ? i18nInput : [i18nInput];\n\n if (process.env.NODE_ENV !== 'production') {\n class TranslateError extends Error {\n constructor(message: string, ...rest: any[]) {\n super(message);\n this.name = 'TranslateError';\n }\n }\n\n if (i18nInstances.length > 1) {\n const [firstI18n, ...rest] = i18nInstances;\n\n rest.forEach((nextI18n) => {\n Object.keys(firstI18n._cache[RUNTIME.defaultLocale] || {}).forEach(\n (key) => {\n if (\n Object.prototype.hasOwnProperty.call(\n nextI18n._cache[RUNTIME.defaultLocale],\n key,\n )\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n new TranslateError(\n `[i18n] i18n files has duplicated key \"${key}\"`,\n ),\n {\n duplicatedKey: key,\n i18nInstances,\n },\n );\n }\n },\n );\n });\n }\n }\n\n return (key: K, ...options: any[]) => {\n let i18nString = key as string;\n\n i18nInstances.some((i18nInstance) => {\n const result = i18nInstance.getString(key as any);\n if (result !== key) {\n i18nString = result;\n\n return true;\n }\n\n return false;\n });\n\n if (options.length > 0) {\n return format(i18nString, ...options);\n }\n return i18nString;\n };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAAkC,SAAAE,SAAAC,GAAA,WAAAC,eAAA,CAAAD,GAAA,KAAAE,gBAAA,CAAAF,GAAA,KAAAG,2BAAA,CAAAH,GAAA,KAAAI,gBAAA;AAAA,SAAAA,iBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAG,CAAA,EAAAC,MAAA,SAAAD,CAAA,qBAAAA,CAAA,sBAAAE,iBAAA,CAAAF,CAAA,EAAAC,MAAA,OAAAE,CAAA,GAAAC,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAC,IAAA,CAAAP,CAAA,EAAAQ,KAAA,aAAAL,CAAA,iBAAAH,CAAA,CAAAS,WAAA,EAAAN,CAAA,GAAAH,CAAA,CAAAS,WAAA,CAAAC,IAAA,MAAAP,CAAA,cAAAA,CAAA,mBAAAQ,KAAA,CAAAC,IAAA,CAAAZ,CAAA,OAAAG,CAAA,+DAAAU,IAAA,CAAAV,CAAA,UAAAD,iBAAA,CAAAF,CAAA,EAAAC,MAAA;AAAA,SAAAC,kBAAAR,GAAA,EAAAoB,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAApB,GAAA,CAAAqB,MAAA,EAAAD,GAAA,GAAApB,GAAA,CAAAqB,MAAA,WAAAC,CAAA,MAAAC,IAAA,OAAAN,KAAA,CAAAG,GAAA,GAAAE,CAAA,GAAAF,GAAA,EAAAE,CAAA,MAAAC,IAAA,CAAAD,CAAA,IAAAtB,GAAA,CAAAsB,CAAA,YAAAC,IAAA;AAAA,SAAArB,iBAAAsB,IAAA,eAAAC,MAAA,oBAAAD,IAAA,CAAAC,MAAA,CAAAC,QAAA,aAAAF,IAAA,+BAAAP,KAAA,CAAAC,IAAA,CAAAM,IAAA;AAAA,SAAAvB,gBAAAD,GAAA,QAAAiB,KAAA,CAAAU,OAAA,CAAA3B,GAAA,UAAAA,GAAA;AAAA,SAAA4B,gBAAAC,QAAA,EAAAC,WAAA,UAAAD,QAAA,YAAAC,WAAA,eAAAzB,SAAA;AAAA,SAAA0B,UAAAC,QAAA,EAAAC,UAAA,eAAAA,UAAA,mBAAAA,UAAA,uBAAA5B,SAAA,0DAAA2B,QAAA,CAAArB,SAAA,GAAAD,MAAA,CAAAwB,MAAA,CAAAD,UAAA,IAAAA,UAAA,CAAAtB,SAAA,IAAAI,WAAA,IAAAoB,KAAA,EAAAH,QAAA,EAAAI,QAAA,QAAAC,YAAA,aAAA3B,MAAA,CAAA4B,cAAA,CAAAN,QAAA,iBAAAI,QAAA,gBAAAH,UAAA,EAAAM,eAAA,CAAAP,QAAA,EAAAC,UAAA;AAAA,SAAAO,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,GAAAC,eAAA,CAAAL,OAAA,GAAAM,MAAA,MAAAL,yBAAA,QAAAM,SAAA,GAAAF,eAAA,OAAA/B,WAAA,EAAAgC,MAAA,GAAAE,OAAA,CAAAC,SAAA,CAAAL,KAAA,EAAAM,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAF,KAAA,CAAAO,KAAA,OAAAD,SAAA,YAAAE,0BAAA,OAAAN,MAAA;AAAA,SAAAM,2BAAAC,IAAA,EAAAzC,IAAA,QAAAA,IAAA,KAAA0C,OAAA,CAAA1C,IAAA,yBAAAA,IAAA,2BAAAA,IAAA,aAAAA,IAAA,yBAAAR,SAAA,uEAAAmD,sBAAA,CAAAF,IAAA;AAAA,SAAAE,uBAAAF,IAAA,QAAAA,IAAA,yBAAAG,cAAA,wEAAAH,IAAA;AAAA,SAAAI,iBAAAC,KAAA,QAAAC,MAAA,UAAAC,GAAA,sBAAAA,GAAA,KAAAC,SAAA,EAAAJ,gBAAA,YAAAA,iBAAAC,KAAA,QAAAA,KAAA,cAAAI,iBAAA,CAAAJ,KAAA,UAAAA,KAAA,aAAAA,KAAA,6BAAAtD,SAAA,qEAAAuD,MAAA,wBAAAA,MAAA,CAAAI,GAAA,CAAAL,KAAA,UAAAC,MAAA,CAAAK,GAAA,CAAAN,KAAA,GAAAC,MAAA,CAAAM,GAAA,CAAAP,KAAA,EAAAQ,OAAA,cAAAA,QAAA,WAAAC,UAAA,CAAAT,KAAA,EAAAR,SAAA,EAAAL,eAAA,OAAA/B,WAAA,KAAAoD,OAAA,CAAAxD,SAAA,GAAAD,MAAA,CAAAwB,MAAA,CAAAyB,KAAA,CAAAhD,SAAA,IAAAI,WAAA,IAAAoB,KAAA,EAAAgC,OAAA,EAAAE,UAAA,SAAAjC,QAAA,QAAAC,YAAA,oBAAAE,eAAA,CAAA4B,OAAA,EAAAR,KAAA,aAAAD,gBAAA,CAAAC,KAAA;AAAA,SAAAS,WAAAE,MAAA,EAAAC,IAAA,EAAAZ,KAAA,QAAAhB,yBAAA,MAAAyB,UAAA,GAAAnB,OAAA,CAAAC,SAAA,CAAAsB,IAAA,aAAAJ,UAAA,YAAAA,WAAAE,MAAA,EAAAC,IAAA,EAAAZ,KAAA,QAAAc,CAAA,WAAAA,CAAA,CAAAC,IAAA,CAAAtB,KAAA,CAAAqB,CAAA,EAAAF,IAAA,OAAAzC,WAAA,GAAA6C,QAAA,CAAAH,IAAA,CAAApB,KAAA,CAAAkB,MAAA,EAAAG,CAAA,OAAA5C,QAAA,OAAAC,WAAA,QAAA6B,KAAA,EAAApB,eAAA,CAAAV,QAAA,EAAA8B,KAAA,CAAAhD,SAAA,UAAAkB,QAAA,cAAAuC,UAAA,CAAAhB,KAAA,OAAAD,SAAA;AAAA,SAAAR,0BAAA,eAAAM,OAAA,qBAAAA,OAAA,CAAAC,SAAA,oBAAAD,OAAA,CAAAC,SAAA,CAAA0B,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAnE,SAAA,CAAAoE,OAAA,CAAAlE,IAAA,CAAAoC,OAAA,CAAAC,SAAA,CAAA4B,OAAA,8CAAAE,CAAA;AAAA,SAAAjB,kBAAAkB,EAAA,WAAAN,QAAA,CAAA/D,QAAA,CAAAC,IAAA,CAAAoE,EAAA,EAAAC,OAAA;AAAA,SAAA3C,gBAAAjC,CAAA,EAAA6E,CAAA,IAAA5C,eAAA,GAAA7B,MAAA,CAAA0E,cAAA,GAAA1E,MAAA,CAAA0E,cAAA,CAAAZ,IAAA,cAAAjC,gBAAAjC,CAAA,EAAA6E,CAAA,IAAA7E,CAAA,CAAA+E,SAAA,GAAAF,CAAA,SAAA7E,CAAA,YAAAiC,eAAA,CAAAjC,CAAA,EAAA6E,CAAA;AAAA,SAAArC,gBAAAxC,CAAA,IAAAwC,eAAA,GAAApC,MAAA,CAAA0E,cAAA,GAAA1E,MAAA,CAAA4E,cAAA,CAAAd,IAAA,cAAA1B,gBAAAxC,CAAA,WAAAA,CAAA,CAAA+E,SAAA,IAAA3E,MAAA,CAAA4E,cAAA,CAAAhF,CAAA,aAAAwC,eAAA,CAAAxC,CAAA,KALlC;AAOA;;AAqDA;AACA;AACA;AACO,IAAMiF,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAKX;EAAA,SAAAC,IAAA,GAAArC,SAAA,CAAA9B,MAAA,EADXoE,SAAS,OAAAxE,KAAA,CAAAuE,IAAA,GAAAE,IAAA,MAAAA,IAAA,GAAAF,IAAA,EAAAE,IAAA;IAATD,SAAS,CAAAC,IAAA,IAAAvC,SAAA,CAAAuC,IAAA;EAAA;EAEZ,IAAMC,aAAa,GAAG1E,KAAK,CAACU,OAAO,CAAC8D,SAAS,CAAC,GAAGA,SAAS,GAAG,CAACA,SAAS,CAAC;EAExE,IAAIG,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IAAA,IACnCC,cAAc,0BAAAC,MAAA;MAAAjE,SAAA,CAAAgE,cAAA,EAAAC,MAAA;MAAA,IAAAC,MAAA,GAAAzD,YAAA,CAAAuD,cAAA;MAClB,SAAAA,eAAYG,OAAe,EAAkB;QAAA,IAAAC,KAAA;QAAAvE,eAAA,OAAAmE,cAAA;QAC3CI,KAAA,GAAAF,MAAA,CAAApF,IAAA,OAAMqF,OAAO;QACbC,KAAA,CAAKnF,IAAI,GAAG,gBAAgB;QAAC,OAAAmF,KAAA;MAC/B;MAAC,OAAAJ,cAAA;IAAA,gBAAArC,gBAAA,CAJ0B0C,KAAK;IAOlC,IAAIT,aAAa,CAACtE,MAAM,GAAG,CAAC,EAAE;MAAA,IAAAgF,cAAA,GAAAtG,QAAA,CACC4F,aAAa;QAAnCW,SAAS,GAAAD,cAAA;QAAKE,IAAI,GAAAF,cAAA,CAAAvF,KAAA;MAEzByF,IAAI,CAACC,OAAO,CAAC,UAACC,QAAQ,EAAK;QACzB/F,MAAM,CAACgG,IAAI,CAACJ,SAAS,CAAC1C,MAAM,CAAC+C,aAAO,CAACC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAACJ,OAAO,CAChE,UAACK,GAAG,EAAK;UACP,IACEnG,MAAM,CAACC,SAAS,CAACmG,cAAc,CAACjG,IAAI,CAClC4F,QAAQ,CAAC7C,MAAM,CAAC+C,aAAO,CAACC,aAAa,CAAC,EACtCC,GACF,CAAC,EACD;YACA;YACAE,OAAO,CAACC,IAAI,CACV,IAAIjB,cAAc,2CAAAkB,MAAA,CACyBJ,GAAG,OAC9C,CAAC,EACD;cACEK,aAAa,EAAEL,GAAG;cAClBlB,aAAa,EAAbA;YACF,CACF,CAAC;UACH;QACF,CACF,CAAC;MACH,CAAC,CAAC;IACJ;EACF;EAEA,OAAO,UAACkB,GAAM,EAAwB;IACpC,IAAIM,UAAU,GAAGN,GAAa;IAE9BlB,aAAa,CAACyB,IAAI,CAAC,UAACC,YAAY,EAAK;MACnC,IAAMtE,MAAM,GAAGsE,YAAY,CAACC,SAAS,CAACT,GAAU,CAAC;MACjD,IAAI9D,MAAM,KAAK8D,GAAG,EAAE;QAClBM,UAAU,GAAGpE,MAAM;QAEnB,OAAO,IAAI;MACb;MAEA,OAAO,KAAK;IACd,CAAC,CAAC;IAAC,SAAAwE,KAAA,GAAApE,SAAA,CAAA9B,MAAA,EAZcmG,OAAO,OAAAvG,KAAA,CAAAsG,KAAA,OAAAA,KAAA,WAAAE,KAAA,MAAAA,KAAA,GAAAF,KAAA,EAAAE,KAAA;MAAPD,OAAO,CAAAC,KAAA,QAAAtE,SAAA,CAAAsE,KAAA;IAAA;IAcxB,IAAID,OAAO,CAACnG,MAAM,GAAG,CAAC,EAAE;MACtB,OAAOqG,cAAM,CAAAtE,KAAA,UAAC+D,UAAU,EAAAF,MAAA,CAAKO,OAAO,EAAC;IACvC;IACA,OAAOL,UAAU;EACnB,CAAC;AACH,CAAC;AAACQ,OAAA,CAAApC,cAAA,GAAAA,cAAA"}
|