feat(build): detect root frontend manifests
This commit is contained in:
parent
1b572ed5e5
commit
650ab9fd3a
2 changed files with 17 additions and 3 deletions
|
|
@ -239,7 +239,8 @@ type DiscoveryResult struct {
|
|||
Types []ProjectType
|
||||
// PrimaryStack is the best stack suggestion based on detected types.
|
||||
PrimaryStack string
|
||||
// HasFrontend is true when frontend/package.json or subtree npm is found.
|
||||
// HasFrontend is true when a root or frontend/ package.json/deno manifest is found,
|
||||
// or when a nested frontend tree is detected.
|
||||
HasFrontend bool
|
||||
// HasSubtreeNpm is true when a nested package.json exists within depth 2.
|
||||
HasSubtreeNpm bool
|
||||
|
|
@ -285,8 +286,9 @@ func DiscoverFull(fs io.Medium, dir string) (*DiscoveryResult, error) {
|
|||
// Subtree npm detection
|
||||
result.HasSubtreeNpm = HasSubtreeNpm(fs, dir)
|
||||
|
||||
// Frontend detection: frontend package managers or nested frontend manifests.
|
||||
result.HasFrontend = hasFrontendManifest(fs, ax.Join(dir, "frontend")) ||
|
||||
// Frontend detection: root manifests, frontend/ manifests, or nested frontend trees.
|
||||
result.HasFrontend = hasFrontendManifest(fs, dir) ||
|
||||
hasFrontendManifest(fs, ax.Join(dir, "frontend")) ||
|
||||
hasSubtreeFrontendManifest(fs, dir) ||
|
||||
result.HasSubtreeNpm
|
||||
|
||||
|
|
|
|||
|
|
@ -583,6 +583,18 @@ func TestDiscovery_DiscoverFull_Good(t *testing.T) {
|
|||
assert.True(t, result.HasFrontend)
|
||||
})
|
||||
|
||||
t.Run("detects root package.json as frontend", func(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
require.NoError(t, ax.WriteFile(ax.Join(dir, "package.json"), []byte("{}"), 0644))
|
||||
|
||||
result, err := DiscoverFull(fs, dir)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, []ProjectType{ProjectTypeNode}, result.Types)
|
||||
assert.Equal(t, "node", result.PrimaryStack)
|
||||
assert.True(t, result.HasFrontend)
|
||||
assert.False(t, result.HasSubtreeNpm)
|
||||
})
|
||||
|
||||
t.Run("detects frontend deno manifest at project root", func(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
err := ax.WriteFile(ax.Join(dir, "go.mod"), []byte("{}"), 0644)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue