Merge branch 'master' into codex/fs-directory-listing

This commit is contained in:
Tianyi Cui
2026-07-04 01:27:42 +08:00
committed by GitHub
23 changed files with 64 additions and 63 deletions

View File

@@ -27,6 +27,8 @@ const vendoredPackages = new Set([
'@cordisjs/plugin-logger-console',
])
const localArtifactDirs = new Set(['node_modules'])
/** The subset of package.json fields this constraint check cares about. */
interface PackageManifest {
name?: string
@@ -64,10 +66,13 @@ function packageDirs(base: string, depth: number): string[] {
if (depth === 1) {
return readdirSync(join(root, base), { withFileTypes: true })
.filter(entry => entry.isDirectory())
.filter(entry => !localArtifactDirs.has(entry.name))
.filter(entry => existsSync(join(root, base, entry.name, 'package.json')))
.map(entry => join(base, entry.name))
}
return readdirSync(join(root, base), { withFileTypes: true })
.filter(entry => entry.isDirectory())
.filter(entry => !localArtifactDirs.has(entry.name))
.flatMap(group => packageDirs(join(base, group.name), depth - 1))
}
@@ -177,6 +182,7 @@ function checkHierarchyShape(): string[] {
}
for (const pkg of readdirSync(join(packagesRoot, group.name), { withFileTypes: true })) {
if (!pkg.isDirectory()) continue
if (localArtifactDirs.has(pkg.name)) continue
const pkgRel = join(groupRel, pkg.name)
if (!existsSync(join(packagesRoot, group.name, pkg.name, 'package.json'))) {
errors.push(`${pkgRel}: expected a package here (no package.json found) — the hierarchy is exactly packages/<group>/<pkg>, no deeper nesting`)

View File

@@ -1,5 +1,5 @@
import { execFileSync } from 'node:child_process'
import { readdirSync } from 'node:fs'
import { existsSync, readdirSync } from 'node:fs'
import { resolve } from 'node:path'
// publint every harness package. Packages live at packages/<group>/<pkg>
@@ -14,6 +14,7 @@ const packages = readdirSync(packagesRoot, { withFileTypes: true })
.flatMap(group =>
readdirSync(resolve(packagesRoot, group.name), { withFileTypes: true })
.filter(pkg => pkg.isDirectory())
.filter(pkg => existsSync(resolve(packagesRoot, group.name, pkg.name, 'package.json')))
.map(pkg => `packages/${group.name}/${pkg.name}`),
)