Last updated 2 years ago by shanebdavis .
ISC · Original npm · Tarball · package.json
$ cnpm install caffeine-source-map 
SYNC missed versions from official npm registry.


  • Primary purpose: Generate source maps
  • Secondary purposes:
    • Consume source-maps in a simple-to-understand way, primarily for validation. The source-map npm is probably a faster choice for consuming source-maps for real-world uses, but it's clunky.
  • Future:
    • Source-map validation
    • Source-map visualization


npm install caffeine-source-map

Based on

Why rewrite source-map npm?

  • Performance:
    • source-map npm's generator isn't very performance-optimized. It creates at least 3 objects per sourcemap segment generated. CaffeineSourceMap generates no extra objects beyond those needed to create the SourceNode tree.
      • CaffeineScript generates a structure of nested arrays. Using source-map, I have to compactFlatten them first, which means creating more objects and iterating over the contents twice. If a SourceNode is JUST a string, no need to create an array.
    • Since CaffeineSourceMap works with sourceIndexes, if we don't actually generate a sourceMap, we never have to compute the lines and columns and yet we can still use CaffeineSourceMap to output the generated code.
  • Simplicity:
    • As a single-file compiler, we can dramatically simplify the API.
    • CaffeineSourceMap.SourceNode allows @children to be:
      • string
      • sourceNode
      • null / undefined
      • or an arbitrarily, nested array-structure of the above.
    • CaffeineSourceMapWe works in sourceIndex-space most the time. Code-generation doesn't have to think about lines and columns. Only CaffeineSourceMap needs to actually worry about lines and columns.
  • Consistency:
    • both column AND LINE are 0-based, same as the SourceMapV3 standard. I had so many off-by-one bugs with source-map npm!

Current Tags

  • 2.0.0                                ...           latest (2 years ago)

5 Versions

  • 2.0.0                                ...           2 years ago
  • 1.1.0                                ...           2 years ago
  • 1.0.2                                ...           2 years ago
  • 1.0.1                                ...           2 years ago
  • 1.0.0                                ...           2 years ago
Maintainers (1)
Today 0
This Week 0
This Month 2
Last Day 0
Last Week 1
Last Month 5
Dev Dependencies (0)
Dependents (1)

Copyright 2014 - 2017 © |