npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

chenxi-utils

v1.1.5-beta.1

Published

一个手写的 utils 库,里面涉及到了一些常用的方法使用

Downloads

39

Readme

大图

English · 中文

Installation

npm i chenxi-utils

# And

cnpm i chenxi-utils -S

utils export method

bool

// bool.js
export {
  notEmptyObject, // NON NULL OBJECT JUDGMENT ES5 WRITING
  isEmptyObject, // NON NULL OBJECT JUDGMENT ES6 WRITING
  hasOwnProperty, // Check if the object contains a property value inside
  stringComparisonSize, // string comparison size
  areTheyEqual, // compare two values
  isSupportPerformanceObserver, // whether performance testing is supported
  isSupportSendBeacon, // whether the signal is supported
}
  • Example: Introduce bool.js and you can use it
import { isEmptyObject } from 'chenxi-utils/dist/utils/bool';

calc

export {
  calcReserveBits, // numeric number of digits retention method
  calcEndTime, // countdown
  getLocalDate, // get local dates
  timeIntervalFormat, // date and time formatting
  thousandClip, // thousand position split
  arrChunk, // array cutting
  strToBinary, // strings to binary
  binaryAgent, // binary to string
  passwordEncryption, // cryptographic encryption
  passwordDecryption, // password decryption
  memoize, // memory functions
};
  • Example: Introduce calc.js and you can use it
import { memoize } from 'chenxi-utils/dist/utils/calc';

domAndBom

export {
  getURLParams, // get URL Search params
  encodeURIObject, // object transformation url parameter encryption
  // openPreviewView, // The preview file method --- is deprecated
  scrollToTop, // The scroll bar slides to the top
  scrollToBottom, // The scroll bar slides to the bottom
  smoothScroll, // Scroll the element to the visible area
  goToFullScreen, // Display elements in full screen
  goExitFullscreen, // Exit the browser fullscreen
  stopPropagation, // Stop bubbling events
  isMobile, // Whether it's on mobile
  getMobileModel, // Get the phone model
  textOverflowHide, // Text overflow hidden
  screenCapture, // Screen recording
  getExplorerInfo, // Get the browser type and its version
  onBFCacheRestore, // Listen for operations after the page is cached
  onBeforeunload, // Listen for operations before closing the page
  onHidden, // Listen to the page before hiding the callback
  onPageVisibilityChange, // Listen for callbacks displayed and hidden on the page
  executeAfterLoad, // Listen to the page after loading callbacks
  getPageURL, // Get the page address
  getSelectedText, // Gets the cursor selected text
  getDetectLanguage, // Gets the current default language
  isSupportsTouchEvents, // Check if the device supports touch events
  prefersDarkColorScheme, // View the user's preferred color scheme
  getIntersectionObserver, // Obtain cross-observation mode, mainly used for performance optimization, such as lazy loading, ad exposure detection, etc.
  getMutationObserver, // Get element structure observers, used when you need to monitor DOM structure or attribute changes
}
  • Example: Introduce domAndBom.js and you can use it
import { getURLParams } from 'chenxi-utils/dist/utils/domAndBom';

file

export {
  transformFile, // File upload compression
  openPreviewView, // Preview file method
}
  • Example: Introduce file.js and you can use it
import { transformFile } from 'chenxi-utils/dist/utils/file';

mock

export {
  getSmallWordsList, // Get the lowercase letter array ------- array class
  getBigWordsList, // Get an array of uppercase letters
  generateUppercaseLetter, // Automatically generate capital letter numbers
  randomNum, // Generate random numbers
  shuffleArray, // Scramble the array
  getRandomValue, // Get random numbers in an array
  generateYear, // Automatically generate an array of years
  generateMonth, // Automatically generate an array of months
  generateArray, // Array lengths are automatically generated

  testAreaExceeds, // Test whether the content is exceeded
  getUUID, // Universally Unique Identifier
  generateUniqueID, // Generate a unique ID

  randomString, // Generate a random string ------- string class
};
  • Example: Introduce mock.js and you can use it
import { randomString } from 'chenxi-utils/dist/utils/mock';

validate

