import { writeFileSync, readFileSync } from 'fs' import { template } from 'lodash' /** * post build step to insert code files into code files. * And the package.json version. */ cp('src/fs/package.json', 'lib/fs/package.json') cp('src/fs/bootstrap.js', 'lib/fs/bootstrap.js') cp('src/fs/README.md', 'lib/fs/README.md') inject('lib/patches/third-party-main.js') inject('lib/steps/shim.js') inject('lib/options.js', JSON.stringify(require('../package.json').version)) function inject(filename: string, version?: string) { const contents = template(readFileSync(filename, 'utf8'), { interpolate: /'\{\{([\s\S]*?)\}\}'/, })({ file: (path: string) => JSON.stringify(readFileSync(path, 'utf8')), version, }) writeFileSync(filename, contents) console.log(`Wrote: ${filename}`) } function cp(from: string, to: string) { const file = readFileSync(from) writeFileSync(to, file) console.log('Copied: ', from, 'To: ', to) }