All files / src/lib/helpers assets.ts

46.15% Statements 6/13
0% Branches 0/2
0% Functions 0/2
36.36% Lines 4/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 257x 7x   7x                         7x                
import path from "path";
import l10n from "shared/lib/lang/l10n";
 
export const isAssetWithinProject = (
  assetPath: string,
  projectRoot: string
) => {
  const absoluteParentPath = path.resolve(projectRoot);
  const absoluteChildPath = path.resolve(assetPath);
 
  Iif (absoluteParentPath === absoluteChildPath) {
    return true;
  }
  return absoluteChildPath.startsWith(absoluteParentPath);
};
 
export const guardAssetWithinProject = (
  assetPath: string,
  projectRoot: string
) => {
  Iif (!isAssetWithinProject(assetPath, projectRoot)) {
    throw new Error(l10n("ERROR_ASSET_DOESNT_BELONG_TO_CURRENT_PROJECT"));
  }
};