(config: BuildConfig, pkg: PackageJSON, errors: string[])
| 182 | } |
| 183 | |
| 184 | async function validatePackageJson(config: BuildConfig, pkg: PackageJSON, errors: string[]) { |
| 185 | async function validatePath(path: string) { |
| 186 | try { |
| 187 | await access(join(config.distQwikPkgDir, path)); |
| 188 | } catch (e: any) { |
| 189 | errors.push( |
| 190 | `Error loading file "${path}" referenced in package.json: ${String( |
| 191 | e ? e.stack || e : 'Error' |
| 192 | )}` |
| 193 | ); |
| 194 | } |
| 195 | } |
| 196 | |
| 197 | await Promise.all([validatePath(pkg.main), validatePath(pkg.types)]); |
| 198 | |
| 199 | async function validateExports(exports: Record<string, any>) { |
| 200 | const exportKeys = Object.keys(exports); |
| 201 | |
| 202 | await Promise.all( |
| 203 | exportKeys.map(async (exportKey) => { |
| 204 | const val = exports[exportKey]; |
| 205 | if (typeof val === 'string') { |
| 206 | await validatePath(val); |
| 207 | } else { |
| 208 | await validateExports(val); |
| 209 | } |
| 210 | }) |
| 211 | ); |
| 212 | } |
| 213 | |
| 214 | validateExports(pkg.exports!); |
| 215 | } |
| 216 | |
| 217 | async function validateModuleTreeshake( |
| 218 | config: BuildConfig, |
no test coverage detected
searching dependent graphs…