31 lines
1012 B
TypeScript
31 lines
1012 B
TypeScript
import { writeFileSync, readFileSync } from 'fs'
|
|
|
|
/**
|
|
* post build step to insert code files into code files.
|
|
* '{{replace:path/to/file}}' => "file contents"
|
|
* And the package.json version.
|
|
*/
|
|
//inject('plugins/nexe-daemon/lib/index.js')
|
|
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, ...replacements: string[]) {
|
|
let contents = readFileSync(filename, 'utf8')
|
|
contents = contents.replace(/('{{(.*)}}')/g, (substring: string, ...matches: string[]) => {
|
|
if (!matches || !matches[1]) {
|
|
return substring
|
|
}
|
|
const [replace, file] = matches[1].split(':')
|
|
if (replace !== 'replace') {
|
|
return substring
|
|
}
|
|
console.log('Replacing: ', substring)
|
|
return replacements[+file]
|
|
? replacements[+file]
|
|
: JSON.stringify(readFileSync(file, 'utf8'))
|
|
})
|
|
writeFileSync(filename, contents)
|
|
console.log(`Wrote: ${filename}`)
|
|
}
|