mirror of
https://github.com/captbaritone/webamp.git
synced 2026-07-23 10:07:35 +00:00
This comprehensive migration includes: ### Configuration Updates - Updated root package.json with pnpm workspace configuration - Added packageManager field and pnpm overrides for graphql version - Updated GitHub Actions workflows (.github/workflows/ci.yml, code-size.yml) - Updated Netlify configuration (netlify.toml) - Updated deployment script (deploy.sh) ### Documentation Updates - Updated all README files to use pnpm instead of yarn - Updated installation and build instructions across packages: - packages/webamp/README.md - packages/webamp-modern/README.md - packages/webamp-docs/README.md - packages/ani-cursor/README.md - packages/webamp/demo/readme.md ### Lock File Migration - Removed yarn.lock - Generated pnpm-lock.yaml preserving exact dependency versions - Moved resolutions from skin-database package.json to root pnpm overrides - Created pnpm-workspace.yaml for optimized workspace configuration ### CI/CD Updates - Updated all yarn commands to use pnpm equivalents - Changed yarn workspace commands to pnpm --filter syntax - Updated cache keys to use pnpm-lock.yaml instead of yarn.lock - Added pnpm/action-setup for GitHub Actions ### Validation - Tested builds for webamp, webamp-modern, ani-cursor, webamp-docs - Tested installation and linting for skin-database - Verified dependency resolution consistency - Confirmed all scripts work with pnpm All package versions remain identical to yarn.lock, ensuring no breaking changes. |
||
|---|---|---|
| .. | ||
| src | ||
| .gitignore | ||
| babel.config.js | ||
| CHANGELOG.md | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
ani-cursor
A library for rendering Windows Animated Cursor files (.ani) in the browser by parsing out the individual frames and constructing a CSS animation.
Built to support .ani files in Winamp skins for https://webamp.org.
I wrote a blog post about this library which you can find here.
Install
npm install ani-cursor
Usage Example
import {convertAniBinaryToCSS} from 'ani-cursor';
async function applyCursor(selector, aniUrl) {
const response = await fetch(aniUrl);
const data = new Uint8Array(await response.arrayBuffer());
const style = document.createElement('style');
style.innerText = convertAniBinaryToCSS(selector, data);
document.head.appendChild(style);
}
const h1 = document.createElement('h1');
h1.id = 'pizza';
h1.innerText = 'Pizza Time!';
document.body.appendChild(h1);
applyCursor("#pizza", "https://archive.org/cors/tucows_169906_Pizza_cursor/pizza.ani");
Try the Live Demo on CodeSandbox.