History

refactor: model plugin planning errors as schema

t3-code[bot] committed 2 months ago

Commit a64076d1 parent e9c0a172 files · +9 −11Browse files

Unified · Split

2 files
  1. packages/plugin-runtime-poc/README.md +1 −1
  2. packages/plugin-runtime-poc/src/effectScopeRuntime.ts +8 −10
packages/plugin-runtime-poc/README.md+1−1
@@ -21,7 +21,7 @@ it also fits t3's existing effect runtime. adding cordis did not remove the need · 20 unmodified lines
2121
2222 | variant | source lines | new runtime dependency | result |
2323 | ----------------------- | -----------: | --------------------------------------------------- | ------------------------------------------------------------------ |
24−| `effectScopeRuntime.ts` | 682 | none, effect is already used by t3 | best base for production |
24+| `effectScopeRuntime.ts` | 680 | none, effect is already used by t3 | best base for production |
2525 | `cordisRuntime.ts` | 557 | cordis rc.8 and about 300 kib of installed packages | works, but adds a second lifecycle runtime and the largest adapter |
2626 | `pureRuntime.ts` | 425 | none | simplest planner, but manual finalizers are too easy to misuse |
2727
packages/plugin-runtime-poc/src/effectScopeRuntime.ts+8−10
@@ -158,16 +158,14 @@ class PluginRuntimeCleanupError extends Schema.TaggedErrorClass<PluginRuntimeCle · 157 unmodified lines
158158 }
159159 }
160160
161−type PluginPlanningError = DuplicatePluginIdError | DuplicateCapabilityError | DependencyCycleError;
162−
163−const isDuplicatePluginIdError = Schema.is(DuplicatePluginIdError);
164−const isDuplicateCapabilityError = Schema.is(DuplicateCapabilityError);
165−const isDependencyCycleError = Schema.is(DependencyCycleError);
166−
167−const isPluginPlanningError = (error: unknown): error is PluginPlanningError =>
168− isDuplicatePluginIdError(error) ||
169− isDuplicateCapabilityError(error) ||
170− isDependencyCycleError(error);
161+const PluginPlanningError = Schema.Union([
162+ DuplicatePluginIdError,
163+ DuplicateCapabilityError,
164+ DependencyCycleError,
165+]);
166+type PluginPlanningError = typeof PluginPlanningError.Type;
167+
168+const isPluginPlanningError = Schema.is(PluginPlanningError);
171169
172170 type PluginReconcileError =
173171 | PluginPlanningError