-
Notifications
You must be signed in to change notification settings - Fork 4
Plugin distribution strategy #737
Copy link
Copy link
Open
Labels
@arkenv/bun-pluginIssues or Pull Requests involving the Bun plugin for ArkEnvIssues or Pull Requests involving the Bun plugin for ArkEnv@arkenv/vite-pluginIssues or Pull Requests involving the Vite plugin for ArkEnvIssues or Pull Requests involving the Vite plugin for ArkEnvrefactorA change to the codebase that's neither a bug fix nor added functionalityA change to the codebase that's neither a bug fix nor added functionalityrfcA proposal open for discussion, inviting feedback before writing code. May or may not land as-isA proposal open for discussion, inviting feedback before writing code. May or may not land as-is
Metadata
Metadata
Assignees
Labels
@arkenv/bun-pluginIssues or Pull Requests involving the Bun plugin for ArkEnvIssues or Pull Requests involving the Bun plugin for ArkEnv@arkenv/vite-pluginIssues or Pull Requests involving the Vite plugin for ArkEnvIssues or Pull Requests involving the Vite plugin for ArkEnvrefactorA change to the codebase that's neither a bug fix nor added functionalityA change to the codebase that's neither a bug fix nor added functionalityrfcA proposal open for discussion, inviting feedback before writing code. May or may not land as-isA proposal open for discussion, inviting feedback before writing code. May or may not land as-is
Status
Proposed
Context
ArkEnv provides framework integrations via
@arkenv/vite-pluginand@arkenv/bun-plugin.Current internal packages and dependency boundaries make bundling, optional peer deps, and installation ergonomics harder than necessary.
Decision
Framework plugins are thin wrappers around
arkenv.Plugins depend on
arkenvand delegate all validation logic to it.Installation model
Plugins provide single-install ergonomics:
arkenvis a direct dependency of the pluginarkenvmanuallyarktype) remain handled byarkenvThis matches ecosystem expectations (Vite, Bun).
Shared code and types
arkenv@repo/types,@repo/scope)@internalarkenv, never from private pathsArkType isolation
arkenvvalidator: "arktype"is usedConsequences
Pros
Cons