Files
xen-orchestra/packages/vhd-lib/src/_resolveAlias.js
2021-11-08 14:46:00 +01:00

19 lines
632 B
JavaScript

import resolveRelativeFromFile from './_resolveRelativeFromFile'
export function isVhdAlias(filename) {
return filename.endsWith('.alias.vhd')
}
export async function resolveAlias(handler, filename) {
if (!isVhdAlias(filename)) {
return filename
}
const aliasContent = (await handler.readFile(filename)).toString().trim()
// also handle circular references and unreasonnably long chains
if (isVhdAlias(aliasContent)) {
throw new Error(`Chaining alias is forbidden ${filename} to ${aliasContent}`)
}
// the target is relative to the alias location
return resolveRelativeFromFile(filename, aliasContent)
}