Skip to content

Commit

Permalink
Non-zero exit code upon failure to validate source maps (#9132)
Browse files Browse the repository at this point in the history
The source map validator will now exit with a non-zero exit code when
an error occurs, or when the source maps cannot be validated.
  • Loading branch information
Gudahtt committed Aug 7, 2020
1 parent 6fe3a11 commit 3f59b64
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions development/sourcemap-validator.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,23 @@ const fsAsync = pify(fs)
// if not working it may error or print minified garbage
//

start().catch(console.error)
start().catch((error) => {
console.error(error)
process.exit(1)
})


async function start () {
const targetFiles = [`inpage.js`, `contentscript.js`, `ui.js`, `background.js`]
let valid = true

for (const buildName of targetFiles) {
await validateSourcemapForFile({ buildName })
const fileIsValid = await validateSourcemapForFile({ buildName })
valid = valid && fileIsValid
}

if (!valid) {
process.exit(1)
}
}

Expand Down Expand Up @@ -59,6 +69,7 @@ async function validateSourcemapForFile ({ buildName }) {

console.log(` sampling from ${consumer.sources.length} files`)
let sampleCount = 0
let valid = true

const buildLines = rawBuild.split('\n')
const targetString = 'new Error'
Expand All @@ -71,6 +82,7 @@ async function validateSourcemapForFile ({ buildName }) {
const result = consumer.originalPositionFor(position)
// warn if source content is missing
if (!result.source) {
valid = false
console.warn(`!! missing source for position: ${JSON.stringify(position)}`)
// const buildLine = buildLines[position.line - 1]
console.warn(` origin in build:`)
Expand All @@ -86,6 +98,7 @@ async function validateSourcemapForFile ({ buildName }) {
const portion = line.slice(result.column)
const isMaybeValid = portion.includes(targetString)
if (!isMaybeValid) {
valid = false
console.error('Sourcemap seems invalid:')
console.log(`\n========================== ${result.source} ====================================\n`)
console.log(line)
Expand All @@ -94,6 +107,7 @@ async function validateSourcemapForFile ({ buildName }) {
})
})
console.log(` checked ${sampleCount} samples`)
return valid
}

function indicesOf (substring, string) {
Expand Down

0 comments on commit 3f59b64

Please sign in to comment.