| 583 | } |
| 584 | |
| 585 | function resolveEntryFork(resolvedEntry, isFBBundle, isDev) { |
| 586 | // Pick which entry point fork to use: |
| 587 | // .modern.fb.js |
| 588 | // .classic.fb.js |
| 589 | // .fb.js |
| 590 | // .stable.js |
| 591 | // .experimental.js |
| 592 | // .js |
| 593 | // or any of those plus .development.js |
| 594 | |
| 595 | if (isFBBundle) { |
| 596 | const resolvedFBEntry = resolvedEntry.replace( |
| 597 | '.js', |
| 598 | __EXPERIMENTAL__ ? '.modern.fb.js' : '.classic.fb.js' |
| 599 | ); |
| 600 | const devFBEntry = resolvedFBEntry.replace('.js', '.development.js'); |
| 601 | if (isDev && fs.existsSync(devFBEntry)) { |
| 602 | return devFBEntry; |
| 603 | } |
| 604 | if (fs.existsSync(resolvedFBEntry)) { |
| 605 | return resolvedFBEntry; |
| 606 | } |
| 607 | const resolvedGenericFBEntry = resolvedEntry.replace('.js', '.fb.js'); |
| 608 | const devGenericFBEntry = resolvedGenericFBEntry.replace( |
| 609 | '.js', |
| 610 | '.development.js' |
| 611 | ); |
| 612 | if (isDev && fs.existsSync(devGenericFBEntry)) { |
| 613 | return devGenericFBEntry; |
| 614 | } |
| 615 | if (fs.existsSync(resolvedGenericFBEntry)) { |
| 616 | return resolvedGenericFBEntry; |
| 617 | } |
| 618 | // Even if it's a FB bundle we fallthrough to pick stable or experimental if we don't have an FB fork. |
| 619 | } |
| 620 | const resolvedForkedEntry = resolvedEntry.replace( |
| 621 | '.js', |
| 622 | __EXPERIMENTAL__ ? '.experimental.js' : '.stable.js' |
| 623 | ); |
| 624 | const devForkedEntry = resolvedForkedEntry.replace('.js', '.development.js'); |
| 625 | if (isDev && fs.existsSync(devForkedEntry)) { |
| 626 | return devForkedEntry; |
| 627 | } |
| 628 | if (fs.existsSync(resolvedForkedEntry)) { |
| 629 | return resolvedForkedEntry; |
| 630 | } |
| 631 | // Just use the plain .js one. |
| 632 | return resolvedEntry; |
| 633 | } |
| 634 | |
| 635 | async function createBundle(bundle, bundleType) { |
| 636 | const filename = getFilename(bundle, bundleType); |