scripts/generate-exports.js (34 lines of code) (raw):
const fs = require('fs');
const path = require('path');
const SRC_DIR = path.resolve(__dirname, '../');
const TARGET_DIR = path.resolve(__dirname, '../');
function escapeSource(src) {
return src.replace(/'/g, "\\'");
}
const dtsSource =
`declare const source: string;
export = source;
`
function generate() {
console.log('Generating js exports...')
fs.readdir(SRC_DIR, (err, filenames) => {
if (err) {
throw err;
}
filenames.forEach(filename => {
if (!filename.endsWith('.svg')) {
return
}
const jsFileName = filename.replace('.svg', '.js');
const fileContent = fs.readFileSync(`${SRC_DIR}/${filename}`, 'utf-8');
const source = `module.exports = '${escapeSource(fileContent)}';`;
fs.writeFileSync(path.join(TARGET_DIR, jsFileName), source);
console.log(`Generated ${jsFileName}`)
const dtsFileName = filename.replace('.svg', '.d.ts');
fs.writeFileSync(path.join(TARGET_DIR, dtsFileName), dtsSource);
console.log(`Generated ${dtsFileName}`)
});
console.log('JS exports generated successfully');
});
}
generate();