All files / src/scripts/createProject processMagicComments.ts

100% Statements 15/15
100% Branches 0/0
100% Functions 6/6
100% Lines 13/13

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 25 26 27 28 29 301x   1x 2x 2x   2x           1x 2x   1x   2x   2x           1x 2x 2x    
import fs from 'fs';
 
const removeMagicComments = async (absoluteFilePath: string): Promise<void> => {
  const removeDevMagicComment = (source: string): string => source.replace(/\s+(\/\/ @core-development-only-start)(.*?)(\/\/ @core-development-only-end)/sg, '');
  const fileContent = fs.readFileSync(absoluteFilePath, { encoding: 'utf8' });
 
  return fs.writeFileSync(
    absoluteFilePath,
    removeDevMagicComment(fileContent)
  );
};
 
const uncommentProjectOnly = async (absoluteFilePath: string): Promise<void> => {
  const uncommentProjectOnly = (source: string): string => source.replace(
    /\s+(\/\* project-only-start)(.*?)\s+(project-only-end \*\/)/sg,
    (_, commentStart, partToUncomment) => partToUncomment
  );
  const fileContent = fs.readFileSync(absoluteFilePath, { encoding: 'utf8' });
 
  return fs.writeFileSync(
    absoluteFilePath,
    uncommentProjectOnly(fileContent)
  );
};
 
export default async (nuxtConfigPath: string) => {
  await removeMagicComments(nuxtConfigPath);
  await uncommentProjectOnly(nuxtConfigPath);
};