Skip to content

Commit f4738df

Browse files
committed
Merge branch 'master' of github.com:facebook/fbkpm
2 parents 4112050 + 7c52e1c commit f4738df

29 files changed

+286
-178
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ watch:
77
./node_modules/.bin/gulp watch
88

99
test-only:
10-
./node_modules/.bin/nyc --check-coverage --lines 85 --branches 74 --functions 85 ./node_modules/.bin/ava --verbose test/
10+
./node_modules/.bin/nyc --check-coverage --lines 85 --branches 74 --functions 85 ./node_modules/.bin/ava --verbose --concurrency 1 test/
1111
./node_modules/.bin/nyc report --reporter=lcov
1212

1313
lint:

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "fbkpm",
3-
"version": "0.4.0",
3+
"version": "0.4.6",
44
"license": "BSD-3-Clause",
55
"preferGlobal": true,
66
"main": "./index.js",

src/cli/commands/install.js

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import type { RegistryNames } from "../../registries/index.js";
1313
import type { Reporter } from "kreporters";
1414
import type Config from "../../config.js";
15-
import type { DependencyRequestPatterns } from "../../types.js";
1615
import Lockfile from "../../lockfile/index.js";
1716
import lockStringify from "../../lockfile/stringify.js";
1817
import PackageInstallScripts from "../../package-install-scripts.js";
@@ -31,18 +30,6 @@ let invariant = require("invariant");
3130
let emoji = require("node-emoji");
3231
let path = require("path");
3332

34-
type FetchResolveParams = {
35-
totalSteps: number,
36-
patterns: Array<string>,
37-
requests: DependencyRequestPatterns
38-
};
39-
40-
type FetchResolveReturn = {
41-
patterns: Array<string>,
42-
total: number,
43-
step: number
44-
};
45-
4633
type InstallActions = "install" | "update" | "uninstall";
4734

4835
export class Install {

src/package-fetcher.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ export default class PackageFetcher {
3131
reporter: Reporter;
3232
config: Config;
3333

34-
async fetch(ref: PackageReference): Promise<FetchedManifest> {
35-
let dest = this.config.generateHardModulePath(ref);
34+
async fetch(reference: PackageReference, overwriteDestination: boolean): Promise<FetchedManifest> {
35+
let dest = this.config.generateHardModulePath(reference);
3636

37-
if (await this.config.isValidModuleDest(dest)) {
37+
if (!overwriteDestination && await this.config.isValidModuleDest(dest)) {
3838
let { hash, package: pkg } = await this.config.readPackageMetadata(dest);
3939
return {
4040
package: pkg,
@@ -46,7 +46,7 @@ export default class PackageFetcher {
4646
// remove as the module may be invalid
4747
await fs.unlink(dest);
4848

49-
let remote = ref.remote;
49+
let remote = reference.remote;
5050
invariant(remote, "Missing remote");
5151

5252
let Fetcher = fetchers[remote.type];
@@ -55,7 +55,7 @@ export default class PackageFetcher {
5555
await fs.mkdirp(dest);
5656

5757
try {
58-
let fetcher = new Fetcher(remote, this.config, ref.saveForOffline);
58+
let fetcher = new Fetcher(remote, this.config, reference.saveForOffline);
5959
return await fetcher.fetch(dest);
6060
} catch (err) {
6161
try {
@@ -67,10 +67,10 @@ export default class PackageFetcher {
6767
}
6868
}
6969

70-
async maybeFetch(ref: PackageReference): Promise<?FetchedManifest> {
71-
let promise = this.fetch(ref);
70+
async maybeFetch(reference: PackageReference): Promise<?FetchedManifest> {
71+
let promise = this.fetch(reference, false);
7272

73-
if (ref.optional) {
73+
if (reference.optional) {
7474
// swallow the error
7575
promise = promise.catch((err) => {
7676
this.reporter.error(err.message);

src/package-linker.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,10 @@ export default class PackageLinker {
223223

224224
async copyModules(patterns: Array<string>): Promise<void> {
225225
let flatTree = await this.initCopyModules(patterns);
226+
// sorted tree makes file creation and copying not to interfere with each other
227+
flatTree = flatTree.sort((dep1, dep2) => {
228+
return dep1[0].localeCompare(dep2[0]);
229+
});
226230
let self = this;
227231

228232
//

src/package-request.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ export default class PackageRequest {
273273
//
274274
let { package: newInfo, hash, dest } = await this.resolver.fetchingQueue.push(
275275
info.name,
276-
() => this.resolver.fetcher.fetch(ref)
276+
() => this.resolver.fetcher.fetch(ref, this.resolver.lockfile.save && !!offlineMirrorPath)
277277
);
278278

279279
// replace resolved remote URL with local path if lockfile is in save mode and we have a path

0 commit comments

Comments
 (0)