tornado-cli/scripts/fflate.ts

40 lines
1017 B
TypeScript

/**
* Correct the resolve field of fflate as we don't use browser esm
*
* See issue https://github.com/101arrowz/fflate/issues/211
*/
import fs from 'fs';
const pkgJson = JSON.parse(fs.readFileSync('./node_modules/fflate/package.json', { encoding: 'utf8' }));
const backupJson = JSON.stringify(pkgJson, null, 2);
let changes = false
if (pkgJson.module.includes('browser')) {
pkgJson.module = './esm/index.mjs';
changes = true;
}
if (pkgJson.exports['.']?.import?.types && pkgJson.exports?.['.']?.import?.types.includes('browser')) {
pkgJson.exports['.'] = {
...pkgJson.exports['.'],
"import": {
"types": "./esm/index.d.mts",
"default": "./esm/index.mjs"
},
"require": {
"types": "./lib/index.d.ts",
"default": "./lib/index.cjs"
}
}
changes = true;
}
if (changes) {
fs.writeFileSync('./node_modules/fflate/package.backup.json', backupJson + '\n');
fs.writeFileSync('./node_modules/fflate/package.json', JSON.stringify(pkgJson, null, 2) + '\n');
}