aboutsummaryrefslogtreecommitdiff
path: root/node_modules/source-map-resolve/generate-source-map-resolve.js
blob: a37e393aa2055f68b756cf4c8c3cd42f6810ac6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Copyright 2014, 2017 Simon Lydell
// X11 (“MIT”) Licensed. (See LICENSE.)

var fs = require("fs")

var template = fs.readFileSync("source-map-resolve.js.template").toString()
var nodeCode = fs.readFileSync("lib/source-map-resolve-node.js").toString()

nodeCode = nodeCode

  // Remove leading comments and `require`s.
  .replace(/^\s*(?:\/\/.+\s+|var\s+\w+\s*=\s*require\([^)]+\).*\s+)*/, "")

  // Remove `urix`.
  .replace(/(\w+)\s*=\s*urix\(\1\)\s*/g, "")

  // Remove `decode-uri-component`.
  .replace(/(var readUrl = )decodeUriComponent\(([\w.]+)\)/g, "$1$2")

  // Change `module.exports = {...}` to `return {...}`.
  .replace(/module\.exports = (\{[^}]+\})\s*$/, "return $1")

  // Indent.
  .replace(/^(?!$)/gm, "  ")

var code = template.replace(/[ \t]*\{\{source-map-resolve-node.js\}\}/, nodeCode)

fs.writeFileSync("source-map-resolve.js", code)