diff --git a/src/project.ts b/src/project.ts index 8ee494d..91f3d2d 100644 --- a/src/project.ts +++ b/src/project.ts @@ -5,7 +5,7 @@ import { join } from "path" import { readdirSync, type Dirent } from "fs" import { sessionGet } from "./session" import { DEFAULT_PROJECT, NOSE_DIR } from "./config" -import { isDir } from "./utils" +import { isDir, isFile } from "./utils" export function projectName(): string { const state = sessionGet() @@ -16,7 +16,7 @@ export function projectName(): string { export function projects(): string[] { return readdirSync(NOSE_DIR, { withFileTypes: true }) - .filter(file => file.isDirectory()) + .filter(dir => dir.isDirectory() && isProject(join(NOSE_DIR, dir.name))) .map(dir => dir.name) .sort() } @@ -34,4 +34,8 @@ export function projectBin(name = projectName()): string { export function projectFiles(name = projectName()): Dirent[] { return readdirSync(projectDir(name), { recursive: true, withFileTypes: true }) +} + +function isProject(path: string): boolean { + return isFile(join(path, "index.ts")) || isFile(join(path, "index.tsx")) || isDir(join(path, "pub")) } \ No newline at end of file