|
1 | | -const CORE_ESM_IMPORT_PATTERN = /from ["'](#core(.*))["'](;)?/gm |
2 | | -const CORE_CJS_IMPORT_PATTERN = /require\(["'](#core(.*))["']\)(;)?/gm |
| 1 | +const CORE_ESM_IMPORT_PATTERN = /(from|import)\s+["'](#core(.*?))["'](;)?/gm |
| 2 | +const CORE_CJS_IMPORT_PATTERN = /require\(["'](#core(.*?))["']\)(;)?/gm |
3 | 3 |
|
4 | 4 | function getCoreImportPattern(isEsm) { |
5 | 5 | return isEsm ? CORE_ESM_IMPORT_PATTERN : CORE_CJS_IMPORT_PATTERN |
6 | 6 | } |
7 | 7 |
|
8 | 8 | export function hasCoreImports(fileContents, isEsm) { |
9 | | - return getCoreImportPattern(isEsm).test(fileContents) |
| 9 | + return fileContents.search(getCoreImportPattern(isEsm)) !== -1 |
10 | 10 | } |
11 | 11 |
|
12 | 12 | export function replaceCoreImports(moduleFilePath, fileContents, isEsm) { |
| 13 | + if (isEsm) { |
| 14 | + return fileContents.replace( |
| 15 | + CORE_ESM_IMPORT_PATTERN, |
| 16 | + (_, keyword, __, maybeSubmodulePath, maybeSemicolon) => { |
| 17 | + const submodulePath = maybeSubmodulePath || '/index' |
| 18 | + /** |
| 19 | + * @note Although all .d.ts are considered ESM, append different |
| 20 | + * file extension for d.mts files. |
| 21 | + */ |
| 22 | + const extension = moduleFilePath.endsWith('.d.mts') ? '.mjs' : '' |
| 23 | + const semicolon = maybeSemicolon || '' |
| 24 | + |
| 25 | + return `${keyword} "../core${submodulePath}${extension}"${semicolon}` |
| 26 | + }, |
| 27 | + ) |
| 28 | + } |
| 29 | + |
13 | 30 | return fileContents.replace( |
14 | | - getCoreImportPattern(isEsm), |
| 31 | + CORE_CJS_IMPORT_PATTERN, |
15 | 32 | (_, __, maybeSubmodulePath, maybeSemicolon) => { |
16 | 33 | const submodulePath = maybeSubmodulePath || '/index' |
17 | | - /** |
18 | | - * @note Although all .d.ts are considered ESM, append different |
19 | | - * file extension for d.mts files. |
20 | | - */ |
21 | | - const extension = moduleFilePath.endsWith('.d.mts') ? '.mjs' : '' |
22 | 34 | const semicolon = maybeSemicolon || '' |
23 | 35 |
|
24 | | - return isEsm |
25 | | - ? `from "../core${submodulePath}${extension}"${semicolon}` |
26 | | - : `require("../core${submodulePath}")${semicolon}` |
| 36 | + return `require("../core${submodulePath}")${semicolon}` |
27 | 37 | }, |
28 | 38 | ) |
29 | 39 | } |
0 commit comments