|
| 1 | +const path = require('path'); |
| 2 | +const fs = require('fs'); |
| 3 | +const { move } = require('fs-extra'); |
| 4 | +const microbundle = require('microbundle'); |
| 5 | +const getResolversName = require('./get-resolvers-name'); |
| 6 | + |
| 7 | +const IE11_PATH = 'ie11'; |
| 8 | +const OUTPUT = 'dist'; |
| 9 | + |
| 10 | +(async () => { |
| 11 | + console.log(`Build IE11 resolvers to ${OUTPUT}`); |
| 12 | + const resolvers = getResolversName(); |
| 13 | + |
| 14 | + for await (let resolver of resolvers) { |
| 15 | + console.log(`> Build ${resolver}`); |
| 16 | + const filePath = path.join(resolver, 'package.json'); |
| 17 | + |
| 18 | + const resolverPkg = JSON.parse(fs.readFileSync(filePath)); |
| 19 | + const resolverPkgCopy = Object.assign({}, resolverPkg); |
| 20 | + |
| 21 | + // Temporary update `types` field |
| 22 | + resolverPkg.types = `${IE11_PATH}/index.d.ts`; |
| 23 | + |
| 24 | + await fs.writeFileSync(filePath, JSON.stringify(resolverPkg, null, 2)); |
| 25 | + |
| 26 | + try { |
| 27 | + await microbundle({ |
| 28 | + cwd: resolver, |
| 29 | + output: IE11_PATH, |
| 30 | + globals: '@hookform/resolvers=hookformResolvers', |
| 31 | + format: 'cjs', |
| 32 | + alias: 'react-hook-form=react-hook-form/dist/index.ie11', |
| 33 | + }); |
| 34 | + |
| 35 | + // Move `./{resolver}/ie11` -> `./dist/ie11/{resolver}` |
| 36 | + await move( |
| 37 | + `${resolver}/${IE11_PATH}`, |
| 38 | + `${OUTPUT}/${IE11_PATH}/${resolver}`, |
| 39 | + { |
| 40 | + overwrite: true, |
| 41 | + }, |
| 42 | + ); |
| 43 | + } catch (error) { |
| 44 | + console.error(error); |
| 45 | + process.exit(1); |
| 46 | + } finally { |
| 47 | + // Revert back changes on `{resolver}/package.json` |
| 48 | + await fs.writeFileSync( |
| 49 | + filePath, |
| 50 | + JSON.stringify(resolverPkgCopy, null, 2), |
| 51 | + ); |
| 52 | + } |
| 53 | + } |
| 54 | +})(); |
0 commit comments