fundamentool
v1.0.0
Published
TypeScript utility library — strings, objects, arrays, async, type predicates, RPC, JSONL, Node.js and browser utilities
Downloads
41
Maintainers
Readme
fundamentool
Набор утилит для работы с данными, URL, временем, событиями и асинхронным кодом.
Установка
npm install fundamentoolСборка
npm run buildТипы и сборка попадают в dist/.
Тесты
npm testДокументация API
Генерация Typedoc в каталог docs/:
npm run docs:apiТочки входа
| Точка входа | Содержимое |
|-------------|------------|
| fundamentool | Универсальные утилиты (строки, объекты, массивы, типовые проверки и т.д.) |
| fundamentool/async | Асинхронные итераторы, параллельное выполнение, последовательность |
| fundamentool/is | Предикаты типов (isString, isEqual, isMatch и др.) |
| fundamentool/join | Утилиты склейки строк |
| fundamentool/split | Утилиты разбиения строк |
| fundamentool/jsonl | Сериализация JSON Lines |
| fundamentool/browser | Browser-утилиты (WebSocket, хранилище, роутинг, DI-провайдеры) |
| fundamentool/node | Node.js-утилиты (файловый ввод-вывод, хеш, обход директорий) |
| fundamentool/rpc | RPC-ядро: RpcClient, RpcConnect, RpcClientPool, RpcCoder |
| fundamentool/rpc/browser | Browser-воркеры: RpcClientWorker, RpcConnectWorker, RpcClientWorkerPool |
| fundamentool/rpc/node | Node.js-воркеры: NodeRpcClientWorker, NodeRpcConnectWorker, NodeRpcClientWorkerPool |
Лицензия
MIT
Основные модули
- URL:
urlParse,urlExtend,unparam,param— разбор и расширение URL, query-строки - Время:
formatTime,normalizeDate,getData— форматирование и нормализация дат - События:
attachEvent,EventEmitter,subscribe,Unsubscriber - Асинхронность:
wait,createTimeout,createInterval,createAnimationFrame - Объекты и массивы:
merge,without,extend-подобная логика,getпо пути - Строки:
half,halfLast— разбиение по разделителю - Прочее:
noop,getUniqId,tryJsonParse, провайдеры (queue, template, router и др.)
Точный список экспортов — в src/index.ts. Подробное API — в сгенерированной документации (npm run docs:api).
Публичное API (экспортируется из src/index.ts)
Утилиты для DOM и событий
- attachEvent (
attachEvent.ts): безопасная подписка на DOM-событие с возвратом функции отписки. - EventEmitter (
EventEmitter/): типизированный emitter с методамиsubscribe,once,clear,destroy. - subscribe (
subscribe.ts): утилита для добавления/удаления слушателей в произвольную коллекцию. - Unsubscriber (
Unsubscriber/): агрегатор отписок (add,unsubscribe), удобен для сборки всех unsubscribe‑функций. - noop (
noop.ts): пустая функция, часто используется как дефолтный колбэк.
Таймеры и асинхронность
- wait (
wait.ts):Promise, который резолвится через указанный timeout, с опциональным значением. - createTimeout (
createTimeout.ts): обёртка надsetTimeout, возвращает функцию отмены. - createInterval (
createInterval.ts): реализация интервала на базеsetTimeoutс контролем жизненного цикла и отменой. - createAnimationFrame (
createAnimationFrame.ts): loop наrequestAnimationFrameс учётом накопленного времени. - queueProvider (
queueProvider.ts): последовательная очередь выполнения асинхронных задач (одна задача за раз). - sendingQueue (
sendingQueue.ts): очередь промисов с аккумуляцией ошибок и методомdrain()для ожидания завершения всех.
URL, роутинг и HTTP‑окружение
- urlParse (
urlParse.ts): низкоуровневый разбор URL в богатую структуру (TUrlProps), включаяquery,hash,child. - urlExtend (
urlExtend.ts): комбинирование base URL и частичных структур URL (TUrlOptions), для модификации query/path. - unparam (
unparam.ts): разбор query‑строки в объект (в т.ч. вложенные структуры и массивы по скобочной нотации). - routeParseProvider (
routeParseProvider.ts): генератор regexp+маппера по route‑шаблону (используется вrouterProvider). - regexpMapperProvider (
regexpMapperProvider.ts): привязка regexpexecк мапперу значений (в том числе для роутинга). - routerProvider (
routerProvider.ts): сложный роутер поверхhistory/storeи React‑компонентов (Link,Routerи т.п.). - rpc (
rpc/): семейство модулей для RPC‑взаимодействия (кодирование сообщений, клиент, пул клиентов, browser/node адаптеры).
Шаблоны и текст
- templateProvider (
templateProvider.ts): mini‑template движок{{expr}}по объекту‑scope (сtemplatePartsJoinпод капотом). - convertToBreakLineHTML (
convertToBreakLineHTML.ts): преобразование текста с\nв HTML со span/br и экранированием</>. - formatTime (
formatTime.ts): форматирование дат по маске, плюс вспомогательныеnormalizeDate,getData. - dateToUTCString (
dateToUTCString.ts): компактный UTC‑строковый форматYYYYMMDDThhmmssZ. - withoutEmpty (
withoutEmpty.ts): очистка структуры отnull/undefined/ пустых строк (с контролем глубины).
Объекты и коллекции
- merge (
merge.ts): семантический merge коллекции значений. - mapperProvider (
mapperProvider.ts): маппер[values] -> {keys: values[i]}с опциональным dst. - pushArray (
pushArray.ts): эффективная конкатенация array‑like в массив. - without (
without.ts): копия объекта без указанных ключей.
Базовые утилиты
- half (
half.ts): разбиение строки на две части по разделителю. - tryJsonParse (
tryJsonParse.ts): безопасныйJSON.parseс возвратом исходного значения при ошибке. - getUniqId (
getUniqId.ts): генерация уникального строкового ID с опциональным префиксом.
Хранилища и cookie
- localStorageProvider (
localStorageProvider.ts): адаптер под localStorage. - cookieStorageProvider (
cookieStorageProvider.ts): адаптер под cookie‑хранилище.
