JezK
Edit File: base-fetcher.js.map
{"version":3,"file":"base-fetcher.js","names":["path","require","BaseFetcher","dest","remote","config","reporter","packageName","reference","registry","hash","Promise","resolve","reject","Error","defaultManifest","fs","lockQueue","push","mkdirp","_fetch","readManifest","code","normalizeManifest","pkg","bin","Object","keys","binName","binDest","src","exists","chmod","process","platform","lockMutex","unlockMutex","symlink","writeFile","join","constants","METADATA_FILENAME","JSON","stringify","manifest","artifacts","cached"],"sourceRoot":"../../src","sources":["fetchers/base-fetcher.js"],"sourcesContent":["/* @flow */\n/* eslint no-unused-vars: 0 */\n\nimport type Reporter from '../reporters/base-reporter.js';\nimport type {PackageRemote, FetchedMetadata, FetchedOverride} from '../types.js';\nimport type {RegistryNames} from '../registries/index.js';\nimport type Config from '../config.js';\nimport normalizeManifest from '../util/normalize-manifest/index.js';\nimport * as constants from '../constants.js';\nimport * as fs from '../util/fs.js';\nimport lockMutex from '../util/mutex.js';\n\nconst path = require('path');\n\nexport default class BaseFetcher {\n constructor(dest: string, remote: PackageRemote, config: Config) {\n this.reporter = config.reporter;\n this.packageName = remote.packageName;\n this.reference = remote.reference;\n this.registry = remote.registry;\n this.hash = remote.hash;\n this.remote = remote;\n this.config = config;\n this.dest = dest;\n }\n\n reporter: Reporter;\n remote: PackageRemote;\n registry: RegistryNames;\n packageName: ?string;\n reference: string;\n config: Config;\n hash: ?string;\n dest: string;\n\n setupMirrorFromCache(): Promise<?string> {\n // fetcher subclasses may use this to perform actions such as copying over a cached tarball to the offline\n // mirror etc\n return Promise.resolve();\n }\n\n _fetch(): Promise<FetchedOverride> {\n return Promise.reject(new Error('Not implemented'));\n }\n\n fetch(defaultManifest: ?Object): Promise<FetchedMetadata> {\n return fs.lockQueue.push(this.dest, async (): Promise<FetchedMetadata> => {\n await fs.mkdirp(this.dest);\n\n // fetch package and get the hash\n const {hash} = await this._fetch();\n\n const pkg = await (async () => {\n // load the new normalized manifest\n try {\n return await this.config.readManifest(this.dest, this.registry);\n } catch (e) {\n if (e.code === 'ENOENT' && defaultManifest) {\n return normalizeManifest(defaultManifest, this.dest, this.config, false);\n } else {\n throw e;\n }\n }\n })();\n\n if (pkg.bin) {\n for (const binName of Object.keys(pkg.bin)) {\n const binDest = `${this.dest}/.bin`;\n\n // Using any sort of absolute path here would prevent makePortableProxyScript from preserving symlinks when\n // calling the binary\n const src = path.resolve(this.dest, pkg.bin[binName]);\n\n if (await fs.exists(src)) {\n // We ensure that the target is executable\n await fs.chmod(src, 0o755);\n }\n\n await fs.mkdirp(binDest);\n if (process.platform === 'win32') {\n const unlockMutex = await lockMutex(src);\n try {\n ;\n } finally {\n unlockMutex();\n }\n } else {\n await fs.symlink(src, `${binDest}/${binName}`);\n }\n }\n }\n\n await fs.writeFile(\n path.join(this.dest, constants.METADATA_FILENAME),\n JSON.stringify(\n {\n manifest: pkg,\n artifacts: [],\n remote: this.remote,\n registry: this.registry,\n hash,\n },\n null,\n ' ',\n ),\n );\n\n return {\n hash,\n dest: this.dest,\n package: pkg,\n cached: false,\n };\n });\n }\n}\n"],"mappings":"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"}