blob: 579cad5f4f348593b05d7907636da6735150350c [file] [log] [blame]
import { NodeJSAnalyzer } from "./nodejs.js";
import { FileSystem } from "./fs.js";
import { Volume, IFs, createFsFromVolume } from "memfs";
import { test, expect } from "@jest/globals";
class InMemoryFileSystem implements FileSystem {
constructor(private readonly fs: IFs) {}
exists(path: string): boolean {
return this.fs.existsSync(path);
}
// TODO(gio): add encoding
async readFile(path: string, encoding?: BufferEncoding): Promise<string> {
const contents = await this.fs.promises.readFile(path);
return contents.toString(encoding);
}
}
test("nodejs", async () => {
return;
const root = "/";
const vol = Volume.fromNestedJSON(
{
"package.json": JSON.stringify({
name: "test",
version: "1.0.0",
dependencies: {
prisma: "6.6.0",
},
}),
"package-lock.json": "fake",
"prisma/schema.prisma": `
datasource db {
provider = "sqlite"
url = env("DB_URL")
}
`,
},
root,
);
const fs: FileSystem = new InMemoryFileSystem(createFsFromVolume(vol));
const analyzer = new NodeJSAnalyzer();
expect(analyzer.detect(fs, root)).toBe(true);
const info = await analyzer.analyze(fs, root);
console.log(info);
});