snipe/web/node_modules/magic-string-ast
pyr0ball 7a704441a6 feat(snipe): Vue 3 frontend scaffold + Docker web service
- web/: Vue 3 + Vite + UnoCSS + Pinia, dark tactical theme (amber/#0d1117)
- AppNav, ListingCard, SearchView with filters/sort, composables
  (useSnipeMode, useKonamiCode, useMotion), Pinia search store
- Steal shimmer, auction countdown, Snipe Mode easter egg all native in Vue
- docker/web/: nginx + multi-stage Dockerfile (node build → nginx serve)
- compose.yml: api (8510) + web (8509) services
- Dockerfile CMD updated to uvicorn for upcoming FastAPI layer
- Clean build: 0 TS errors, 380 modules
2026-03-25 15:11:35 -07:00
..
LICENSE feat(snipe): Vue 3 frontend scaffold + Docker web service 2026-03-25 15:11:35 -07:00
package.json feat(snipe): Vue 3 frontend scaffold + Docker web service 2026-03-25 15:11:35 -07:00
README.md feat(snipe): Vue 3 frontend scaffold + Docker web service 2026-03-25 15:11:35 -07:00

magic-string-ast

npm version npm downloads JSR Unit Test

magic-string with AST shortcut.

Install

# npm
npm i magic-string-ast

# jsr
npx jsr add -D @sxzz/magic-string-ast

Usage

import { MagicStringAST } from 'magic-string-ast'

const offset = 0
const node = {
  // AST node with `start` and `end` properties
  start: 6,
  end: 7,
  // ...
}

const s = new MagicStringAST('const a = 1')
s.sliceNode(node, { offset }) // 'a'
s.removeNode(node)
s.moveNode(node, 0)
s.overwriteNode(node, 'foo')

// support source-map, inspired by muggle-string.
s.replaceRange(5, 5, '(', expression, ')') // appendLeft
s.replaceRange(5, 8, '(', expression, ')') // overwrite
s.replaceRange(5, 8) // remove

For more APIs, see docs and magic-string.

Sponsors

License

MIT License © 2023-PRESENT Kevin Deng