@discomedia/utils
v1.0.52
Published
Utility functions used in Disco Media apps
Readme
Disco Media Utils
Last updated: 08 Jul 2025
A comprehensive utility library for Disco Media apps, providing both backend-complete and frontend-optimized builds.
NPM repo: https://www.npmjs.com/package/@discomedia/utils
Installation
npm install @discomedia/utilsNote: The
tslibpackage is required for building this library on GitHub Actions and other CI environments. It is included as a dependency because Rollup and TypeScript emit helpers that requiretslibat build time. Do not removetslibfrom dependencies, or CI builds will fail.
Updating
When updating this repo, it auto-publishes to NPM via a workflow in the gh_workflows repository.
For it to publish, you have to make sure this repo has the NPM_TOKEN environment variable.
Usage
This package provides two different entry points depending on your environment:
🖥️ Backend/Node.js Usage (Full Package)
For backend applications, use the main entry point which includes all utilities:
import { disco, AlpacaTradingAPI, AlpacaMarketDataAPI } from '@discomedia/utils';
// Available modules:
disco.llm.call() // OpenAI LLM calls
disco.llm.seek() // DeepSeek LLM calls
disco.llm.images() // AI image generation
disco.alpaca // Alpaca trading and market data APIs
disco.polygon // Polygon.io market data
disco.indices // Market indices data
disco.time // Market timing utilities
disco.format // Formatting utilities
disco.ta // Technical analysis functions
disco.utils // Miscellaneous utilities
disco.types // TypeScript type definitions🌐 Frontend/Browser Usage (Lightweight Package)
For frontend applications, use the lightweight entry point that excludes Node.js-specific dependencies:
import { disco, AlpacaTradingAPI, AlpacaMarketDataAPI } from '@discomedia/utils/frontend';
// Available modules (frontend-compatible only):
disco.llm.call() // OpenAI LLM calls
disco.llm.seek() // DeepSeek LLM calls
disco.llm.images() // AI image generation
disco.types // TypeScript type definitions
// Direct class imports:
const tradingAPI = new AlpacaTradingAPI(apiKey, secretKey);
const marketDataAPI = new AlpacaMarketDataAPI(apiKey, secretKey);CommonJS Usage
Both entry points support CommonJS imports:
// Full package
const { disco } = require('@discomedia/utils');
// Frontend package
const { disco } = require('@discomedia/utils/frontend');Key Differences
| Feature | Main Package | Frontend Package | |---------|-------------|------------------| | Size | Full (~651KB) | Lightweight (~570KB) | | Dependencies | All (including dotenv, Node.js APIs) | Frontend-safe only | | LLM Functions | ✅ | ✅ | | Alpaca APIs | ✅ | ✅ | | Market Data (Polygon) | ✅ | ❌ | | Market Timing | ✅ | ❌ | | Technical Analysis | ✅ | ❌ | | Formatting Utils | ✅ | ❌ | | Environment | Node.js/Backend | Browser/Frontend |
API Documentation
LLM Functions
// OpenAI calls
const response = await disco.llm.call("Your prompt here", options);
// DeepSeek calls
const response = await disco.llm.seek("Your prompt here", responseFormat, options);
// Image generation
const imageUrl = await disco.llm.images("Image description", options);Alpaca APIs
// Trading API
const tradingAPI = new AlpacaTradingAPI(apiKey, secretKey);
const account = await tradingAPI.getAccount();
// Market Data API
const marketDataAPI = new AlpacaMarketDataAPI(apiKey, secretKey);
const bars = await marketDataAPI.getBars(symbol, timeframe);Contributing to the Repository
Contributions are welcome! Please submit a pull request or open an issue for any enhancements or bug fixes.
Author
This project is a product of Disco Media.
