// Porcess generated lib files. // Like adding js extension in the import statement. const { transformImport } = require('./transformImport'); const globby = require('globby'); const path = require('path'); const fs = require('fs'); const chalk = require('chalk'); const rollup = require('rollup'); const nodeResolve = require('@rollup/plugin-node-resolve').default; function addJsExtension(moduleName) { // Ignore 'tslib' if (!(moduleName.startsWith('.'))) { return moduleName; } if (moduleName.endsWith('.ts')) { // Replace ts with js return moduleName.replace(/\.ts$/, '.js'); } else if (moduleName.endsWith('.js')) { return moduleName; } else { return moduleName + '.js' } } async function transform() { const libFiles = await globby([ '**/*.js' ], { cwd: path.join(__dirname, '../lib'), absolute: true }); if (libFiles.length === 0) { throw new Error('No lib files found.') } for (let file of libFiles) { const code = fs.readFileSync(file, 'utf-8'); fs.writeFileSync(file, transformImport(code, addJsExtension), 'utf-8'); } // Transform index; const indexFile = path.join(__dirname, '../index.js'); fs.writeFileSync( indexFile, transformImport( fs.readFileSync(indexFile, 'utf-8'), (mduleName) => addJsExtension(mduleName).replace('./src', './lib') ) ) } transform().then(() => { console.log(chalk.green('Added .js extensions.')); console.log(chalk.gray('Start testing generated libs...')); }).then(() => { return rollup.rollup({ input: path.resolve(__dirname, '../index.js'), plugins: [nodeResolve()] }); }).then(() => { console.log(chalk.green('Libs can be bundled!')); });