* chore: rename part to step * chore: update metas * chore: more renaming * chore: update tooling * chore: update frontmatter * chore(tools): title testing
		
			
				
	
	
		
			31 lines
		
	
	
		
			867 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			867 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const fs = require('fs');
 | 
						|
const path = require('path');
 | 
						|
 | 
						|
// Generates an array with the output of processing filenames with an expected
 | 
						|
// format (`step-###.md`).
 | 
						|
// ['step-001.md', 'step-002.md'] => [1, 2]
 | 
						|
function getExistingStepNums(projectPath) {
 | 
						|
  return fs.readdirSync(projectPath).reduce((stepNums, fileName) => {
 | 
						|
    if (
 | 
						|
      path.extname(fileName).toLowerCase() === '.md' &&
 | 
						|
      !fileName.endsWith('final.md')
 | 
						|
    ) {
 | 
						|
      let stepNum = fileName.split('.')[0].split('-')[1];
 | 
						|
 | 
						|
      if (!/^\d{3}$/.test(stepNum)) {
 | 
						|
        throw (
 | 
						|
          `Step not created. File ${fileName} has a step number containing non-digits.` +
 | 
						|
          ' Please run reorder-steps script first.'
 | 
						|
        );
 | 
						|
      }
 | 
						|
 | 
						|
      stepNum = parseInt(stepNum, 10);
 | 
						|
      stepNums.push(stepNum);
 | 
						|
    }
 | 
						|
 | 
						|
    return stepNums;
 | 
						|
  }, []);
 | 
						|
}
 | 
						|
 | 
						|
exports.getExistingStepNums = getExistingStepNums;
 |