Skip to content

yulolimum/toolkit

Repository files navigation

@yulolimum/toolkit

Personal development toolkit and reusable code registry organized by domain with interactive CLI interfaces and preference caching.

Scripts

Development (dev-*)

EAS Deployment (eas-*)

  • eas:build - Interactive EAS build automation with platform/profile selection
  • eas:submit - App store submission with platform/profile selection
  • eas:update - Over-the-air updates with channel and messaging options

Linear Integration (linear-*)

Media Management (media-*)

  • media:accelerate-video - Interactive video acceleration with FFmpeg, supports audio inclusion choice and speed multiplier with preference caching
  • media:normalize-episode-names - Normalize TV episode filenames using OpenRouter LLM with Russian translation support
  • media:play-twitch-stream - Interactive Twitch stream launcher with OAuth device flow, fetches followed channels, filters live streams, and launches via streamlink
  • media:recursively-hardlink - Create hardlinks for media files to save disk space

Workflows

GitHub Actions (workflows/)

Reusable GitHub Actions workflows for CI/CD automation. Copy into your .github/workflows/ directory.

  • eas-preview-deploy.yml - Automatic EAS preview builds for PRs with fingerprint-based caching, OTA updates, and PR comments with QR codes

Configs

Shareable (configs/)

Utils

Reusable Code (utils/)

Utility functions and modules for common development tasks. Copy and paste into your projects as needed.

  • arrays.ts - Array utilities: toggleStringItem, randomArrayItem, randomArrayItems, dedupeByKey
  • colors.ts - getContrastingColor returns black or white based on background brightness (supports hex and rgb)
  • objects.ts - Object utilities: getObjPath, isObjEmpty, type-safe getObjectKeys/Values/Entries, pickBy, removeNullishValues, omit, getRootLevelObject
  • provider-registry.tsx - Compose multiple React providers without deep nesting, with conditional inclusion and typed props
  • safe-try-catch.ts - safeResolve and safeExec functions for error handling without try/catch blocks, returning { ok, value } result objects

Lib

Library Configuration (lib/)

Pre-configured library instances and setup patterns. Ready-to-use configurations for common libraries and frameworks.

  • mmkv.ts - Pre-configured MMKV instance for React Native persistent storage

Services

Service Extensions (services/)

Custom service implementations and extensions. Reusable service patterns for common application needs.

  • storage.ts - Type-safe persistent storage service with imperative and reactive APIs built on MMKV

Components

React Components (components/)

Reusable React components for common UI patterns and functionality. Copy and paste into your React/React Native projects as needed.

  • AspectImage.tsx - Expo Image wrapper that displays images at natural aspect ratio with optional max width/height constraints
  • MeasuringView.tsx - React Native View wrapper that measures its layout and passes dimensions to a render function child
  • QueryState.tsx - React component that handles different states of single or multiple Tanstack Query results with customizable UI for loading, error, empty, and success states

Hooks

React Hooks (hooks/)

Reusable React hooks for common patterns and functionality. Copy and paste into your React/React Native projects as needed.

  • useAppState.ts - React Native hook for tracking app state (active/background/inactive) with transition callbacks
  • useAuthorization.tsx - Authorization context system with hook and component for role/permission-based UI rendering with AND/OR logic support
  • useDebouncedValue.ts - Debounce a value with configurable delay, leading mode, force update, and cancel (adapted from Mantine)
  • useMultiCountPress.ts - React hook for detecting multiple consecutive presses within a time threshold (useful for debug modes, secret features, etc.)
  • useQueryRefreshControlProps.ts - React hook that provides RefreshControl props for automatically refetching React Query queries on pull-to-refresh
  • useScreenPreventRemove.ts - React Navigation hook to prevent screen unmounting based on conditions (unsaved changes, loading states, etc.)

Docs

Development (dev-*)

  • dev-eas.md - Complete guide to Expo Application Services (EAS) including builds, submissions, OTA updates, and deployment workflows
  • dev-environment-setup.md - Step-by-step environment setup guide for React Native development including tools, languages, and IDEs
  • dev-push-notifications.md - Comprehensive guide to push notification concepts and implementation approaches for React Native apps

Usage

Scripts are standalone and can be run independently. Install dependencies as needed.

# .mjs scripts can be run without dependencies
npx zx --install ./scripts/script-name.mjs

# .ts scripts can be run via tsx
npx tsx ./scripts/script-name.ts

# Shell scripts can be run directly
./scripts/script-name.sh

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors