rebase-path.ts 741 Bytes
/*
  Copyright 2019 Google LLC

  Use of this source code is governed by an MIT-style
  license that can be found in the LICENSE file or at
  https://opensource.org/licenses/MIT.
*/

import upath from 'upath';

export function rebasePath({
  baseDirectory,
  file,
}: {
  baseDirectory: string;
  file: string;
}): string {
  // The initial path is relative to the current directory, so make it absolute.
  const absolutePath = upath.resolve(file);

  // Convert the absolute path so that it's relative to the baseDirectory.
  const relativePath = upath.relative(baseDirectory, absolutePath);

  // Remove any leading ./ as it won't work in a glob pattern.
  const normalizedPath = upath.normalize(relativePath);

  return normalizedPath;
}