@manypkg/cli
Version:
Manypkg is a linter for `package.json` files in Yarn, npm, Lerna, pnpm or Rush monorepos.
47 lines (42 loc) • 1.06 kB
text/typescript
import type { Package } from "@manypkg/get-packages";
import crypto from "node:crypto";
export let getRootWS = (): Package => {
return {
dir: `fake/monorepo`,
relativeDir: ".",
packageJson: {
name: "root",
version: "0.0.1",
private: true,
},
};
};
export let getFakeWS = (
name: string = "pkg-1",
version: string = "1.0.0"
): Package => {
return {
dir: `fake/monorepo/packages/${name}`,
relativeDir: `packages/${name}`,
packageJson: {
name,
version,
},
};
};
export let getWS = (): Map<string, Package> => {
let pkg = new Map();
pkg.set("pkg-1", getFakeWS());
return pkg;
};
export let getFakeString = (length: number): string => {
return (
crypto
// converting to hex doubles the length, so we request half as many bytes
.randomBytes(Math.ceil(length / 2))
.toString("hex")
// if length is odd, Math.ceil() will have requested too many bytes, so we
// chop them off by only grabbing `length` characters
.substring(-length)
);
};