type validateProps = {
  // 链接
  isExternal: (_val: any) => boolean;
  // 邮箱
  isEmail: (_val: any) => boolean;
  // 邮政编码
  isZipCode: (_val: any) => boolean;
  // 座机
  isTel: (_val: any) => boolean;
  // 手机
  isPhone: (_val: any) => boolean;
  // 手机加区号
  isPhoneUser: (_val: any) => boolean;
  isUSCC: (_val: any) => boolean;
  // 身份证
  isIdCardNo: (_val: any) => boolean | undefined;
  // 密码校验 - 英文大小写和数字,长度为 6-20 位
  isPassword: (_val: any) => boolean;
  // 卡片校验 - 长度 12-20 位
  isBandcard: (_val: any) => boolean;
  // 普通字符 6-20 位
  isCommonChar: (_val: any) => boolean;
  // 普通中文字符集 和 大小写英文 外加 数字
  isNormalChar: (_val: any) => boolean;
  // 非普通中文字符集
  isNotZhCN: (_val: any) => boolean;
  // 普通中文字符集
  isZhCN: (_val: any) => boolean;
  // 出生类型
  isBirthType: (_val: any) => boolean;
  // 缩写
  isAbbrev: (_val: any) => boolean;
  // 护照类型
  isPassportType: (_val: any) => boolean;
  isUSCCPolicy: (_val: any) => boolean;
  isOCC: (_val: any) => boolean;
  // 营业执照
  isBusinessLicense: (_val: any) => boolean;
  // 小写字母 和 数字
  isAlphabetNumber: (_val: any) => boolean;
  // 小写字母 和 数字 及 一些特殊字符
  isAlphabetNumberOrSpecial: (_val: any) => boolean;
  // 纯数字
  isNumber: (_val: any) => boolean;
  // 校验数字和保留两位小数
  isReserveTwoPlaces: (_val: any) => boolean;
  // 地址
  isAddress: (_val: any) => boolean;
  // html 标签
  isHtmlLabel: (_val: any) => boolean;
  /** isDateValid (检查日期是否有效)方法说明
   * @author: JasonStandFer
   * @description Desc::
   * @return boolean
   * @example::
   isDateValid('December 17, 1995 03:24:00'); // true
   isDateValid('1995-12-17T03:24:00'); // true
   isDateValid('1995-12-17 T03:24:00'); // false
   isDateValid('Duck'); // false
   isDateValid(1995, 11, 17); // true
   isDateValid(1995, 11, 17, 'Duck'); // false
   isDateValid({}); // false
   **/
  isDateValid: (..._val: any[]) => boolean;
}
  • Example: Introduce validate.js and you can use it
import { isAddress } from 'chenxi-utils/dist/utils/validate';

tool

// tool.js
export {
  copyToClipboard, // Copied to clipboard
  validateDataType, // Detect the data type
  getFileType, // Get the file type
  getBase64, // Get the base64 file encoding of the file
  deepClone, // Easy deep copying
  debounce, // debounce
  debounceMax, // debounce-Execute it now
  throttle, // throttle
  exportFile, // exportFile
  resetTargetObject, // reset Target Object
  recursionBeforeMark, // treeMarkers --- deprecated
  treeToArray, // The tree structure is flattened
  arrayToTree, // Arrays are converted to tree structures
  foreachTree, // Tree node traversal
  fuzzyQueryArray, // Fuzzy query arrays
  uniqueArrayObject, // Array objects are deduplicated based on fields
  desensitizationPhone, // The mobile phone number is desensitized
  desensitizationText, // Character desensitivity
  constantListMapping, // Constant enumeration mappings
  JSON_Parser, // json parse
  pickObjectAttr, // Select the object attribute ES5
  omitObjectAttr, // Excludes object attribute ES5
};
  • Example: Introduce tool.js and you can use it
import { isEmptyObject } from 'chenxi-utils/dist/utils/tool';

#UpdateLog

2024

05-24

  • calc file new add...
    • [x] passwordEncryption, // cryptographic encryption
    • [x] passwordDecryption, // password decryption

05-25

  • cals file update passwordDecryption method: Solve passwordDecryption method subscript exception problem

05-27

  • tool file optimization, Resolve the debounce, debounceMax, and throttle arguments parameter orientation problem

07-07

  • domAndBom file new add...
    • [x] onPageVisibilityChange, // Listen for callbacks displayed and hidden on the page

07-08

  • domAndBom 文件新增...
    • [x] getIntersectionObserver, // Obtain cross-observation mode, mainly used for performance optimization, such as lazy loading, ad exposure detection, etc.
    • [x] getMutationObserver, // Get element structure observers, used when you need to monitor DOM structure or attribute changes