Skip to content

frontend js utils, achieve by ts, support esm、commonjs、umd

License

Notifications You must be signed in to change notification settings

chandq/sculp-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Node.js CI sculp-js node license:MIT Downloads:? codecov

sculp-js

API文档

TS + Rollup, native implementation, without relying on any third-party libraries, outputs products of three module modes: ESM, CJS, and UMD

Features

  • Type

    • isString
    • isBoolean
    • isNumber
    • isUndefined
    • isNull
    • isNullOrUnDef
    • isPrimitive
    • isFunction
    • isObject
    • isArray
    • typeIs
    • isJsonString
  • encode/decode

    • weAtob
    • weBtoa
  • Array

    • arrayLike 判断类数组
    • arrayEachAsync 异步遍历数组,可中断,支持倒序
  • Tree

    • forEachDeep 高性能的深度优先遍历函数, 支持continue、break,可定制id、children
    • forEachMap 高性能的深度优先遍历的Map函数, 支持continue、break,可定制id、children
    • searchTreeById 在树中找到 id 为某个值的节点,并返回上游的所有父级节点
    • formatTree 高性能的数组转树函数
    • flatTree 树转数组
    • fuzzySearchTree 模糊搜索函数,返回包含搜索字符的节点及其祖先节点的树
  • Object

    • isPlainObject
    • objectHas
    • objectAssign 合并
    • objectEach
    • objectEachAsync
    • objectGet
  • Number

    • formatNumber
  • String

    • stringCamelCase
    • stringKebabCase
    • parseQueryParams
  • Unique

    • uniqueString
    • uniqueNumber
  • Date

    • formatDate
    • dateToStart
    • dateToEnd
    • calculateDate
    • calculateDateTime
  • Download (web)

    • downloadURL
    • downloadHref
    • downloadBlob
    • downloadData
  • File (web)

    • chooseLocalFile
    • compressImg 压缩图片
  • Dom (web)

    • hasClass
    • addClass
    • removeClass
    • setStyle
    • getStyle
    • getComputedCssVal
    • getStrWidthPx
  • Watermark (web)

    • genCanvasWM
  • Clipboard (web)

    • copyText

Install

npm i sculp-js

Usage

import { forEachDeep } from 'sculp-js';

const tree = [
  { id: 1, name: 'row1' },
  {
    id: 2,
    name: 'row2',
    children: [{ id: 21, name: 'row2-1' }]
  },
  { id: 3, name: 'row3' }
];

const arr = [];
forEachDeep(tree, ({ id, name }) => {
  arr.push(name);
});
// arr will be: ['row1', 'row2', 'row2-1', 'row3'];