UNPKG

@handfish/hygen

Version:

The scalable code generator that saves you time.

45 lines (37 loc) 1.12 kB
import path from 'path' import walk from 'ignore-walk' import { RunnerConfig } from '../types' import renderFiles from './renderFiles' const ignores = [ 'prompt.js', 'index.js', '.hygenignore', '.DS_Store', '.Spotlight-V100', '.Trashes', 'ehthumbs.db', 'Thumbs.db', ] async function getFiles(dir) { const files = walk .sync({ path: dir, ignoreFiles: ['.hygenignore'] }) .map((f) => path.join(dir, f)) return files } const filterFiles = (files: string[], args) => { const filteredFiles = files .sort((a, b) => a.localeCompare(b)) // TODO: add a test to verify this sort .filter((f) => !ignores.find((ig) => f.endsWith(ig))) // TODO: add a // test for ignoring prompt.js and index.js return args.subaction ? filteredFiles.filter((file) => file.replace(args.actionfolder, '').match(args.subaction), ) : filteredFiles } const render = async (args: any, config: RunnerConfig) => { const files = await getFiles(args.actionfolder) const filteredFiles = filterFiles(files, args) return renderFiles(filteredFiles, args, config) } export default render