// 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!')); 
 | 
}); 
 |