Skip to content

Commit

Permalink
Move some code
Browse files Browse the repository at this point in the history
  • Loading branch information
0x80 committed Mar 30, 2024
1 parent 20b3939 commit 201a730
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 39 deletions.
2 changes: 1 addition & 1 deletion src/lib/lockfile/helpers/generate-pnpm-lockfile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { useConfig } from "~/lib/config";
import { useLogger } from "~/lib/logger";
import type { PackagesRegistry } from "~/lib/types";
import { getErrorMessage } from "~/lib/utils";
import { pnpmMapImporter } from "../process-lockfile";
import { pnpmMapImporter } from "./pnpm-map-importer";

export async function generatePnpmLockfile({
workspaceRootDir,
Expand Down
38 changes: 38 additions & 0 deletions src/lib/lockfile/helpers/pnpm-map-importer.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import type {
ProjectSnapshot,
ResolvedDependencies,
} from "@pnpm/lockfile-file";
import { mapValues } from "remeda";

/** Convert dependency links */
export function pnpmMapImporter(
{ dependencies, devDependencies, ...rest }: ProjectSnapshot,
{
includeDevDependencies,
directoryByPackageName,
}: {
includeDevDependencies: boolean;
includePatchedDependencies: boolean;
directoryByPackageName: { [packageName: string]: string };
}
): ProjectSnapshot {
return {
dependencies: dependencies
? pnpmMapDependenciesLinks(dependencies, directoryByPackageName)
: undefined,
devDependencies:
includeDevDependencies && devDependencies
? pnpmMapDependenciesLinks(devDependencies, directoryByPackageName)
: undefined,
...rest,
};
}

function pnpmMapDependenciesLinks(
def: ResolvedDependencies,
directoryByPackageName: { [packageName: string]: string }
): ResolvedDependencies {
return mapValues(def, (value, key) =>
value.startsWith("link:") ? `link:./${directoryByPackageName[key]}` : value
);
}
38 changes: 0 additions & 38 deletions src/lib/lockfile/process-lockfile.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
import type {
ProjectSnapshot,
ResolvedDependencies,
} from "@pnpm/lockfile-file";
import { mapValues } from "remeda";
import { useConfig } from "../config";
import { useLogger } from "../logger";
import { usePackageManager } from "../package-manager";
Expand All @@ -11,39 +6,6 @@ import { generateNpmLockfile } from "./helpers/generate-npm-lockfile";
import { generatePnpmLockfile } from "./helpers/generate-pnpm-lockfile";
import { generateYarnLockfile } from "./helpers/generate-yarn-lockfile";

/** Convert dependency links */
export function pnpmMapImporter(
{ dependencies, devDependencies, ...rest }: ProjectSnapshot,
{
includeDevDependencies,
directoryByPackageName,
}: {
includeDevDependencies: boolean;
includePatchedDependencies: boolean;
directoryByPackageName: { [packageName: string]: string };
}
): ProjectSnapshot {
return {
dependencies: dependencies
? pnpmMapDependenciesLinks(dependencies, directoryByPackageName)
: undefined,
devDependencies:
includeDevDependencies && devDependencies
? pnpmMapDependenciesLinks(devDependencies, directoryByPackageName)
: undefined,
...rest,
};
}

function pnpmMapDependenciesLinks(
def: ResolvedDependencies,
directoryByPackageName: { [packageName: string]: string }
): ResolvedDependencies {
return mapValues(def, (value, key) =>
value.startsWith("link:") ? `link:./${directoryByPackageName[key]}` : value
);
}

/**
* Adapt the lockfile and write it to the isolate directory. Because we keep the
* structure of packages in the isolate directory the same as they were in the
Expand Down

0 comments on commit 201a730

Please sign in to comment.