rsnext/packages/next/build/generate-build-id.ts

18 lines
609 B
TypeScript
Raw Normal View History

export async function generateBuildId (generate: () => string|null, fallback: () => string): Promise<string> {
let buildId = await generate()
// If there's no buildId defined we'll fall back
if (buildId === null) {
2019-04-02 10:37:04 +02:00
// We also create a new buildId if it contains the word `ad` to avoid false
// positives with ad blockers
while (!buildId || /ad/i.test(buildId)) {
buildId = fallback()
}
}
if (typeof buildId !== 'string') {
throw new Error('generateBuildId did not return a string. https://err.sh/zeit/next.js/generatebuildid-not-a-string')
}
return buildId.trim()
}