@wener/utils 1.1.0 → 1.1.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/README.md +5 -3
- package/lib/cjs/arrays/MaybeArray.js +44 -27
- package/lib/cjs/arrays/index.js +17 -5
- package/lib/cjs/asyncs/AsyncInterval.js +31 -14
- package/lib/cjs/asyncs/LazyPromise.js +41 -24
- package/lib/cjs/asyncs/MaybePromise.js +15 -3
- package/lib/cjs/asyncs/generatorOfStream.js +32 -15
- package/lib/cjs/asyncs/index.js +23 -11
- package/lib/cjs/asyncs/isPromise.js +23 -6
- package/lib/cjs/asyncs/promiseOfCallback.js +34 -19
- package/lib/cjs/asyncs/sleep.js +22 -5
- package/lib/cjs/asyncs/timeout.js +40 -23
- package/lib/cjs/browsers/copy.js +65 -49
- package/lib/cjs/browsers/download.js +44 -32
- package/lib/cjs/browsers/getFileFromDataTransfer.js +44 -37
- package/lib/cjs/browsers/index.js +20 -8
- package/lib/cjs/browsers/loaders.js +48 -32
- package/lib/cjs/formats/formatBytes.js +34 -29
- package/lib/cjs/index.js +35 -15
- package/lib/cjs/io/index.js +17 -5
- package/lib/cjs/io/isBuffer.js +23 -10
- package/lib/cjs/isomorphics/getGlobalThis.js +31 -23
- package/lib/cjs/maths/index.js +17 -5
- package/lib/cjs/maths/random.js +33 -17
- package/lib/cjs/shim/urljoin.js +70 -0
- package/lib/cjs/shim/urljoin.test.js +4 -0
- package/lib/cjs/strings/camelCase.js +68 -65
- package/lib/cjs/strings/index.js +18 -7
- package/lib/cjs/strings/templates.js +25 -16
- package/lib/cjs/validations/asserts.js +25 -14
- package/lib/cjs/validations/index.js +20 -8
- package/lib/cjs/validations/isClass.js +23 -6
- package/lib/cjs/validations/isDefined.js +23 -6
- package/lib/cjs/validations/isEmptyObject.js +26 -9
- package/lib/esm/index.d.ts +2 -1
- package/lib/esm/index.js +5 -2
- package/lib/esm/shim/urljoin.d.ts +2 -0
- package/lib/esm/{strings → shim}/urljoin.js +3 -5
- package/lib/{cjs/strings → esm/shim}/urljoin.test.d.ts +0 -0
- package/lib/esm/{strings → shim}/urljoin.test.js +0 -0
- package/lib/esm/strings/index.d.ts +0 -1
- package/lib/esm/strings/index.js +0 -1
- package/package.json +3 -3
- package/src/index.ts +2 -1
- package/src/{strings → shim}/urljoin.test.ts +0 -0
- package/src/{strings → shim}/urljoin.ts +6 -10
- package/src/strings/index.ts +0 -1
- package/tsconfig.json +1 -1
- package/dist/utils.cjs +0 -497
- package/dist/utils.cjs.map +0 -7
- package/dist/utils.js +0 -445
- package/dist/utils.js.map +0 -7
- package/dist/utils.mjs +0 -475
- package/dist/utils.mjs.map +0 -7
- package/lib/cjs/arrays/MaybeArray.d.ts +0 -5
- package/lib/cjs/arrays/MaybeArray.js.map +0 -1
- package/lib/cjs/arrays/index.d.ts +0 -1
- package/lib/cjs/arrays/index.js.map +0 -1
- package/lib/cjs/asyncs/AsyncInterval.d.ts +0 -3
- package/lib/cjs/asyncs/AsyncInterval.js.map +0 -1
- package/lib/cjs/asyncs/LazyPromise.d.ts +0 -5
- package/lib/cjs/asyncs/LazyPromise.js.map +0 -1
- package/lib/cjs/asyncs/MaybePromise.d.ts +0 -1
- package/lib/cjs/asyncs/MaybePromise.js.map +0 -1
- package/lib/cjs/asyncs/generatorOfStream.d.ts +0 -1
- package/lib/cjs/asyncs/generatorOfStream.js.map +0 -1
- package/lib/cjs/asyncs/index.d.ts +0 -7
- package/lib/cjs/asyncs/index.js.map +0 -1
- package/lib/cjs/asyncs/isPromise.d.ts +0 -1
- package/lib/cjs/asyncs/isPromise.js.map +0 -1
- package/lib/cjs/asyncs/promiseOfCallback.d.ts +0 -1
- package/lib/cjs/asyncs/promiseOfCallback.js.map +0 -1
- package/lib/cjs/asyncs/sleep.d.ts +0 -1
- package/lib/cjs/asyncs/sleep.js.map +0 -1
- package/lib/cjs/asyncs/timeout.d.ts +0 -4
- package/lib/cjs/asyncs/timeout.js.map +0 -1
- package/lib/cjs/browsers/copy.d.ts +0 -1
- package/lib/cjs/browsers/copy.js.map +0 -1
- package/lib/cjs/browsers/download.d.ts +0 -4
- package/lib/cjs/browsers/download.js.map +0 -1
- package/lib/cjs/browsers/getFileFromDataTransfer.d.ts +0 -4
- package/lib/cjs/browsers/getFileFromDataTransfer.js.map +0 -1
- package/lib/cjs/browsers/index.d.ts +0 -4
- package/lib/cjs/browsers/index.js.map +0 -1
- package/lib/cjs/browsers/loaders.d.ts +0 -6
- package/lib/cjs/browsers/loaders.js.map +0 -1
- package/lib/cjs/formats/formatBytes.d.ts +0 -11
- package/lib/cjs/formats/formatBytes.js.map +0 -1
- package/lib/cjs/index.d.ts +0 -9
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/io/index.d.ts +0 -1
- package/lib/cjs/io/index.js.map +0 -1
- package/lib/cjs/io/isBuffer.d.ts +0 -2
- package/lib/cjs/io/isBuffer.js.map +0 -1
- package/lib/cjs/isomorphics/getGlobalThis.d.ts +0 -9
- package/lib/cjs/isomorphics/getGlobalThis.js.map +0 -1
- package/lib/cjs/isomorphics/index.d.ts +0 -1
- package/lib/cjs/isomorphics/index.js +0 -5
- package/lib/cjs/isomorphics/index.js.map +0 -1
- package/lib/cjs/maths/index.d.ts +0 -1
- package/lib/cjs/maths/index.js.map +0 -1
- package/lib/cjs/maths/random.d.ts +0 -3
- package/lib/cjs/maths/random.js.map +0 -1
- package/lib/cjs/strings/camelCase.d.ts +0 -4
- package/lib/cjs/strings/camelCase.js.map +0 -1
- package/lib/cjs/strings/index.d.ts +0 -3
- package/lib/cjs/strings/index.js.map +0 -1
- package/lib/cjs/strings/templates.d.ts +0 -7
- package/lib/cjs/strings/templates.js.map +0 -1
- package/lib/cjs/strings/urljoin.d.ts +0 -2
- package/lib/cjs/strings/urljoin.js +0 -69
- package/lib/cjs/strings/urljoin.js.map +0 -1
- package/lib/cjs/strings/urljoin.test.js +0 -7
- package/lib/cjs/strings/urljoin.test.js.map +0 -1
- package/lib/cjs/validations/asserts.d.ts +0 -2
- package/lib/cjs/validations/asserts.js.map +0 -1
- package/lib/cjs/validations/index.d.ts +0 -4
- package/lib/cjs/validations/index.js.map +0 -1
- package/lib/cjs/validations/isClass.d.ts +0 -1
- package/lib/cjs/validations/isClass.js.map +0 -1
- package/lib/cjs/validations/isDefined.d.ts +0 -1
- package/lib/cjs/validations/isDefined.js.map +0 -1
- package/lib/cjs/validations/isEmptyObject.d.ts +0 -1
- package/lib/cjs/validations/isEmptyObject.js.map +0 -1
- package/lib/esm/isomorphics/index.d.ts +0 -1
- package/lib/esm/isomorphics/index.js +0 -1
- package/lib/esm/strings/urljoin.d.ts +0 -2
- package/lib/esm/strings/urljoin.test.d.ts +0 -1
- package/lib/esnext/arrays/MaybeArray.d.ts +0 -5
- package/lib/esnext/arrays/MaybeArray.js +0 -28
- package/lib/esnext/arrays/MaybeArray.js.map +0 -1
- package/lib/esnext/arrays/index.d.ts +0 -1
- package/lib/esnext/arrays/index.js +0 -2
- package/lib/esnext/arrays/index.js.map +0 -1
- package/lib/esnext/asyncs/AsyncInterval.d.ts +0 -3
- package/lib/esnext/asyncs/AsyncInterval.js +0 -13
- package/lib/esnext/asyncs/AsyncInterval.js.map +0 -1
- package/lib/esnext/asyncs/LazyPromise.d.ts +0 -5
- package/lib/esnext/asyncs/LazyPromise.js +0 -22
- package/lib/esnext/asyncs/LazyPromise.js.map +0 -1
- package/lib/esnext/asyncs/MaybePromise.d.ts +0 -1
- package/lib/esnext/asyncs/MaybePromise.js +0 -2
- package/lib/esnext/asyncs/MaybePromise.js.map +0 -1
- package/lib/esnext/asyncs/generatorOfStream.d.ts +0 -1
- package/lib/esnext/asyncs/generatorOfStream.js +0 -14
- package/lib/esnext/asyncs/generatorOfStream.js.map +0 -1
- package/lib/esnext/asyncs/index.d.ts +0 -7
- package/lib/esnext/asyncs/index.js +0 -8
- package/lib/esnext/asyncs/index.js.map +0 -1
- package/lib/esnext/asyncs/isPromise.d.ts +0 -1
- package/lib/esnext/asyncs/isPromise.js +0 -4
- package/lib/esnext/asyncs/isPromise.js.map +0 -1
- package/lib/esnext/asyncs/promiseOfCallback.d.ts +0 -1
- package/lib/esnext/asyncs/promiseOfCallback.js +0 -18
- package/lib/esnext/asyncs/promiseOfCallback.js.map +0 -1
- package/lib/esnext/asyncs/sleep.d.ts +0 -1
- package/lib/esnext/asyncs/sleep.js +0 -2
- package/lib/esnext/asyncs/sleep.js.map +0 -1
- package/lib/esnext/asyncs/timeout.d.ts +0 -4
- package/lib/esnext/asyncs/timeout.js +0 -22
- package/lib/esnext/asyncs/timeout.js.map +0 -1
- package/lib/esnext/browsers/copy.d.ts +0 -1
- package/lib/esnext/browsers/copy.js +0 -51
- package/lib/esnext/browsers/copy.js.map +0 -1
- package/lib/esnext/browsers/download.d.ts +0 -4
- package/lib/esnext/browsers/download.js +0 -31
- package/lib/esnext/browsers/download.js.map +0 -1
- package/lib/esnext/browsers/getFileFromDataTransfer.d.ts +0 -4
- package/lib/esnext/browsers/getFileFromDataTransfer.js +0 -37
- package/lib/esnext/browsers/getFileFromDataTransfer.js.map +0 -1
- package/lib/esnext/browsers/index.d.ts +0 -4
- package/lib/esnext/browsers/index.js +0 -5
- package/lib/esnext/browsers/index.js.map +0 -1
- package/lib/esnext/browsers/loaders.d.ts +0 -6
- package/lib/esnext/browsers/loaders.js +0 -33
- package/lib/esnext/browsers/loaders.js.map +0 -1
- package/lib/esnext/formats/formatBytes.d.ts +0 -11
- package/lib/esnext/formats/formatBytes.js +0 -27
- package/lib/esnext/formats/formatBytes.js.map +0 -1
- package/lib/esnext/index.d.ts +0 -9
- package/lib/esnext/index.js +0 -10
- package/lib/esnext/index.js.map +0 -1
- package/lib/esnext/io/index.d.ts +0 -1
- package/lib/esnext/io/index.js +0 -2
- package/lib/esnext/io/index.js.map +0 -1
- package/lib/esnext/io/isBuffer.d.ts +0 -2
- package/lib/esnext/io/isBuffer.js +0 -8
- package/lib/esnext/io/isBuffer.js.map +0 -1
- package/lib/esnext/isomorphics/getGlobalThis.d.ts +0 -9
- package/lib/esnext/isomorphics/getGlobalThis.js +0 -21
- package/lib/esnext/isomorphics/getGlobalThis.js.map +0 -1
- package/lib/esnext/isomorphics/index.d.ts +0 -1
- package/lib/esnext/isomorphics/index.js +0 -2
- package/lib/esnext/isomorphics/index.js.map +0 -1
- package/lib/esnext/maths/index.d.ts +0 -1
- package/lib/esnext/maths/index.js +0 -2
- package/lib/esnext/maths/index.js.map +0 -1
- package/lib/esnext/maths/random.d.ts +0 -3
- package/lib/esnext/maths/random.js +0 -16
- package/lib/esnext/maths/random.js.map +0 -1
- package/lib/esnext/strings/camelCase.d.ts +0 -4
- package/lib/esnext/strings/camelCase.js +0 -68
- package/lib/esnext/strings/camelCase.js.map +0 -1
- package/lib/esnext/strings/index.d.ts +0 -3
- package/lib/esnext/strings/index.js +0 -4
- package/lib/esnext/strings/index.js.map +0 -1
- package/lib/esnext/strings/templates.d.ts +0 -7
- package/lib/esnext/strings/templates.js +0 -14
- package/lib/esnext/strings/templates.js.map +0 -1
- package/lib/esnext/strings/urljoin.d.ts +0 -2
- package/lib/esnext/strings/urljoin.js +0 -65
- package/lib/esnext/strings/urljoin.js.map +0 -1
- package/lib/esnext/strings/urljoin.test.d.ts +0 -1
- package/lib/esnext/strings/urljoin.test.js +0 -5
- package/lib/esnext/strings/urljoin.test.js.map +0 -1
- package/lib/esnext/validations/asserts.d.ts +0 -2
- package/lib/esnext/validations/asserts.js +0 -13
- package/lib/esnext/validations/asserts.js.map +0 -1
- package/lib/esnext/validations/index.d.ts +0 -4
- package/lib/esnext/validations/index.js +0 -5
- package/lib/esnext/validations/index.js.map +0 -1
- package/lib/esnext/validations/isClass.d.ts +0 -1
- package/lib/esnext/validations/isClass.js +0 -4
- package/lib/esnext/validations/isClass.js.map +0 -1
- package/lib/esnext/validations/isDefined.d.ts +0 -1
- package/lib/esnext/validations/isDefined.js +0 -4
- package/lib/esnext/validations/isDefined.js.map +0 -1
- package/lib/esnext/validations/isEmptyObject.d.ts +0 -1
- package/lib/esnext/validations/isEmptyObject.js +0 -7
- package/lib/esnext/validations/isEmptyObject.js.map +0 -1
- package/src/isomorphics/index.ts +0 -1
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
// https://gist.github.com/rproenca/64781c6a1329b48a455b645d361a9aa3
|
|
2
|
-
let _copy;
|
|
3
|
-
function initCopy() {
|
|
4
|
-
let textArea;
|
|
5
|
-
function isIOS() {
|
|
6
|
-
return navigator.userAgent.match(/ipad|iphone/i);
|
|
7
|
-
}
|
|
8
|
-
function createTextArea(text) {
|
|
9
|
-
textArea = document.createElement('textArea');
|
|
10
|
-
textArea.value = text;
|
|
11
|
-
document.body.appendChild(textArea);
|
|
12
|
-
}
|
|
13
|
-
function selectText() {
|
|
14
|
-
let range, selection;
|
|
15
|
-
if (isIOS()) {
|
|
16
|
-
range = document.createRange();
|
|
17
|
-
range.selectNodeContents(textArea);
|
|
18
|
-
selection = window.getSelection();
|
|
19
|
-
if (selection === null) {
|
|
20
|
-
console.error(`no selection`);
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
selection.removeAllRanges();
|
|
24
|
-
selection.addRange(range);
|
|
25
|
-
textArea.setSelectionRange(0, 999999);
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
textArea.select();
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
function copyToClipboard() {
|
|
32
|
-
document.execCommand('copy');
|
|
33
|
-
document.body.removeChild(textArea);
|
|
34
|
-
}
|
|
35
|
-
_copy = (text) => {
|
|
36
|
-
createTextArea(text);
|
|
37
|
-
selectText();
|
|
38
|
-
copyToClipboard();
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
export function copy(text) {
|
|
42
|
-
if (window.navigator?.clipboard?.writeText) {
|
|
43
|
-
window.navigator.clipboard.writeText(text);
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
if (!_copy) {
|
|
47
|
-
initCopy();
|
|
48
|
-
}
|
|
49
|
-
_copy(text);
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=copy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"copy.js","sourceRoot":"","sources":["../../../src/browsers/copy.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,IAAI,KAAuB,CAAC;AAE5B,SAAS,QAAQ;IACf,IAAI,QAA6B,CAAC;IAElC,SAAS,KAAK;QACZ,OAAO,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;IAED,SAAS,cAAc,CAAC,IAAY;QAClC,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAwB,CAAC;QACrE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,SAAS,UAAU;QACjB,IAAI,KAAK,EAAE,SAAS,CAAC;QAErB,IAAI,KAAK,EAAE,EAAE;YACX,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC/B,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACnC,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;YAClC,IAAI,SAAS,KAAK,IAAI,EAAE;gBACtB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC9B,OAAO;aACR;YACD,SAAS,CAAC,eAAe,EAAE,CAAC;YAC5B,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1B,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;SACvC;aAAM;YACL,QAAQ,CAAC,MAAM,EAAE,CAAC;SACnB;IACH,CAAC;IAED,SAAS,eAAe;QACtB,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE;QACf,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,UAAU,EAAE,CAAC;QACb,eAAe,EAAE,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAY;IAC/B,IAAI,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;QAC1C,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO;KACR;IACD,IAAI,CAAC,KAAK,EAAE;QACV,QAAQ,EAAE,CAAC;KACZ;IACD,KAAK,CAAC,IAAI,CAAC,CAAC;AACd,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
export function download(filename, data, { type = 'application/octet-stream', raw = false } = {}) {
|
|
2
|
-
const a = document.createElement('a');
|
|
3
|
-
let closer = () => null;
|
|
4
|
-
try {
|
|
5
|
-
a.download = filename;
|
|
6
|
-
// console.info(`downloading ${name}`, data);
|
|
7
|
-
// url or data url
|
|
8
|
-
if (typeof data === 'string' && /^(https?:|data:)/.test(data) && !raw) {
|
|
9
|
-
a.href = data;
|
|
10
|
-
}
|
|
11
|
-
else if (typeof data === 'string') {
|
|
12
|
-
data = new TextEncoder().encode(data);
|
|
13
|
-
}
|
|
14
|
-
if (data instanceof Uint8Array) {
|
|
15
|
-
data = new Blob([data], { type });
|
|
16
|
-
}
|
|
17
|
-
if (data instanceof File || data instanceof Blob || data instanceof MediaSource) {
|
|
18
|
-
a.href = URL.createObjectURL(data);
|
|
19
|
-
closer = () => URL.revokeObjectURL(a.href);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
console.error(`invalid download data`, data);
|
|
23
|
-
throw new Error(`can not download ${Object.getPrototypeOf(data)}`);
|
|
24
|
-
}
|
|
25
|
-
a.click();
|
|
26
|
-
}
|
|
27
|
-
finally {
|
|
28
|
-
closer();
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=download.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/browsers/download.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,QAAgB,EAAE,IAAS,EAAE,EAAE,IAAI,GAAG,0BAA0B,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,EAAE;IAC3G,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,MAAM,GAAe,GAAG,EAAE,CAAC,IAAI,CAAC;IACpC,IAAI;QACF,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEtB,6CAA6C;QAE7C,kBAAkB;QAClB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACrE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;SACf;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YACnC,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACvC;QAED,IAAI,IAAI,YAAY,UAAU,EAAE;YAC9B,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;SACnC;QAED,IAAI,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,WAAW,EAAE;YAC/E,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC5C;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACpE;QACD,CAAC,CAAC,KAAK,EAAE,CAAC;KACX;YAAS;QACR,MAAM,EAAE,CAAC;KACV;AACH,CAAC"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
export function getFileFromDataTransfer(dataTransfer) {
|
|
2
|
-
if (!dataTransfer) {
|
|
3
|
-
return {};
|
|
4
|
-
}
|
|
5
|
-
const items = dataTransfer.items ?? [];
|
|
6
|
-
if (items.length >= 2 && items[0].kind === 'string' && items[1].kind === 'file') {
|
|
7
|
-
// name, file
|
|
8
|
-
const text = dataTransfer.getData('text');
|
|
9
|
-
const file = items[1].getAsFile() ?? dataTransfer.files?.item(0);
|
|
10
|
-
if (!file) {
|
|
11
|
-
console.error(`no file ${text}`, items[1]);
|
|
12
|
-
return {};
|
|
13
|
-
}
|
|
14
|
-
// let type = file.type;
|
|
15
|
-
// // fix type
|
|
16
|
-
// type = type;
|
|
17
|
-
// // NOTE paste file can not parse by libs
|
|
18
|
-
// if (type !== file.type) {
|
|
19
|
-
// const blob = file.slice(0, file.size);
|
|
20
|
-
// file = new File([blob], text, {type});
|
|
21
|
-
// }
|
|
22
|
-
return { file, name: text };
|
|
23
|
-
}
|
|
24
|
-
else if (items[0].kind === 'file') {
|
|
25
|
-
const file = items[0].getAsFile();
|
|
26
|
-
if (!file) {
|
|
27
|
-
console.error(`no file`, items[0]);
|
|
28
|
-
return {};
|
|
29
|
-
}
|
|
30
|
-
return { file, name: file.name };
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
console.debug(`file item not match`, Array.from(items).map((v) => ({ type: v.type, kind: v.kind })));
|
|
34
|
-
}
|
|
35
|
-
return {};
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=getFileFromDataTransfer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getFileFromDataTransfer.js","sourceRoot":"","sources":["../../../src/browsers/getFileFromDataTransfer.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,uBAAuB,CAAC,YAAkC;IACxE,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,EAAE,CAAC;KACX;IAED,MAAM,KAAK,GAAyB,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;IAE7D,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;QAC/E,aAAa;QACb,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO,EAAE,CAAC;SACX;QAED,wBAAwB;QACxB,cAAc;QACd,eAAe;QACf,2CAA2C;QAC3C,4BAA4B;QAC5B,2CAA2C;QAC3C,2CAA2C;QAC3C,IAAI;QAEJ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;KAC7B;SAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,OAAO,EAAE,CAAC;SACX;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;KAClC;SAAM;QACL,OAAO,CAAC,KAAK,CACX,qBAAqB,EACrB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAC/D,CAAC;KACH;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/browsers/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,2BAA2B,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
function load(el, resolve, reject, options) {
|
|
2
|
-
el.onload = resolve;
|
|
3
|
-
el.onerror = (e) => {
|
|
4
|
-
el.remove();
|
|
5
|
-
reject(e);
|
|
6
|
-
};
|
|
7
|
-
const { attributes = {} } = options || {};
|
|
8
|
-
Object.entries(attributes).forEach(([k, v]) => el.setAttribute(k, v));
|
|
9
|
-
document.head.appendChild(el);
|
|
10
|
-
}
|
|
11
|
-
export function loadScripts(src, options) {
|
|
12
|
-
// todo quote ?
|
|
13
|
-
if (document.querySelector(`script[src="${src}"]`)) {
|
|
14
|
-
return Promise.resolve();
|
|
15
|
-
}
|
|
16
|
-
return new Promise((resolve, reject) => {
|
|
17
|
-
const el = document.createElement('script');
|
|
18
|
-
el.src = src;
|
|
19
|
-
load(el, resolve, reject, options);
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
export function loadStyles(href, options) {
|
|
23
|
-
if (document.querySelector(`link[href="${href}"]`)) {
|
|
24
|
-
return Promise.resolve();
|
|
25
|
-
}
|
|
26
|
-
return new Promise((resolve, reject) => {
|
|
27
|
-
const el = document.createElement('link');
|
|
28
|
-
el.rel = 'stylesheet';
|
|
29
|
-
el.href = href;
|
|
30
|
-
load(el, resolve, reject, options);
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=loaders.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loaders.js","sourceRoot":"","sources":["../../../src/browsers/loaders.ts"],"names":[],"mappings":"AAAA,SAAS,IAAI,CACX,EAAuC,EACvC,OAAyB,EACzB,MAAwB,EACxB,OAA2D;IAE3D,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC;IACpB,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE;QACjB,EAAE,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC,CAAC;IACF,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC1C,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEtE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,OAAgD;IACvF,eAAe;IACf,IAAI,QAAQ,CAAC,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE;QAClD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;KAC1B;IACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC5C,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;QACb,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,OAAgD;IACvF,IAAI,QAAQ,CAAC,aAAa,CAAC,cAAc,IAAI,IAAI,CAAC,EAAE;QAClD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;KAC1B;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC1C,EAAE,CAAC,GAAG,GAAG,YAAY,CAAC;QACtB,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Format bytes as human-readable text.
|
|
3
|
-
*
|
|
4
|
-
* @param bytes Number of bytes.
|
|
5
|
-
* @param si True to use metric (SI) units, aka powers of 1000. False to use
|
|
6
|
-
* binary (IEC), aka powers of 1024.
|
|
7
|
-
* @param dp Number of decimal places to display.
|
|
8
|
-
*
|
|
9
|
-
* @return Formatted string.
|
|
10
|
-
*/
|
|
11
|
-
export declare function formatBytes(bytes: number, si?: boolean, dp?: number): string;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Format bytes as human-readable text.
|
|
3
|
-
*
|
|
4
|
-
* @param bytes Number of bytes.
|
|
5
|
-
* @param si True to use metric (SI) units, aka powers of 1000. False to use
|
|
6
|
-
* binary (IEC), aka powers of 1024.
|
|
7
|
-
* @param dp Number of decimal places to display.
|
|
8
|
-
*
|
|
9
|
-
* @return Formatted string.
|
|
10
|
-
*/
|
|
11
|
-
export function formatBytes(bytes, si = false, dp = 1) {
|
|
12
|
-
const thresh = si ? 1000 : 1024;
|
|
13
|
-
if (Math.abs(bytes) < thresh) {
|
|
14
|
-
return bytes + ' B';
|
|
15
|
-
}
|
|
16
|
-
const units = si
|
|
17
|
-
? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
|
|
18
|
-
: ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];
|
|
19
|
-
let u = -1;
|
|
20
|
-
const r = 10 ** dp;
|
|
21
|
-
do {
|
|
22
|
-
bytes /= thresh;
|
|
23
|
-
++u;
|
|
24
|
-
} while (Math.round(Math.abs(bytes) * r) / r >= thresh && u < units.length - 1);
|
|
25
|
-
return bytes.toFixed(dp) + ' ' + units[u];
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=formatBytes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"formatBytes.js","sourceRoot":"","sources":["../../../src/formats/formatBytes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,CAAC;IAC3D,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAEhC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE;QAC5B,OAAO,KAAK,GAAG,IAAI,CAAC;KACrB;IAED,MAAM,KAAK,GAAG,EAAE;QACd,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QAClD,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACX,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IAEnB,GAAG;QACD,KAAK,IAAI,MAAM,CAAC;QAChB,EAAE,CAAC,CAAC;KACL,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;IAEhF,OAAO,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC"}
|
package/lib/esnext/index.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export * from './arrays/index';
|
|
2
|
-
export * from './asyncs';
|
|
3
|
-
export * from './validations';
|
|
4
|
-
export * from './strings';
|
|
5
|
-
export * from './maths';
|
|
6
|
-
export * from './io';
|
|
7
|
-
export * from './browsers';
|
|
8
|
-
export * from './isomorphics';
|
|
9
|
-
export { formatBytes } from './formats/formatBytes';
|
package/lib/esnext/index.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export * from './arrays/index';
|
|
2
|
-
export * from './asyncs';
|
|
3
|
-
export * from './validations';
|
|
4
|
-
export * from './strings';
|
|
5
|
-
export * from './maths';
|
|
6
|
-
export * from './io';
|
|
7
|
-
export * from './browsers';
|
|
8
|
-
export * from './isomorphics';
|
|
9
|
-
export { formatBytes } from './formats/formatBytes';
|
|
10
|
-
//# sourceMappingURL=index.js.map
|
package/lib/esnext/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,MAAM,CAAC;AACrB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC"}
|
package/lib/esnext/io/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './isBuffer';
|
package/lib/esnext/io/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/io/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
// https://github.com/feross/is-buffer/blob/master/index.js
|
|
2
|
-
export function isBuffer(obj) {
|
|
3
|
-
return (obj != null &&
|
|
4
|
-
obj.constructor != null &&
|
|
5
|
-
typeof obj.constructor.isBuffer === 'function' &&
|
|
6
|
-
obj.constructor.isBuffer(obj));
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=isBuffer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isBuffer.js","sourceRoot":"","sources":["../../../src/io/isBuffer.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,UAAU,QAAQ,CAAC,GAAQ;IAC/B,OAAO,CACL,GAAG,IAAI,IAAI;QACX,GAAG,CAAC,WAAW,IAAI,IAAI;QACvB,OAAO,GAAG,CAAC,WAAW,CAAC,QAAQ,KAAK,UAAU;QAC9C,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC9B,CAAC;AACJ,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* isomorphic globalThis
|
|
3
|
-
*
|
|
4
|
-
* globalThis supported by ff 65, Chrome 71, Node 12, babel
|
|
5
|
-
*
|
|
6
|
-
* @see https://caniuse.com/#search=globalThis
|
|
7
|
-
* @see https://v8.dev/features/globalthis
|
|
8
|
-
*/
|
|
9
|
-
export const getGlobalThis = () => {
|
|
10
|
-
if (typeof globalThis !== 'undefined')
|
|
11
|
-
return globalThis;
|
|
12
|
-
if (typeof self !== 'undefined')
|
|
13
|
-
return self;
|
|
14
|
-
if (typeof window !== 'undefined')
|
|
15
|
-
return window;
|
|
16
|
-
if (typeof global !== 'undefined')
|
|
17
|
-
return global;
|
|
18
|
-
// if (typeof this !== 'undefined') return this;
|
|
19
|
-
throw new Error('Unable to locate global `this`');
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=getGlobalThis.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getGlobalThis.js","sourceRoot":"","sources":["../../../src/isomorphics/getGlobalThis.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAsB,EAAE;IACnD,IAAI,OAAO,UAAU,KAAK,WAAW;QAAE,OAAO,UAAU,CAAC;IACzD,IAAI,OAAO,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC;IACjD,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,MAAa,CAAC;IACxD,gDAAgD;IAChD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACpD,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './getGlobalThis';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/isomorphics/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './random';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/maths/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/// javascript pseudo random
|
|
2
|
-
export function createRandom(o = {}) {
|
|
3
|
-
let seed = typeof o.seed === 'string' ? 0 : o.seed ?? 0;
|
|
4
|
-
if (typeof o.seed === 'string') {
|
|
5
|
-
let sum = 0;
|
|
6
|
-
for (let i = 0; i < o.seed.length; i++) {
|
|
7
|
-
sum += o.seed.charCodeAt(i);
|
|
8
|
-
}
|
|
9
|
-
seed = sum;
|
|
10
|
-
}
|
|
11
|
-
return () => {
|
|
12
|
-
const x = Math.sin(seed++) * 10000;
|
|
13
|
-
return x - Math.floor(x);
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=random.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"random.js","sourceRoot":"","sources":["../../../src/maths/random.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,MAAM,UAAU,YAAY,CAAC,IAAgC,EAAE;IAC7D,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;IACxD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;QAC9B,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SAC7B;QACD,IAAI,GAAG,GAAG,CAAC;KACZ;IAED,OAAO,GAAG,EAAE;QACV,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;QACnC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
// https://github.com/sindresorhus/camelcase/blob/master/index.js
|
|
2
|
-
function preserveCamelCase(string) {
|
|
3
|
-
let isLastCharLower = false;
|
|
4
|
-
let isLastCharUpper = false;
|
|
5
|
-
let isLastLastCharUpper = false;
|
|
6
|
-
for (let i = 0; i < string.length; i++) {
|
|
7
|
-
const character = string[i];
|
|
8
|
-
if (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) {
|
|
9
|
-
string = string.slice(0, i) + '-' + string.slice(i);
|
|
10
|
-
isLastCharLower = false;
|
|
11
|
-
isLastLastCharUpper = isLastCharUpper;
|
|
12
|
-
isLastCharUpper = true;
|
|
13
|
-
i++;
|
|
14
|
-
}
|
|
15
|
-
else if (isLastCharUpper &&
|
|
16
|
-
isLastLastCharUpper &&
|
|
17
|
-
/[a-zA-Z]/.test(character) &&
|
|
18
|
-
character.toLowerCase() === character) {
|
|
19
|
-
string = string.slice(0, i - 1) + '-' + string.slice(i - 1);
|
|
20
|
-
isLastLastCharUpper = isLastCharUpper;
|
|
21
|
-
isLastCharUpper = false;
|
|
22
|
-
isLastCharLower = true;
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
isLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;
|
|
26
|
-
isLastLastCharUpper = isLastCharUpper;
|
|
27
|
-
isLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return string;
|
|
31
|
-
}
|
|
32
|
-
export function pascalCase(input) {
|
|
33
|
-
return camelCase(input, { pascalCase: true });
|
|
34
|
-
}
|
|
35
|
-
export function camelCase(input, options = {
|
|
36
|
-
pascalCase: false,
|
|
37
|
-
}) {
|
|
38
|
-
if (!(typeof input === 'string' || Array.isArray(input))) {
|
|
39
|
-
throw new TypeError('Expected the input to be `string | string[]`');
|
|
40
|
-
}
|
|
41
|
-
const postProcess = (x) => (options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x);
|
|
42
|
-
if (Array.isArray(input)) {
|
|
43
|
-
input = input
|
|
44
|
-
.map((x) => x.trim())
|
|
45
|
-
.filter((x) => x.length)
|
|
46
|
-
.join('-');
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
input = input.trim();
|
|
50
|
-
}
|
|
51
|
-
if (input.length === 0) {
|
|
52
|
-
return '';
|
|
53
|
-
}
|
|
54
|
-
if (input.length === 1) {
|
|
55
|
-
return options.pascalCase ? input.toUpperCase() : input.toLowerCase();
|
|
56
|
-
}
|
|
57
|
-
const hasUpperCase = input !== input.toLowerCase();
|
|
58
|
-
if (hasUpperCase) {
|
|
59
|
-
input = preserveCamelCase(input);
|
|
60
|
-
}
|
|
61
|
-
input = input
|
|
62
|
-
.replace(/^[_.\- ]+/, '')
|
|
63
|
-
.toLowerCase()
|
|
64
|
-
.replace(/[_.\- ]+(\w|$)/g, (_, p1) => p1.toUpperCase())
|
|
65
|
-
.replace(/\d+(\w|$)/g, (m) => m.toUpperCase());
|
|
66
|
-
return postProcess(input);
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=camelCase.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"camelCase.js","sourceRoot":"","sources":["../../../src/strings/camelCase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/strings/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 替换类似于 JS 的模板字符串
|
|
3
|
-
*
|
|
4
|
-
* @example
|
|
5
|
-
* templateString('My name is ${name}',{name:'wener'})
|
|
6
|
-
*/
|
|
7
|
-
export function templateString(template, getter) {
|
|
8
|
-
return template.replace(/\${(.*?)}/g, (_, g) => {
|
|
9
|
-
// variables[g.trim()]
|
|
10
|
-
// 支持路径 - 例如 a.b[0]
|
|
11
|
-
return getter(g.trim());
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=templates.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/strings/templates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,MAA0B;IACzE,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC7C,sBAAsB;QACtB,mBAAmB;QACnB,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @see {@link https://github.com/jfromaniello/url-join}
|
|
3
|
-
*/
|
|
4
|
-
export function urljoin(...args) {
|
|
5
|
-
let input;
|
|
6
|
-
if (typeof args[0] === 'object') {
|
|
7
|
-
input = args[0];
|
|
8
|
-
}
|
|
9
|
-
else {
|
|
10
|
-
input = args;
|
|
11
|
-
}
|
|
12
|
-
return normalize(input);
|
|
13
|
-
}
|
|
14
|
-
function normalize(strArray) {
|
|
15
|
-
const resultArray = [];
|
|
16
|
-
if (strArray.length === 0) {
|
|
17
|
-
return '';
|
|
18
|
-
}
|
|
19
|
-
if (typeof strArray[0] !== 'string') {
|
|
20
|
-
throw new TypeError('Url must be a string. Received ' + strArray[0]);
|
|
21
|
-
}
|
|
22
|
-
// If the first part is a plain protocol, we combine it with the next part.
|
|
23
|
-
if (strArray[0].match(/^[^/:]+:\/*$/) && strArray.length > 1) {
|
|
24
|
-
const first = strArray.shift();
|
|
25
|
-
strArray[0] = first + strArray[0];
|
|
26
|
-
}
|
|
27
|
-
// There must be two or three slashes in the file protocol, two slashes in anything else.
|
|
28
|
-
if (strArray[0].match(/^file:\/\/\//)) {
|
|
29
|
-
strArray[0] = strArray[0].replace(/^([^/:]+):\/*/, '$1:///');
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
strArray[0] = strArray[0].replace(/^([^/:]+):\/*/, '$1://');
|
|
33
|
-
}
|
|
34
|
-
for (let i = 0; i < strArray.length; i++) {
|
|
35
|
-
let component = strArray[i];
|
|
36
|
-
if (typeof component !== 'string') {
|
|
37
|
-
throw new TypeError('Url must be a string. Received ' + component);
|
|
38
|
-
}
|
|
39
|
-
if (component === '') {
|
|
40
|
-
continue;
|
|
41
|
-
}
|
|
42
|
-
if (i > 0) {
|
|
43
|
-
// Removing the starting slashes for each component but the first.
|
|
44
|
-
component = component.replace(/^[\/]+/, '');
|
|
45
|
-
}
|
|
46
|
-
if (i < strArray.length - 1) {
|
|
47
|
-
// Removing the ending slashes for each component but the last.
|
|
48
|
-
component = component.replace(/[\/]+$/, '');
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
// For the last component we will combine multiple slashes to a single one.
|
|
52
|
-
component = component.replace(/[\/]+$/, '/');
|
|
53
|
-
}
|
|
54
|
-
resultArray.push(component);
|
|
55
|
-
}
|
|
56
|
-
let str = resultArray.join('/');
|
|
57
|
-
// Each input component is now separated by a single slash except the possible first plain protocol part.
|
|
58
|
-
// remove trailing slash before parameters or hash
|
|
59
|
-
str = str.replace(/\/(\?|&|#[^!])/g, '$1');
|
|
60
|
-
// replace ? in parameters with &
|
|
61
|
-
const parts = str.split('?');
|
|
62
|
-
str = parts.shift() + (parts.length > 0 ? '?' : '') + parts.join('&');
|
|
63
|
-
return str;
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=urljoin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"urljoin.js","sourceRoot":"","sources":["../../../src/strings/urljoin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"urljoin.test.js","sourceRoot":"","sources":["../../../src/strings/urljoin.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;IACpB,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;AACrG,CAAC,CAAC,CAAC"}
|