path: joinPaths()

in packages/vscode-extension-web-ide/src/initMergeRequestContext.ts [54:88]


        path: joinPaths('/', repoRoot, x.path),
      }))
  );
};

const initMergeRequestFileDecorator = (
  disposables: vscode.Disposable[],
  mrChanges: Awaited<ReturnType<typeof getMergeRequestChanges>>,
) => {
  const mrPathsSet = createSetOfAllPaths(mrChanges.map(x => x.path));

  disposables.push(
    vscode.window.registerFileDecorationProvider(
      new MergeRequestFileDecorationProvider(mrPathsSet),
    ),
  );
};

const initMergeRequestFileSystem = (
  disposables: vscode.Disposable[],
  { mergeRequest, repoRoot }: InitMergeRequestOptions,
) => {
  // what: Apply decorators to base GitLabFileContentProvider
  const mrContentProvider = flow(
    // why: Strip the repoRoot which is passed to the FileSystemProvider
    x => new FileContentProviderWithRepoRoot(x, repoRoot),
    // why: If we receive a 404, it probably means we are adding a new file, so just treat as empty
    x => new FileContentProviderWith404AsEmpty(x),
  )(new GitLabFileContentProvider(mergeRequest.baseSha));

  disposables.push(
    vscode.workspace.registerFileSystemProvider(
      MR_SCHEME,
      new GitLabReadonlyFileSystemProvider(mrContentProvider),
      {