sculp-js
v1.19.1
Published
Utils function library for modern javascript
Readme
sculp-js
A Modern JavaScript Utility Library for Web
A lightweight utility library written in TypeScript with zero dependencies, supporting ESM, CJS, and UMD formats.
API Documentation • Getting Started • Features
✨ Features
- Type-Safe: Full TypeScript support with comprehensive type definitions
- Zero Dependencies: Pure native implementation, no external libraries
- Tree Shaking: Supports selective imports for smaller bundle sizes
- Multi-Format: ESM, CJS, and UMD builds available
- Web Focused: Optimized for modern web environments
Core Utilities
isString,isNumber,isBoolean,isFunction,isObject,isArrayisDate,isRegExp,isUndefined,isNull,isError,isNaNisPrimitive,isSymbol,isBigInt,isPlainObjectisEmpty,isNodeList,isValidDate,typeIs
- Array:
arrayEach,arrayEachAsync,arrayInsertBefore,arrayRemove - Tree:
forEachDeep,mapDeep,findDeep,filterDeep,searchTreeById,flatTree,fuzzySearchTree - Object:
objectAssign,objectGet,objectHas,cloneDeep,objectPick,objectOmit
- DOM:
addClass,hasClass,removeClass,getStyle,setStyle - File:
chooseLocalFile,compressImg - Clipboard:
copyText,fallbackCopyText - Download:
downloadBlob,downloadURL,downloadData - Watermark:
genCanvasWM
- Encode/Decode:
weBtoa,weAtob,b64encode,b64decode - Validation:
isEmail,isPhone,isUrl,isIDNO,isIPv4,isIPv6
- Date:
formatDate,calculateDate,dateToStart,dateToEnd - String:
stringCamelCase,stringKebabCase,parseQueryParams,stringEscapeHTML - Math:
add,subtract,multiply,divide,numberAbbr - Functional:
debounce,throttle,once,wait
🚀 Installation
npm
npm install sculp-jsCDN
<script src="https://unpkg.com/sculp-js"></script>💡 Usage
import { forEachDeep, cloneDeep } from 'sculp-js';
// Deep traversal of tree structures
const tree = [
{
id: 1,
name: 'Parent 1',
children: [
{ id: 11, name: 'Child 1' },
{ id: 12, name: 'Child 2', children: [{ id: 121, name: 'Grandchild 1' }] }
]
},
{ id: 2, name: 'Parent 2' }
];
const names = [];
forEachDeep(tree, item => {
names.push(item.name);
});
// names = ['Parent 1', 'Child 1', 'Child 2', 'Grandchild 1', 'Parent 2']
// Deep cloning of objects
const original = { a: 1, b: { c: 2 } };
const cloned = cloneDeep(original);📦 Module Formats
Named Imports (Recommended)
// ES Modules - Named imports (tree-shaking friendly)
import { cloneDeep, forEachDeep } from 'sculp-js';
// CommonJS - Named imports
const { cloneDeep, forEachDeep } = require('sculp-js');Default Import (Full Library)
// ES Modules - Default import
import sculp from 'sculp-js';
const { cloneDeep, forEachDeep } = sculp;
// CommonJS - Default import
const sculp = require('sculp-js');
const { cloneDeep, forEachDeep } = sculp;Module-Specific Imports
Import specific modules for better tree-shaking and smaller bundle sizes:
// ES Modules - Import specific modules
import array from 'sculp-js/array';
import string from 'sculp-js/string';
import type from 'sculp-js/type';
import date from 'sculp-js/date';
import object from 'sculp-js/object';
import math from 'sculp-js/math';
import validator from 'sculp-js/validator';
// ... and more
// CommonJS - Import specific modules
const array = require('sculp-js/array');
const string = require('sculp-js/string');
const type = require('sculp-js/type');
// Usage examples
import array from 'sculp-js/array';
array.arrayEach([1, 2, 3], val => console.log(val));
import string from 'sculp-js/string';
const camelCase = string.stringCamelCase('hello-world'); // 'helloWorld'
import validator from 'sculp-js/validator';
if (validator.isEmail('[email protected]')) {
console.log('Valid email');
}Available Modules
All modules support both named and default exports:
sculp-js/array- Array utilitiessculp-js/string- String manipulationsculp-js/type- Type checkingsculp-js/date- Date formattingsculp-js/object- Object utilitiessculp-js/math- Math operationssculp-js/number- Number formattingsculp-js/url- URL parsingsculp-js/qs- Query string parsingsculp-js/path- Path utilitiessculp-js/async- Async utilitiessculp-js/func- Function utilitiessculp-js/random- Random generatorssculp-js/validator- Validation functionssculp-js/tree- Tree operationssculp-js/base64- Base64 encodingsculp-js/unique- Unique ID generatorssculp-js/variable- Variable utilitiessculp-js/clipboard- Clipboard operationssculp-js/cookie- Cookie managementsculp-js/dom- DOM utilitiessculp-js/download- Download helperssculp-js/file- File utilitiessculp-js/watermark- Watermark generationsculp-js/tooltip- Tooltip utilitiessculp-js/cloneDeep- Deep cloningsculp-js/isEqual- Deep equalitysculp-js/unicodeToolkit- Unicode utilities
📄 License
MIT License © 2023-present, chandq
