Skip to content

Commit

Permalink
Rewrite to generalize mappings (fix #13) and global cache (fix #50)
Browse files Browse the repository at this point in the history
* Support mapping defined by `Map` or `WeakMap`
* All function mappings are now automatically dynamic;
  no need to wrap in a second layer of function.
* Can force old static behavior (for efficiency)
  via `svgtiler.static` wrapper, cached at `Mapping` level.
* Function mappings get `context` second argument in addition to `this`.
* `Context` object now shared throughout each drawing
  (so you could store extra drawing-specific data there).
* API change: `Context` no longer has `symbols` or `symbol` attributes.
* API change: No more `Symbol`, `StaticSymbol`, or `DynamicSymbol` class
  (in particular, there was a name conflict with JS's `Symbol`)
* API change: `Input` constructor supports direct loading of data
  (for easy manual creation) or immediate parsing of file data,
  as well as option setting.  This will help with #34.
* New `Tile` class represents an expanded (and possibly parsed)
  tile `<symbol>` (roughly what `Symbol` was before).
* Tile caching/deduplication now within the renderer, not by `Symbol`
  (fix #50), enabling re-use when multiple symbols expand to the same SVG.
* Fix: Don't fill in `<image>` `width`/`height` when both already set.
* Fix: Use `hasOwnProperty` and `Set`s to avoid accidentally matching
  e.g. `toString`.
  • Loading branch information
edemaine committed Aug 13, 2022
1 parent 25caba5 commit 77d106f
Show file tree
Hide file tree
Showing 2 changed files with 433 additions and 373 deletions.
Loading

0 comments on commit 77d106f

Please sign in to comment.