@tanwan/utils 1.0.0 → 1.2.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/CHANGELOG.md +19 -0
- package/dist/addClass.cjs +19 -0
- package/dist/addClass.d.cts +16 -0
- package/dist/addClass.d.ts +17 -0
- package/dist/addClass.js +19 -0
- package/dist/{string/camelCase.cjs → camelCase.cjs} +0 -1
- package/dist/{string/camelCase.d.cts → camelCase.d.cts} +1 -2
- package/dist/{string/camelCase.d.ts → camelCase.d.ts} +1 -2
- package/dist/{string/camelCase.js → camelCase.js} +0 -3
- package/dist/{string/capitalize.cjs → capitalize.cjs} +1 -1
- package/dist/{string/capitalize.d.cts → capitalize.d.cts} +2 -3
- package/dist/{string/capitalize.d.ts → capitalize.d.ts} +2 -3
- package/dist/{string/capitalize.js → capitalize.js} +1 -3
- package/dist/{array/chunk.cjs → chunk.cjs} +1 -1
- package/dist/{array/chunk.d.cts → chunk.d.cts} +2 -3
- package/dist/{array/chunk.d.ts → chunk.d.ts} +2 -3
- package/dist/{array/chunk.js → chunk.js} +1 -3
- package/dist/{number/clamp.cjs → clamp.cjs} +1 -1
- package/dist/{number/clamp.d.cts → clamp.d.cts} +2 -3
- package/dist/{number/clamp.d.ts → clamp.d.ts} +2 -3
- package/dist/{number/clamp.js → clamp.js} +1 -3
- package/dist/convertCurrencyToChinese.cjs +56 -0
- package/dist/convertCurrencyToChinese.d.cts +18 -0
- package/dist/convertCurrencyToChinese.d.ts +19 -0
- package/dist/convertCurrencyToChinese.js +56 -0
- package/dist/copyToClipboard.cjs +38 -0
- package/dist/copyToClipboard.d.cts +17 -0
- package/dist/copyToClipboard.d.ts +18 -0
- package/dist/copyToClipboard.js +38 -0
- package/dist/createElement.cjs +27 -0
- package/dist/createElement.d.cts +21 -0
- package/dist/createElement.d.ts +22 -0
- package/dist/createElement.js +27 -0
- package/dist/{function/debounce.cjs → debounce.cjs} +1 -1
- package/dist/{function/debounce.d.cts → debounce.d.cts} +2 -3
- package/dist/{function/debounce.d.ts → debounce.d.ts} +2 -3
- package/dist/{function/debounce.js → debounce.js} +1 -3
- package/dist/debounceSubmit.cjs +34 -0
- package/dist/debounceSubmit.d.cts +22 -0
- package/dist/debounceSubmit.d.ts +23 -0
- package/dist/debounceSubmit.js +34 -0
- package/dist/decodeBase64.cjs +19 -0
- package/dist/decodeBase64.d.cts +16 -0
- package/dist/decodeBase64.d.ts +17 -0
- package/dist/decodeBase64.js +19 -0
- package/dist/{base/deepClone.cjs → deepClone.cjs} +3 -3
- package/dist/{base/deepClone.d.cts → deepClone.d.cts} +2 -3
- package/dist/{base/deepClone.d.ts → deepClone.d.ts} +2 -3
- package/dist/{base/deepClone.js → deepClone.js} +1 -3
- package/dist/deepMerge.cjs +39 -0
- package/dist/deepMerge.d.cts +25 -0
- package/dist/deepMerge.d.ts +26 -0
- package/dist/deepMerge.js +39 -0
- package/dist/delay.cjs +8 -0
- package/dist/delay.d.cts +18 -0
- package/dist/delay.d.ts +19 -0
- package/dist/delay.js +8 -0
- package/dist/difference.cjs +24 -0
- package/dist/difference.d.cts +20 -0
- package/dist/difference.d.ts +21 -0
- package/dist/difference.js +24 -0
- package/dist/downloadFile.cjs +31 -0
- package/dist/downloadFile.d.cts +20 -0
- package/dist/downloadFile.d.ts +21 -0
- package/dist/downloadFile.js +31 -0
- package/dist/encodeBase64.cjs +20 -0
- package/dist/encodeBase64.d.cts +17 -0
- package/dist/encodeBase64.d.ts +18 -0
- package/dist/encodeBase64.js +20 -0
- package/dist/{array/flatten.cjs → flatten.cjs} +1 -1
- package/dist/{array/flatten.d.cts → flatten.d.cts} +2 -3
- package/dist/{array/flatten.d.ts → flatten.d.ts} +2 -3
- package/dist/{array/flatten.js → flatten.js} +1 -3
- package/dist/formatBankCard.cjs +19 -0
- package/dist/formatBankCard.d.cts +16 -0
- package/dist/formatBankCard.d.ts +17 -0
- package/dist/formatBankCard.js +19 -0
- package/dist/formatCurrency.cjs +7 -0
- package/dist/formatCurrency.d.cts +27 -0
- package/dist/formatCurrency.d.ts +28 -0
- package/dist/formatCurrency.js +7 -0
- package/dist/{date/formatDate.cjs → formatDate.cjs} +1 -1
- package/dist/{date/formatDate.d.cts → formatDate.d.cts} +2 -3
- package/dist/{date/formatDate.d.ts → formatDate.d.ts} +2 -3
- package/dist/{date/formatDate.js → formatDate.js} +1 -3
- package/dist/formatFileSize.cjs +33 -0
- package/dist/formatFileSize.d.cts +19 -0
- package/dist/formatFileSize.d.ts +20 -0
- package/dist/formatFileSize.js +33 -0
- package/dist/formatIdCard.cjs +21 -0
- package/dist/formatIdCard.d.cts +17 -0
- package/dist/formatIdCard.d.ts +18 -0
- package/dist/formatIdCard.js +21 -0
- package/dist/formatPhone.cjs +21 -0
- package/dist/formatPhone.d.cts +17 -0
- package/dist/formatPhone.d.ts +18 -0
- package/dist/formatPhone.js +21 -0
- package/dist/{number/formatThousands.cjs → formatThousands.cjs} +1 -1
- package/dist/{number/formatThousands.d.cts → formatThousands.d.cts} +2 -3
- package/dist/{number/formatThousands.d.ts → formatThousands.d.ts} +2 -3
- package/dist/{number/formatThousands.js → formatThousands.js} +1 -3
- package/dist/generateCode.cjs +29 -0
- package/dist/generateCode.d.cts +19 -0
- package/dist/generateCode.d.ts +20 -0
- package/dist/generateCode.js +29 -0
- package/dist/getAge.cjs +30 -0
- package/dist/getAge.d.cts +18 -0
- package/dist/getAge.d.ts +19 -0
- package/dist/getAge.js +30 -0
- package/dist/getByPath.cjs +29 -0
- package/dist/getByPath.d.cts +20 -0
- package/dist/getByPath.d.ts +21 -0
- package/dist/getByPath.js +29 -0
- package/dist/getCssVar.cjs +22 -0
- package/dist/getCssVar.d.cts +18 -0
- package/dist/getCssVar.d.ts +19 -0
- package/dist/getCssVar.js +22 -0
- package/dist/{date/getRelativeTime.cjs → getRelativeTime.cjs} +1 -1
- package/dist/{date/getRelativeTime.d.cts → getRelativeTime.d.cts} +2 -3
- package/dist/{date/getRelativeTime.d.ts → getRelativeTime.d.ts} +2 -3
- package/dist/{date/getRelativeTime.js → getRelativeTime.js} +1 -3
- package/dist/getScrollTop.cjs +28 -0
- package/dist/getScrollTop.d.cts +18 -0
- package/dist/getScrollTop.d.ts +19 -0
- package/dist/getScrollTop.js +28 -0
- package/dist/getStorage.cjs +27 -0
- package/dist/getStorage.d.cts +18 -0
- package/dist/getStorage.d.ts +19 -0
- package/dist/getStorage.js +27 -0
- package/dist/getStyle.cjs +20 -0
- package/dist/getStyle.d.cts +17 -0
- package/dist/getStyle.d.ts +18 -0
- package/dist/getStyle.js +20 -0
- package/dist/getTextWidth.cjs +26 -0
- package/dist/getTextWidth.d.cts +16 -0
- package/dist/getTextWidth.d.ts +17 -0
- package/dist/getTextWidth.js +26 -0
- package/dist/groupBy.cjs +36 -0
- package/dist/groupBy.d.cts +26 -0
- package/dist/groupBy.d.ts +27 -0
- package/dist/groupBy.js +36 -0
- package/dist/hasClass.cjs +19 -0
- package/dist/hasClass.d.cts +16 -0
- package/dist/hasClass.d.ts +17 -0
- package/dist/hasClass.js +19 -0
- package/dist/index.cjs +180 -36
- package/dist/index.d.cts +91 -19
- package/dist/index.d.ts +91 -19
- package/dist/index.iife.js +1 -1
- package/dist/index.js +91 -19
- package/dist/insertAfter.cjs +19 -0
- package/dist/insertAfter.d.cts +15 -0
- package/dist/insertAfter.d.ts +16 -0
- package/dist/insertAfter.js +19 -0
- package/dist/intersection.cjs +24 -0
- package/dist/intersection.d.cts +20 -0
- package/dist/intersection.d.ts +21 -0
- package/dist/intersection.js +24 -0
- package/dist/invert.cjs +21 -0
- package/dist/invert.d.cts +16 -0
- package/dist/invert.d.ts +17 -0
- package/dist/invert.js +21 -0
- package/dist/{base/isArray.cjs → isArray.cjs} +1 -1
- package/dist/{base/isArray.d.cts → isArray.d.cts} +2 -3
- package/dist/{base/isArray.d.ts → isArray.d.ts} +2 -3
- package/dist/{base/isArray.js → isArray.js} +1 -3
- package/dist/isBrowser.cjs +17 -0
- package/dist/isBrowser.d.cts +14 -0
- package/dist/isBrowser.d.ts +15 -0
- package/dist/isBrowser.js +17 -0
- package/dist/isDate.cjs +18 -0
- package/dist/isDate.d.cts +15 -0
- package/dist/isDate.d.ts +16 -0
- package/dist/isDate.js +18 -0
- package/dist/isEmpty.cjs +42 -0
- package/dist/isEmpty.d.cts +33 -0
- package/dist/isEmpty.d.ts +34 -0
- package/dist/isEmpty.js +42 -0
- package/dist/isFunction.cjs +19 -0
- package/dist/isFunction.d.cts +16 -0
- package/dist/isFunction.d.ts +17 -0
- package/dist/isFunction.js +19 -0
- package/dist/isInViewport.cjs +22 -0
- package/dist/isInViewport.d.cts +17 -0
- package/dist/isInViewport.d.ts +18 -0
- package/dist/isInViewport.js +22 -0
- package/dist/isNil.cjs +19 -0
- package/dist/isNil.d.cts +16 -0
- package/dist/isNil.d.ts +17 -0
- package/dist/isNil.js +19 -0
- package/dist/isNumber.cjs +19 -0
- package/dist/isNumber.d.cts +16 -0
- package/dist/isNumber.d.ts +17 -0
- package/dist/isNumber.js +19 -0
- package/dist/{base/isObject.cjs → isObject.cjs} +1 -1
- package/dist/{base/isObject.d.cts → isObject.d.cts} +2 -3
- package/dist/{base/isObject.d.ts → isObject.d.ts} +2 -3
- package/dist/{base/isObject.js → isObject.js} +1 -3
- package/dist/isPrimitive.cjs +21 -0
- package/dist/isPrimitive.d.cts +18 -0
- package/dist/isPrimitive.d.ts +19 -0
- package/dist/isPrimitive.js +21 -0
- package/dist/isPromise.cjs +18 -0
- package/dist/isPromise.d.cts +15 -0
- package/dist/isPromise.d.ts +16 -0
- package/dist/isPromise.js +18 -0
- package/dist/{base/isString.cjs → isString.cjs} +1 -1
- package/dist/{base/isString.d.cts → isString.d.cts} +2 -3
- package/dist/{base/isString.d.ts → isString.d.ts} +2 -3
- package/dist/{base/isString.js → isString.js} +1 -3
- package/dist/joinUrl.cjs +25 -0
- package/dist/joinUrl.d.cts +19 -0
- package/dist/joinUrl.d.ts +20 -0
- package/dist/joinUrl.js +25 -0
- package/dist/{string/kebabCase.d.cts → kebabCase.d.cts} +1 -2
- package/dist/{string/kebabCase.d.ts → kebabCase.d.ts} +1 -2
- package/dist/{string/kebabCase.js → kebabCase.js} +0 -2
- package/dist/lazyLoadImages.cjs +36 -0
- package/dist/lazyLoadImages.d.cts +19 -0
- package/dist/lazyLoadImages.d.ts +20 -0
- package/dist/lazyLoadImages.js +36 -0
- package/dist/listToTree.cjs +25 -0
- package/dist/listToTree.d.cts +32 -0
- package/dist/listToTree.d.ts +33 -0
- package/dist/listToTree.js +25 -0
- package/dist/mapValues.cjs +25 -0
- package/dist/mapValues.d.cts +20 -0
- package/dist/mapValues.d.ts +21 -0
- package/dist/mapValues.js +25 -0
- package/dist/maskString.cjs +28 -0
- package/dist/maskString.d.cts +24 -0
- package/dist/maskString.d.ts +25 -0
- package/dist/maskString.js +28 -0
- package/dist/memoize.cjs +32 -0
- package/dist/memoize.d.cts +22 -0
- package/dist/memoize.d.ts +23 -0
- package/dist/memoize.js +32 -0
- package/dist/off.cjs +22 -0
- package/dist/off.d.cts +19 -0
- package/dist/off.d.ts +20 -0
- package/dist/off.js +22 -0
- package/dist/omit.cjs +23 -0
- package/dist/omit.d.cts +17 -0
- package/dist/omit.d.ts +18 -0
- package/dist/omit.js +23 -0
- package/dist/on.cjs +21 -0
- package/dist/on.d.cts +18 -0
- package/dist/on.d.ts +19 -0
- package/dist/on.js +21 -0
- package/dist/once.cjs +31 -0
- package/dist/once.d.cts +20 -0
- package/dist/once.d.ts +21 -0
- package/dist/once.js +31 -0
- package/dist/parseQueryString.cjs +48 -0
- package/dist/parseQueryString.d.cts +21 -0
- package/dist/parseQueryString.d.ts +22 -0
- package/dist/parseQueryString.js +48 -0
- package/dist/pascalCase.cjs +18 -0
- package/dist/pascalCase.d.cts +15 -0
- package/dist/pascalCase.d.ts +16 -0
- package/dist/pascalCase.js +18 -0
- package/dist/pick.cjs +22 -0
- package/dist/pick.d.cts +17 -0
- package/dist/pick.d.ts +18 -0
- package/dist/pick.js +22 -0
- package/dist/{number/randomInt.cjs → randomInt.cjs} +1 -1
- package/dist/{number/randomInt.d.cts → randomInt.d.cts} +2 -3
- package/dist/{number/randomInt.d.ts → randomInt.d.ts} +2 -3
- package/dist/{number/randomInt.js → randomInt.js} +1 -3
- package/dist/range.cjs +27 -0
- package/dist/range.d.cts +20 -0
- package/dist/range.d.ts +21 -0
- package/dist/range.js +27 -0
- package/dist/removeClass.cjs +19 -0
- package/dist/removeClass.d.cts +16 -0
- package/dist/removeClass.d.ts +17 -0
- package/dist/removeClass.js +19 -0
- package/dist/removeElement.cjs +17 -0
- package/dist/removeElement.d.cts +14 -0
- package/dist/removeElement.d.ts +15 -0
- package/dist/removeElement.js +17 -0
- package/dist/removeStorage.cjs +19 -0
- package/dist/removeStorage.d.cts +14 -0
- package/dist/removeStorage.d.ts +15 -0
- package/dist/removeStorage.js +19 -0
- package/dist/retry.cjs +27 -0
- package/dist/retry.d.cts +17 -0
- package/dist/retry.d.ts +18 -0
- package/dist/retry.js +27 -0
- package/dist/sample.cjs +20 -0
- package/dist/sample.d.cts +16 -0
- package/dist/sample.d.ts +17 -0
- package/dist/sample.js +20 -0
- package/dist/scrollToElement.cjs +23 -0
- package/dist/scrollToElement.d.cts +16 -0
- package/dist/scrollToElement.d.ts +17 -0
- package/dist/scrollToElement.js +23 -0
- package/dist/setCssVar.cjs +22 -0
- package/dist/setCssVar.d.cts +18 -0
- package/dist/setCssVar.d.ts +19 -0
- package/dist/setCssVar.js +22 -0
- package/dist/setStorage.cjs +25 -0
- package/dist/setStorage.d.cts +17 -0
- package/dist/setStorage.d.ts +18 -0
- package/dist/setStorage.js +25 -0
- package/dist/setStyle.cjs +22 -0
- package/dist/setStyle.d.cts +19 -0
- package/dist/setStyle.d.ts +20 -0
- package/dist/setStyle.js +22 -0
- package/dist/{array/shuffle.cjs → shuffle.cjs} +1 -1
- package/dist/{array/shuffle.d.cts → shuffle.d.cts} +2 -3
- package/dist/{array/shuffle.d.ts → shuffle.d.ts} +2 -3
- package/dist/{array/shuffle.js → shuffle.js} +1 -3
- package/dist/snakeCase.cjs +18 -0
- package/dist/snakeCase.d.cts +15 -0
- package/dist/snakeCase.d.ts +16 -0
- package/dist/snakeCase.js +18 -0
- package/dist/sortBy.cjs +30 -0
- package/dist/sortBy.d.cts +20 -0
- package/dist/sortBy.d.ts +21 -0
- package/dist/sortBy.js +30 -0
- package/dist/stringifyQueryString.cjs +38 -0
- package/dist/stringifyQueryString.d.cts +21 -0
- package/dist/stringifyQueryString.d.ts +22 -0
- package/dist/stringifyQueryString.js +38 -0
- package/dist/{function/throttle.cjs → throttle.cjs} +1 -1
- package/dist/{function/throttle.d.cts → throttle.d.cts} +2 -3
- package/dist/{function/throttle.d.ts → throttle.d.ts} +2 -3
- package/dist/{function/throttle.js → throttle.js} +1 -3
- package/dist/toggleClass.cjs +22 -0
- package/dist/toggleClass.d.cts +19 -0
- package/dist/toggleClass.d.ts +20 -0
- package/dist/toggleClass.js +22 -0
- package/dist/treeFind.cjs +34 -0
- package/dist/treeFind.d.cts +25 -0
- package/dist/treeFind.d.ts +26 -0
- package/dist/treeFind.js +34 -0
- package/dist/treeToList.cjs +33 -0
- package/dist/treeToList.d.cts +24 -0
- package/dist/treeToList.d.ts +25 -0
- package/dist/treeToList.js +33 -0
- package/dist/truncate.cjs +23 -0
- package/dist/truncate.d.cts +19 -0
- package/dist/truncate.d.ts +20 -0
- package/dist/truncate.js +23 -0
- package/dist/uniqBy.cjs +30 -0
- package/dist/uniqBy.d.cts +20 -0
- package/dist/uniqBy.d.ts +21 -0
- package/dist/uniqBy.js +30 -0
- package/dist/{array/unique.cjs → unique.cjs} +1 -1
- package/dist/{array/unique.d.cts → unique.d.cts} +2 -3
- package/dist/{array/unique.d.ts → unique.d.ts} +2 -3
- package/dist/{array/unique.js → unique.js} +1 -3
- package/dist/uuid.cjs +23 -0
- package/dist/uuid.d.cts +16 -0
- package/dist/uuid.d.ts +17 -0
- package/dist/uuid.js +23 -0
- package/dist/validateEmail.cjs +19 -0
- package/dist/validateEmail.d.cts +16 -0
- package/dist/validateEmail.d.ts +17 -0
- package/dist/validateEmail.js +19 -0
- package/dist/validateIdCard.cjs +62 -0
- package/dist/validateIdCard.d.cts +15 -0
- package/dist/validateIdCard.d.ts +16 -0
- package/dist/validateIdCard.js +62 -0
- package/dist/validatePhone.cjs +19 -0
- package/dist/validatePhone.d.cts +16 -0
- package/dist/validatePhone.d.ts +17 -0
- package/dist/validatePhone.js +19 -0
- package/package.json +351 -58
- package/dist/array/chunk.d.cts.map +0 -1
- package/dist/array/chunk.d.ts.map +0 -1
- package/dist/array/chunk.js.map +0 -1
- package/dist/array/flatten.d.cts.map +0 -1
- package/dist/array/flatten.d.ts.map +0 -1
- package/dist/array/flatten.js.map +0 -1
- package/dist/array/shuffle.d.cts.map +0 -1
- package/dist/array/shuffle.d.ts.map +0 -1
- package/dist/array/shuffle.js.map +0 -1
- package/dist/array/unique.d.cts.map +0 -1
- package/dist/array/unique.d.ts.map +0 -1
- package/dist/array/unique.js.map +0 -1
- package/dist/base/deepClone.d.cts.map +0 -1
- package/dist/base/deepClone.d.ts.map +0 -1
- package/dist/base/deepClone.js.map +0 -1
- package/dist/base/isArray.d.cts.map +0 -1
- package/dist/base/isArray.d.ts.map +0 -1
- package/dist/base/isArray.js.map +0 -1
- package/dist/base/isObject.d.cts.map +0 -1
- package/dist/base/isObject.d.ts.map +0 -1
- package/dist/base/isObject.js.map +0 -1
- package/dist/base/isString.d.cts.map +0 -1
- package/dist/base/isString.d.ts.map +0 -1
- package/dist/base/isString.js.map +0 -1
- package/dist/date/formatDate.d.cts.map +0 -1
- package/dist/date/formatDate.d.ts.map +0 -1
- package/dist/date/formatDate.js.map +0 -1
- package/dist/date/getRelativeTime.d.cts.map +0 -1
- package/dist/date/getRelativeTime.d.ts.map +0 -1
- package/dist/date/getRelativeTime.js.map +0 -1
- package/dist/function/debounce.d.cts.map +0 -1
- package/dist/function/debounce.d.ts.map +0 -1
- package/dist/function/debounce.js.map +0 -1
- package/dist/function/throttle.d.cts.map +0 -1
- package/dist/function/throttle.d.ts.map +0 -1
- package/dist/function/throttle.js.map +0 -1
- package/dist/number/clamp.d.cts.map +0 -1
- package/dist/number/clamp.d.ts.map +0 -1
- package/dist/number/clamp.js.map +0 -1
- package/dist/number/formatThousands.d.cts.map +0 -1
- package/dist/number/formatThousands.d.ts.map +0 -1
- package/dist/number/formatThousands.js.map +0 -1
- package/dist/number/randomInt.d.cts.map +0 -1
- package/dist/number/randomInt.d.ts.map +0 -1
- package/dist/number/randomInt.js.map +0 -1
- package/dist/string/camelCase.d.cts.map +0 -1
- package/dist/string/camelCase.d.ts.map +0 -1
- package/dist/string/camelCase.js.map +0 -1
- package/dist/string/capitalize.d.cts.map +0 -1
- package/dist/string/capitalize.d.ts.map +0 -1
- package/dist/string/capitalize.js.map +0 -1
- package/dist/string/kebabCase.d.cts.map +0 -1
- package/dist/string/kebabCase.d.ts.map +0 -1
- package/dist/string/kebabCase.js.map +0 -1
- /package/dist/{string/kebabCase.cjs → kebabCase.cjs} +0 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/dom/insertAfter/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 将元素插入到目标元素之后
|
|
4
|
+
*
|
|
5
|
+
* @param el - 要插入的新元素
|
|
6
|
+
* @param target - 目标元素
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import insertAfter from '@tanwan/utils/insertAfter'
|
|
11
|
+
* insertAfter(newEl, existingEl)
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
declare function insertAfter(el: Node, target: Node): void;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { insertAfter as default };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/dom/insertAfter/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 将元素插入到目标元素之后
|
|
4
|
+
*
|
|
5
|
+
* @param el - 要插入的新元素
|
|
6
|
+
* @param target - 目标元素
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import insertAfter from '@tanwan/utils/insertAfter'
|
|
11
|
+
* insertAfter(newEl, existingEl)
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
function insertAfter(el, target) {
|
|
15
|
+
const parent = target.parentNode;
|
|
16
|
+
if (parent) parent.insertBefore(el, target.nextSibling);
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { insertAfter as default };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//#region src/array/intersection/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 计算两个数组的交集
|
|
4
|
+
*
|
|
5
|
+
* @param a - 数组 A
|
|
6
|
+
* @param b - 数组 B
|
|
7
|
+
* @returns 交集新数组
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import intersection from '@tanwan/utils/intersection'
|
|
12
|
+
* intersection([1, 2, 3], [2, 3, 4])
|
|
13
|
+
* // [2, 3]
|
|
14
|
+
*
|
|
15
|
+
* intersection(['a', 'b'], ['b', 'c'])
|
|
16
|
+
* // ['b']
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
function intersection(a, b) {
|
|
20
|
+
const bSet = new Set(b);
|
|
21
|
+
return a.filter((item) => bSet.has(item));
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
module.exports = intersection;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/array/intersection/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 计算两个数组的交集
|
|
4
|
+
*
|
|
5
|
+
* @param a - 数组 A
|
|
6
|
+
* @param b - 数组 B
|
|
7
|
+
* @returns 交集新数组
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import intersection from '@tanwan/utils/intersection'
|
|
12
|
+
* intersection([1, 2, 3], [2, 3, 4])
|
|
13
|
+
* // [2, 3]
|
|
14
|
+
*
|
|
15
|
+
* intersection(['a', 'b'], ['b', 'c'])
|
|
16
|
+
* // ['b']
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
declare function intersection<T>(a: T[], b: T[]): T[];
|
|
20
|
+
export = intersection;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/array/intersection/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 计算两个数组的交集
|
|
4
|
+
*
|
|
5
|
+
* @param a - 数组 A
|
|
6
|
+
* @param b - 数组 B
|
|
7
|
+
* @returns 交集新数组
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import intersection from '@tanwan/utils/intersection'
|
|
12
|
+
* intersection([1, 2, 3], [2, 3, 4])
|
|
13
|
+
* // [2, 3]
|
|
14
|
+
*
|
|
15
|
+
* intersection(['a', 'b'], ['b', 'c'])
|
|
16
|
+
* // ['b']
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
declare function intersection<T>(a: T[], b: T[]): T[];
|
|
20
|
+
//#endregion
|
|
21
|
+
export { intersection as default };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//#region src/array/intersection/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 计算两个数组的交集
|
|
4
|
+
*
|
|
5
|
+
* @param a - 数组 A
|
|
6
|
+
* @param b - 数组 B
|
|
7
|
+
* @returns 交集新数组
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import intersection from '@tanwan/utils/intersection'
|
|
12
|
+
* intersection([1, 2, 3], [2, 3, 4])
|
|
13
|
+
* // [2, 3]
|
|
14
|
+
*
|
|
15
|
+
* intersection(['a', 'b'], ['b', 'c'])
|
|
16
|
+
* // ['b']
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
function intersection(a, b) {
|
|
20
|
+
const bSet = new Set(b);
|
|
21
|
+
return a.filter((item) => bSet.has(item));
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { intersection as default };
|
package/dist/invert.cjs
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/object/invert/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 交换对象的键和值
|
|
4
|
+
*
|
|
5
|
+
* @param obj - 源对象,值必须可作为键(string / number / symbol)
|
|
6
|
+
* @returns 键值互换后的新对象
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import invert from '@tanwan/utils/invert'
|
|
11
|
+
* invert({ a: 1, b: 2 })
|
|
12
|
+
* // { '1': 'a', '2': 'b' }
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
function invert(obj) {
|
|
16
|
+
const result = {};
|
|
17
|
+
for (const key of Object.keys(obj)) result[String(obj[key])] = key;
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
module.exports = invert;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/object/invert/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 交换对象的键和值
|
|
4
|
+
*
|
|
5
|
+
* @param obj - 源对象,值必须可作为键(string / number / symbol)
|
|
6
|
+
* @returns 键值互换后的新对象
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import invert from '@tanwan/utils/invert'
|
|
11
|
+
* invert({ a: 1, b: 2 })
|
|
12
|
+
* // { '1': 'a', '2': 'b' }
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
declare function invert(obj: Record<string, string | number | symbol>): Record<string, string>;
|
|
16
|
+
export = invert;
|
package/dist/invert.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/object/invert/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 交换对象的键和值
|
|
4
|
+
*
|
|
5
|
+
* @param obj - 源对象,值必须可作为键(string / number / symbol)
|
|
6
|
+
* @returns 键值互换后的新对象
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import invert from '@tanwan/utils/invert'
|
|
11
|
+
* invert({ a: 1, b: 2 })
|
|
12
|
+
* // { '1': 'a', '2': 'b' }
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
declare function invert(obj: Record<string, string | number | symbol>): Record<string, string>;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { invert as default };
|
package/dist/invert.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/object/invert/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 交换对象的键和值
|
|
4
|
+
*
|
|
5
|
+
* @param obj - 源对象,值必须可作为键(string / number / symbol)
|
|
6
|
+
* @returns 键值互换后的新对象
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import invert from '@tanwan/utils/invert'
|
|
11
|
+
* invert({ a: 1, b: 2 })
|
|
12
|
+
* // { '1': 'a', '2': 'b' }
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
function invert(obj) {
|
|
16
|
+
const result = {};
|
|
17
|
+
for (const key of Object.keys(obj)) result[String(obj[key])] = key;
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
export { invert as default };
|
|
@@ -3,11 +3,10 @@
|
|
|
3
3
|
* 检测变量是否为数组
|
|
4
4
|
* @example
|
|
5
5
|
* ```ts
|
|
6
|
-
* import isArray from '@
|
|
6
|
+
* import isArray from '@tanwan/utils/isArray'
|
|
7
7
|
* isArray([1, 2, 3]) // true
|
|
8
8
|
* isArray('hello') // false
|
|
9
9
|
* ```
|
|
10
10
|
*/
|
|
11
11
|
declare function isArray<T>(v: unknown): v is T[];
|
|
12
|
-
export = isArray;
|
|
13
|
-
//# sourceMappingURL=isArray.d.cts.map
|
|
12
|
+
export = isArray;
|
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
* 检测变量是否为数组
|
|
4
4
|
* @example
|
|
5
5
|
* ```ts
|
|
6
|
-
* import isArray from '@
|
|
6
|
+
* import isArray from '@tanwan/utils/isArray'
|
|
7
7
|
* isArray([1, 2, 3]) // true
|
|
8
8
|
* isArray('hello') // false
|
|
9
9
|
* ```
|
|
10
10
|
*/
|
|
11
11
|
declare function isArray<T>(v: unknown): v is T[];
|
|
12
12
|
//#endregion
|
|
13
|
-
export { isArray as default };
|
|
14
|
-
//# sourceMappingURL=isArray.d.ts.map
|
|
13
|
+
export { isArray as default };
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* 检测变量是否为数组
|
|
4
4
|
* @example
|
|
5
5
|
* ```ts
|
|
6
|
-
* import isArray from '@
|
|
6
|
+
* import isArray from '@tanwan/utils/isArray'
|
|
7
7
|
* isArray([1, 2, 3]) // true
|
|
8
8
|
* isArray('hello') // false
|
|
9
9
|
* ```
|
|
@@ -13,5 +13,3 @@ function isArray(v) {
|
|
|
13
13
|
}
|
|
14
14
|
//#endregion
|
|
15
15
|
export { isArray as default };
|
|
16
|
-
|
|
17
|
-
//# sourceMappingURL=isArray.js.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/base/isBrowser/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 判断当前是否运行在浏览器环境
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import isBrowser from '@tanwan/utils/isBrowser'
|
|
8
|
+
* if (isBrowser()) {
|
|
9
|
+
* // 浏览器环境才执行的代码
|
|
10
|
+
* }
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
function isBrowser() {
|
|
14
|
+
return typeof window !== "undefined" && typeof document !== "undefined";
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
module.exports = isBrowser;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/base/isBrowser/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 判断当前是否运行在浏览器环境
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import isBrowser from '@tanwan/utils/isBrowser'
|
|
8
|
+
* if (isBrowser()) {
|
|
9
|
+
* // 浏览器环境才执行的代码
|
|
10
|
+
* }
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
declare function isBrowser(): boolean;
|
|
14
|
+
export = isBrowser;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/base/isBrowser/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 判断当前是否运行在浏览器环境
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import isBrowser from '@tanwan/utils/isBrowser'
|
|
8
|
+
* if (isBrowser()) {
|
|
9
|
+
* // 浏览器环境才执行的代码
|
|
10
|
+
* }
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
declare function isBrowser(): boolean;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { isBrowser as default };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/base/isBrowser/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 判断当前是否运行在浏览器环境
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import isBrowser from '@tanwan/utils/isBrowser'
|
|
8
|
+
* if (isBrowser()) {
|
|
9
|
+
* // 浏览器环境才执行的代码
|
|
10
|
+
* }
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
function isBrowser() {
|
|
14
|
+
return typeof window !== "undefined" && typeof document !== "undefined";
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { isBrowser as default };
|
package/dist/isDate.cjs
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/date/isDate/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 判断值是否为 Date 实例
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import isDate from '@tanwan/utils/isDate'
|
|
8
|
+
* isDate(new Date()) // true
|
|
9
|
+
* isDate('2024-01-01') // false
|
|
10
|
+
* isDate(Date.now()) // false
|
|
11
|
+
* isDate(null) // false
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
function isDate(value) {
|
|
15
|
+
return value instanceof Date;
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
module.exports = isDate;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/date/isDate/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 判断值是否为 Date 实例
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import isDate from '@tanwan/utils/isDate'
|
|
8
|
+
* isDate(new Date()) // true
|
|
9
|
+
* isDate('2024-01-01') // false
|
|
10
|
+
* isDate(Date.now()) // false
|
|
11
|
+
* isDate(null) // false
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
declare function isDate(value: unknown): value is Date;
|
|
15
|
+
export = isDate;
|
package/dist/isDate.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/date/isDate/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 判断值是否为 Date 实例
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import isDate from '@tanwan/utils/isDate'
|
|
8
|
+
* isDate(new Date()) // true
|
|
9
|
+
* isDate('2024-01-01') // false
|
|
10
|
+
* isDate(Date.now()) // false
|
|
11
|
+
* isDate(null) // false
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
declare function isDate(value: unknown): value is Date;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { isDate as default };
|
package/dist/isDate.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/date/isDate/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 判断值是否为 Date 实例
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import isDate from '@tanwan/utils/isDate'
|
|
8
|
+
* isDate(new Date()) // true
|
|
9
|
+
* isDate('2024-01-01') // false
|
|
10
|
+
* isDate(Date.now()) // false
|
|
11
|
+
* isDate(null) // false
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
function isDate(value) {
|
|
15
|
+
return value instanceof Date;
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { isDate as default };
|
package/dist/isEmpty.cjs
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const require_isObject = require("./isObject.cjs");
|
|
2
|
+
//#region src/base/isEmpty/index.ts
|
|
3
|
+
/**
|
|
4
|
+
* 判断值是否为空
|
|
5
|
+
*
|
|
6
|
+
* 以下情况视为空:
|
|
7
|
+
* - `null` / `undefined`
|
|
8
|
+
* - 空字符串 `''`
|
|
9
|
+
* - 空数组 `[]`
|
|
10
|
+
* - 普通空对象 `{}`
|
|
11
|
+
* - 空 `Map` / 空 `Set`
|
|
12
|
+
*
|
|
13
|
+
* 数字 `0`、布尔值 `false` 等视为非空
|
|
14
|
+
*
|
|
15
|
+
* @param value - 待检测的值
|
|
16
|
+
* @returns 是否为空
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import isEmpty from '@tanwan/utils/isEmpty'
|
|
21
|
+
* isEmpty(null) // true
|
|
22
|
+
* isEmpty(undefined) // true
|
|
23
|
+
* isEmpty('') // true
|
|
24
|
+
* isEmpty([]) // true
|
|
25
|
+
* isEmpty({}) // true
|
|
26
|
+
* isEmpty(new Map()) // true
|
|
27
|
+
* isEmpty(new Set()) // true
|
|
28
|
+
* isEmpty(0) // false
|
|
29
|
+
* isEmpty(false) // false
|
|
30
|
+
* isEmpty('hello') // false
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
function isEmpty(value) {
|
|
34
|
+
if (value === null || value === void 0) return true;
|
|
35
|
+
if (typeof value === "string") return value.length === 0;
|
|
36
|
+
if (Array.isArray(value)) return value.length === 0;
|
|
37
|
+
if (value instanceof Map || value instanceof Set) return value.size === 0;
|
|
38
|
+
if (require_isObject(value)) return Object.keys(value).length === 0;
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
module.exports = isEmpty;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//#region src/base/isEmpty/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 判断值是否为空
|
|
4
|
+
*
|
|
5
|
+
* 以下情况视为空:
|
|
6
|
+
* - `null` / `undefined`
|
|
7
|
+
* - 空字符串 `''`
|
|
8
|
+
* - 空数组 `[]`
|
|
9
|
+
* - 普通空对象 `{}`
|
|
10
|
+
* - 空 `Map` / 空 `Set`
|
|
11
|
+
*
|
|
12
|
+
* 数字 `0`、布尔值 `false` 等视为非空
|
|
13
|
+
*
|
|
14
|
+
* @param value - 待检测的值
|
|
15
|
+
* @returns 是否为空
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import isEmpty from '@tanwan/utils/isEmpty'
|
|
20
|
+
* isEmpty(null) // true
|
|
21
|
+
* isEmpty(undefined) // true
|
|
22
|
+
* isEmpty('') // true
|
|
23
|
+
* isEmpty([]) // true
|
|
24
|
+
* isEmpty({}) // true
|
|
25
|
+
* isEmpty(new Map()) // true
|
|
26
|
+
* isEmpty(new Set()) // true
|
|
27
|
+
* isEmpty(0) // false
|
|
28
|
+
* isEmpty(false) // false
|
|
29
|
+
* isEmpty('hello') // false
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
declare function isEmpty(value: unknown): boolean;
|
|
33
|
+
export = isEmpty;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
//#region src/base/isEmpty/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 判断值是否为空
|
|
4
|
+
*
|
|
5
|
+
* 以下情况视为空:
|
|
6
|
+
* - `null` / `undefined`
|
|
7
|
+
* - 空字符串 `''`
|
|
8
|
+
* - 空数组 `[]`
|
|
9
|
+
* - 普通空对象 `{}`
|
|
10
|
+
* - 空 `Map` / 空 `Set`
|
|
11
|
+
*
|
|
12
|
+
* 数字 `0`、布尔值 `false` 等视为非空
|
|
13
|
+
*
|
|
14
|
+
* @param value - 待检测的值
|
|
15
|
+
* @returns 是否为空
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import isEmpty from '@tanwan/utils/isEmpty'
|
|
20
|
+
* isEmpty(null) // true
|
|
21
|
+
* isEmpty(undefined) // true
|
|
22
|
+
* isEmpty('') // true
|
|
23
|
+
* isEmpty([]) // true
|
|
24
|
+
* isEmpty({}) // true
|
|
25
|
+
* isEmpty(new Map()) // true
|
|
26
|
+
* isEmpty(new Set()) // true
|
|
27
|
+
* isEmpty(0) // false
|
|
28
|
+
* isEmpty(false) // false
|
|
29
|
+
* isEmpty('hello') // false
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
declare function isEmpty(value: unknown): boolean;
|
|
33
|
+
//#endregion
|
|
34
|
+
export { isEmpty as default };
|
package/dist/isEmpty.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import isObject from "./isObject.js";
|
|
2
|
+
//#region src/base/isEmpty/index.ts
|
|
3
|
+
/**
|
|
4
|
+
* 判断值是否为空
|
|
5
|
+
*
|
|
6
|
+
* 以下情况视为空:
|
|
7
|
+
* - `null` / `undefined`
|
|
8
|
+
* - 空字符串 `''`
|
|
9
|
+
* - 空数组 `[]`
|
|
10
|
+
* - 普通空对象 `{}`
|
|
11
|
+
* - 空 `Map` / 空 `Set`
|
|
12
|
+
*
|
|
13
|
+
* 数字 `0`、布尔值 `false` 等视为非空
|
|
14
|
+
*
|
|
15
|
+
* @param value - 待检测的值
|
|
16
|
+
* @returns 是否为空
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import isEmpty from '@tanwan/utils/isEmpty'
|
|
21
|
+
* isEmpty(null) // true
|
|
22
|
+
* isEmpty(undefined) // true
|
|
23
|
+
* isEmpty('') // true
|
|
24
|
+
* isEmpty([]) // true
|
|
25
|
+
* isEmpty({}) // true
|
|
26
|
+
* isEmpty(new Map()) // true
|
|
27
|
+
* isEmpty(new Set()) // true
|
|
28
|
+
* isEmpty(0) // false
|
|
29
|
+
* isEmpty(false) // false
|
|
30
|
+
* isEmpty('hello') // false
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
function isEmpty(value) {
|
|
34
|
+
if (value === null || value === void 0) return true;
|
|
35
|
+
if (typeof value === "string") return value.length === 0;
|
|
36
|
+
if (Array.isArray(value)) return value.length === 0;
|
|
37
|
+
if (value instanceof Map || value instanceof Set) return value.size === 0;
|
|
38
|
+
if (isObject(value)) return Object.keys(value).length === 0;
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
export { isEmpty as default };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/base/isFunction/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 判断值是否为函数
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import isFunction from '@tanwan/utils/isFunction'
|
|
8
|
+
* isFunction(() => {}) // true
|
|
9
|
+
* isFunction(async () => {}) // true
|
|
10
|
+
* isFunction(function*() {}) // true
|
|
11
|
+
* isFunction(class {}) // true
|
|
12
|
+
* isFunction(null) // false
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
function isFunction(value) {
|
|
16
|
+
return typeof value === "function";
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
module.exports = isFunction;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/base/isFunction/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 判断值是否为函数
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import isFunction from '@tanwan/utils/isFunction'
|
|
8
|
+
* isFunction(() => {}) // true
|
|
9
|
+
* isFunction(async () => {}) // true
|
|
10
|
+
* isFunction(function*() {}) // true
|
|
11
|
+
* isFunction(class {}) // true
|
|
12
|
+
* isFunction(null) // false
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
declare function isFunction(value: unknown): value is Function;
|
|
16
|
+
export = isFunction;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/base/isFunction/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 判断值是否为函数
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import isFunction from '@tanwan/utils/isFunction'
|
|
8
|
+
* isFunction(() => {}) // true
|
|
9
|
+
* isFunction(async () => {}) // true
|
|
10
|
+
* isFunction(function*() {}) // true
|
|
11
|
+
* isFunction(class {}) // true
|
|
12
|
+
* isFunction(null) // false
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
declare function isFunction(value: unknown): value is Function;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { isFunction as default };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/base/isFunction/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 判断值是否为函数
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import isFunction from '@tanwan/utils/isFunction'
|
|
8
|
+
* isFunction(() => {}) // true
|
|
9
|
+
* isFunction(async () => {}) // true
|
|
10
|
+
* isFunction(function*() {}) // true
|
|
11
|
+
* isFunction(class {}) // true
|
|
12
|
+
* isFunction(null) // false
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
function isFunction(value) {
|
|
16
|
+
return typeof value === "function";
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { isFunction as default };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region src/dom/isInViewport/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 判断元素是否在可视区域内
|
|
4
|
+
*
|
|
5
|
+
* @param el - DOM 元素
|
|
6
|
+
* @param offset - 偏移量(px),正值提前触发,负值延迟触发
|
|
7
|
+
* @returns 是否在视口中
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import isInViewport from '@tanwan/utils/isInViewport'
|
|
12
|
+
* isInViewport(el) // 完全或部分在视口中
|
|
13
|
+
* isInViewport(el, 100) // 提前 100px 就认为在视口中
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
function isInViewport(el, offset = 0) {
|
|
17
|
+
const rect = el.getBoundingClientRect();
|
|
18
|
+
const { innerHeight, innerWidth } = window;
|
|
19
|
+
return rect.top < innerHeight + offset && rect.bottom > -offset && rect.left < innerWidth + offset && rect.right > -offset;
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
module.exports = isInViewport;
|