Gathering detailed insights and metrics for @jridgewell/gen-mapping
Gathering detailed insights and metrics for @jridgewell/gen-mapping
Gathering detailed insights and metrics for @jridgewell/gen-mapping
Gathering detailed insights and metrics for @jridgewell/gen-mapping
@jridgewell/source-map
Packages @jridgewell/trace-mapping and @jridgewell/gen-mapping into the familiar source-map API
@jridgewell/trace-mapping
Trace the original position through a source map
@jridgewell/sourcemap-codec
Encode/decode sourcemap mappings
@jridgewell/set-array
Like a Set, but provides the index of the `key` in the backing array
npm install @jridgewell/gen-mapping
Module System
Min. Node Version
Typescript Support
Node Version
NPM Version
10 Stars
54 Commits
9 Forks
4 Watching
3 Branches
2 Contributors
Updated on 25 Nov 2024
TypeScript (77.39%)
JavaScript (22.61%)
Cumulative downloads
Total Downloads
Last day
-2.2%
10,010,572
Compared to previous day
Last week
3.4%
53,916,343
Compared to previous week
Last month
13.8%
219,716,817
Compared to previous month
Last year
3%
2,310,861,603
Compared to previous year
Generate source maps
gen-mapping
allows you to generate a source map during transpilation or minification.
With a source map, you're able to trace the original location in the source file, either in Chrome's
DevTools or using a library like @jridgewell/trace-mapping
.
You may already be familiar with the source-map
package's SourceMapGenerator
. This
provides the same addMapping
and setSourceContent
API.
1npm install @jridgewell/gen-mapping
1import { GenMapping, addMapping, setSourceContent, toEncodedMap, toDecodedMap } from '@jridgewell/gen-mapping'; 2 3const map = new GenMapping({ 4 file: 'output.js', 5 sourceRoot: 'https://example.com/', 6}); 7 8setSourceContent(map, 'input.js', `function foo() {}`); 9 10addMapping(map, { 11 // Lines start at line 1, columns at column 0. 12 generated: { line: 1, column: 0 }, 13 source: 'input.js', 14 original: { line: 1, column: 0 }, 15}); 16 17addMapping(map, { 18 generated: { line: 1, column: 9 }, 19 source: 'input.js', 20 original: { line: 1, column: 9 }, 21 name: 'foo', 22}); 23 24assert.deepEqual(toDecodedMap(map), { 25 version: 3, 26 file: 'output.js', 27 names: ['foo'], 28 sourceRoot: 'https://example.com/', 29 sources: ['input.js'], 30 sourcesContent: ['function foo() {}'], 31 mappings: [ 32 [ [0, 0, 0, 0], [9, 0, 0, 9, 0] ] 33 ], 34}); 35 36assert.deepEqual(toEncodedMap(map), { 37 version: 3, 38 file: 'output.js', 39 names: ['foo'], 40 sourceRoot: 'https://example.com/', 41 sources: ['input.js'], 42 sourcesContent: ['function foo() {}'], 43 mappings: 'AAAA,SAASA', 44});
Not everything needs to be added to a sourcemap, and needless markings can cause signficantly
larger file sizes. gen-mapping
exposes maybeAddSegment
/maybeAddMapping
APIs that will
intelligently determine if this marking adds useful information. If not, the marking will be
skipped.
1import { maybeAddMapping } from '@jridgewell/gen-mapping'; 2 3const map = new GenMapping(); 4 5// Adding a sourceless marking at the beginning of a line isn't useful. 6maybeAddMapping(map, { 7 generated: { line: 1, column: 0 }, 8}); 9 10// Adding a new source marking is useful. 11maybeAddMapping(map, { 12 generated: { line: 1, column: 0 }, 13 source: 'input.js', 14 original: { line: 1, column: 0 }, 15}); 16 17// But adding another marking pointing to the exact same original location isn't, even if the 18// generated column changed. 19maybeAddMapping(map, { 20 generated: { line: 1, column: 9 }, 21 source: 'input.js', 22 original: { line: 1, column: 0 }, 23}); 24 25assert.deepEqual(toEncodedMap(map), { 26 version: 3, 27 names: [], 28 sources: ['input.js'], 29 sourcesContent: [null], 30 mappings: 'AAAA', 31});
node v18.0.0
amp.js.map
Memory Usage:
gen-mapping: addSegment 5852872 bytes
gen-mapping: addMapping 7716042 bytes
source-map-js 6143250 bytes
source-map-0.6.1 6124102 bytes
source-map-0.8.0 6121173 bytes
Smallest memory usage is gen-mapping: addSegment
Adding speed:
gen-mapping: addSegment x 441 ops/sec ±2.07% (90 runs sampled)
gen-mapping: addMapping x 350 ops/sec ±2.40% (86 runs sampled)
source-map-js: addMapping x 169 ops/sec ±2.42% (80 runs sampled)
source-map-0.6.1: addMapping x 167 ops/sec ±2.56% (80 runs sampled)
source-map-0.8.0: addMapping x 168 ops/sec ±2.52% (80 runs sampled)
Fastest is gen-mapping: addSegment
Generate speed:
gen-mapping: decoded output x 150,824,370 ops/sec ±0.07% (102 runs sampled)
gen-mapping: encoded output x 663 ops/sec ±0.22% (98 runs sampled)
source-map-js: encoded output x 197 ops/sec ±0.45% (84 runs sampled)
source-map-0.6.1: encoded output x 198 ops/sec ±0.33% (85 runs sampled)
source-map-0.8.0: encoded output x 197 ops/sec ±0.06% (93 runs sampled)
Fastest is gen-mapping: decoded output
***
babel.min.js.map
Memory Usage:
gen-mapping: addSegment 37578063 bytes
gen-mapping: addMapping 37212897 bytes
source-map-js 47638527 bytes
source-map-0.6.1 47690503 bytes
source-map-0.8.0 47470188 bytes
Smallest memory usage is gen-mapping: addMapping
Adding speed:
gen-mapping: addSegment x 31.05 ops/sec ±8.31% (43 runs sampled)
gen-mapping: addMapping x 29.83 ops/sec ±7.36% (51 runs sampled)
source-map-js: addMapping x 20.73 ops/sec ±6.22% (38 runs sampled)
source-map-0.6.1: addMapping x 20.03 ops/sec ±10.51% (38 runs sampled)
source-map-0.8.0: addMapping x 19.30 ops/sec ±8.27% (37 runs sampled)
Fastest is gen-mapping: addSegment
Generate speed:
gen-mapping: decoded output x 381,379,234 ops/sec ±0.29% (96 runs sampled)
gen-mapping: encoded output x 95.15 ops/sec ±2.98% (72 runs sampled)
source-map-js: encoded output x 15.20 ops/sec ±7.41% (33 runs sampled)
source-map-0.6.1: encoded output x 16.36 ops/sec ±10.46% (31 runs sampled)
source-map-0.8.0: encoded output x 16.06 ops/sec ±6.45% (31 runs sampled)
Fastest is gen-mapping: decoded output
***
preact.js.map
Memory Usage:
gen-mapping: addSegment 416247 bytes
gen-mapping: addMapping 419824 bytes
source-map-js 1024619 bytes
source-map-0.6.1 1146004 bytes
source-map-0.8.0 1113250 bytes
Smallest memory usage is gen-mapping: addSegment
Adding speed:
gen-mapping: addSegment x 13,755 ops/sec ±0.15% (98 runs sampled)
gen-mapping: addMapping x 13,013 ops/sec ±0.11% (101 runs sampled)
source-map-js: addMapping x 4,564 ops/sec ±0.21% (98 runs sampled)
source-map-0.6.1: addMapping x 4,562 ops/sec ±0.11% (99 runs sampled)
source-map-0.8.0: addMapping x 4,593 ops/sec ±0.11% (100 runs sampled)
Fastest is gen-mapping: addSegment
Generate speed:
gen-mapping: decoded output x 379,864,020 ops/sec ±0.23% (93 runs sampled)
gen-mapping: encoded output x 14,368 ops/sec ±4.07% (82 runs sampled)
source-map-js: encoded output x 5,261 ops/sec ±0.21% (99 runs sampled)
source-map-0.6.1: encoded output x 5,124 ops/sec ±0.58% (99 runs sampled)
source-map-0.8.0: encoded output x 5,434 ops/sec ±0.33% (96 runs sampled)
Fastest is gen-mapping: decoded output
***
react.js.map
Memory Usage:
gen-mapping: addSegment 975096 bytes
gen-mapping: addMapping 1102981 bytes
source-map-js 2918836 bytes
source-map-0.6.1 2885435 bytes
source-map-0.8.0 2874336 bytes
Smallest memory usage is gen-mapping: addSegment
Adding speed:
gen-mapping: addSegment x 4,772 ops/sec ±0.15% (100 runs sampled)
gen-mapping: addMapping x 4,456 ops/sec ±0.13% (97 runs sampled)
source-map-js: addMapping x 1,618 ops/sec ±0.24% (97 runs sampled)
source-map-0.6.1: addMapping x 1,622 ops/sec ±0.12% (99 runs sampled)
source-map-0.8.0: addMapping x 1,631 ops/sec ±0.12% (100 runs sampled)
Fastest is gen-mapping: addSegment
Generate speed:
gen-mapping: decoded output x 379,107,695 ops/sec ±0.07% (99 runs sampled)
gen-mapping: encoded output x 5,421 ops/sec ±1.60% (89 runs sampled)
source-map-js: encoded output x 2,113 ops/sec ±1.81% (98 runs sampled)
source-map-0.6.1: encoded output x 2,126 ops/sec ±0.10% (100 runs sampled)
source-map-0.8.0: encoded output x 2,176 ops/sec ±0.39% (98 runs sampled)
Fastest is gen-mapping: decoded output
No vulnerabilities found.
Reason
no dangerous workflow patterns detected
Reason
no binaries found in the repo
Reason
license file detected
Details
Reason
4 existing vulnerabilities detected
Details
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
detected GitHub workflow tokens with excessive permissions
Details
Reason
Found 1/22 approved changesets -- score normalized to 0
Reason
dependency not pinned by hash detected -- score normalized to 0
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
branch protection not enabled on development/release branches
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Score
Last Scanned on 2024-11-18
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More