(p)
| 95 | * @returns |
| 96 | */ |
| 97 | export async function buildPackage(p) { |
| 98 | if (p && p !== 'all' && !isBuilding) { |
| 99 | try { |
| 100 | progressBar = new ProgressBar({ autoClear: true }) |
| 101 | progressBar.start({ total: progress.expectedLogs }) |
| 102 | usingProgressBar = true |
| 103 | } catch { |
| 104 | usingProgressBar = false |
| 105 | } |
| 106 | startTimer() |
| 107 | isBuilding = true |
| 108 | } |
| 109 | const packages = getPackages() |
| 110 | if (!p) { |
| 111 | return selectPackage() |
| 112 | } |
| 113 | if (p.includes('cancel')) { |
| 114 | msg.error(`The build was cancelled. 👋`) |
| 115 | return |
| 116 | } |
| 117 | if (p.includes('build all') || p === 'all') { |
| 118 | buildAllPackages(packages) |
| 119 | return |
| 120 | } else if (!startTime) { |
| 121 | progress.expectedLogs = estimatedLogs(p) |
| 122 | startTime = performance.now() |
| 123 | } |
| 124 | if (!packages.includes(p)) { |
| 125 | msg.error(`${p} is not an valid package name.`) |
| 126 | } |
| 127 | |
| 128 | if (p === 'nuxt') { |
| 129 | await buildNuxtModule() |
| 130 | } else { |
| 131 | await bundle(p, undefined, !usingProgressBar) |
| 132 | } |
| 133 | if (p === 'themes') await themesBuildExtras() |
| 134 | |
| 135 | if (p === 'inputs') await inputsBuildExtras() |
| 136 | |
| 137 | if (p === 'addons') await addonsBuildExtras() |
| 138 | |
| 139 | // // special case for Icons package |
| 140 | if (p === 'icons') { |
| 141 | const icons = getIcons() |
| 142 | await fs.mkdir( |
| 143 | resolve(packagesDir, 'icons/dist/icons'), |
| 144 | { recursive: true }, |
| 145 | (err) => { |
| 146 | if (err) throw err |
| 147 | } |
| 148 | ) |
| 149 | Object.keys(icons).forEach(async (icon) => { |
| 150 | await fs.writeFile( |
| 151 | resolve(packagesDir, 'icons/dist/icons', `${icon}.svg`), |
| 152 | icons[icon] |
| 153 | ) |
| 154 | }) |
no test coverage detected