| 391 | |
| 392 | let packageVersionCache = new Map<string, string>(); |
| 393 | function getPackageVersion(pkg: string) { |
| 394 | let version = packageVersionCache.get(pkg); |
| 395 | if (version) { |
| 396 | return version; |
| 397 | } |
| 398 | |
| 399 | let p = findPackageJSON(pkg, __filename); |
| 400 | if (p) { |
| 401 | let json = JSON.parse(fs.readFileSync(p, 'utf8')); |
| 402 | packageVersionCache.set(pkg, json.version); |
| 403 | return json.version; |
| 404 | } else { |
| 405 | throw new Error('Could not find package.json for ' + pkg); |
| 406 | } |
| 407 | } |
| 408 | |
| 409 | function resolveUrl(specifier: string, file: string) { |
| 410 | let relative = path.relative(path.resolve('pages'), path.dirname(file)).split(/[/\\]/); |