From 693a1bff81fceefff3d28aac32ac1f626496605d Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Wed, 5 Aug 2026 17:25:18 -0400 Subject: [PATCH] refactor(core): remove unused copy strategy registry (#40735) --- packages/core/src/project/copy.ts | 42 +++++++------------------ packages/core/test/project-copy.test.ts | 12 +------ 2 files changed, 12 insertions(+), 42 deletions(-) diff --git a/packages/core/src/project/copy.ts b/packages/core/src/project/copy.ts index 879c6258367..069126d444a 100644 --- a/packages/core/src/project/copy.ts +++ b/packages/core/src/project/copy.ts @@ -70,11 +70,6 @@ export class StrategyUnavailableError extends Schema.TaggedErrorClass()( - "ProjectCopy.DuplicateStrategyError", - { strategy: StrategyID }, -) {} - export type Error = | SourceDirectoryNotFoundError | DestinationExistsError @@ -99,7 +94,6 @@ export interface Strategy { export { Event } export interface Interface { - readonly register: (strategy: Strategy) => Effect.Effect readonly create: (input: CreateInput) => Effect.Effect readonly remove: (input: RemoveInput) => Effect.Effect readonly refresh: (input: RefreshInput) => Effect.Effect @@ -144,17 +138,7 @@ const layer = Layer.effect( return resolved }) - const registry = new Map() - - const register = Effect.fn("ProjectCopy.register")(function* (strategy: Strategy) { - if (registry.has(strategy.id)) return yield* new DuplicateStrategyError({ strategy: strategy.id }) - registry.set(strategy.id, strategy) - }) - - // Register default strategies - yield* register(makeGitWorktreeStrategy({ git, canonical })).pipe(Effect.orDie) - - const strategies = () => Array.from(registry.values()) + const strategy = makeGitWorktreeStrategy({ git, canonical }) const source = Effect.fnUntraced(function* (input: AbsolutePath, projectID: Project.ID) { const sourceDirectory = yield* canonical(input) @@ -164,9 +148,8 @@ const layer = Layer.effect( }) const getStrategy = Effect.fnUntraced(function* (id: StrategyID) { - const found = registry.get(id) - if (!found) return yield* new StrategyUnavailableError({ strategy: id }) - return found + if (id !== strategy.id) return yield* new StrategyUnavailableError({ strategy: id }) + return strategy }) const create = Effect.fn("ProjectCopy.create")(function* (input: CreateInput) { @@ -226,20 +209,18 @@ const layer = Layer.effect( const discovered = yield* Effect.forEach( sourceDirectories, (sourceDirectory) => - Effect.forEach(strategies(), (strategy) => - strategy.list(sourceDirectory).pipe( - Effect.catchTag("ProjectCopy.DirectoryUnavailableError", () => Effect.succeed([])), - Effect.map((items) => - items.map((item) => ({ - directory: item.directory, - strategy: item.type === "copy" ? strategy.id : undefined, - })), - ), + strategy.list(sourceDirectory).pipe( + Effect.catchTag("ProjectCopy.DirectoryUnavailableError", () => Effect.succeed([])), + Effect.map((items) => + items.map((item) => ({ + directory: item.directory, + strategy: item.type === "copy" ? strategy.id : undefined, + })), ), ), { concurrency: "unbounded" }, ).pipe( - Effect.map((sets) => new Map(sets.flat(2).map((item) => [item.directory, item] as const)).values().toArray()), + Effect.map((sets) => new Map(sets.flat().map((item) => [item.directory, item] as const)).values().toArray()), ) const removed = checked.filter((item) => !item.exists).map((item) => item.directory) const result = yield* db @@ -271,7 +252,6 @@ const layer = Layer.effect( }) return Service.of({ - register, create, remove, refresh, diff --git a/packages/core/test/project-copy.test.ts b/packages/core/test/project-copy.test.ts index c574a9b0415..56e764591f9 100644 --- a/packages/core/test/project-copy.test.ts +++ b/packages/core/test/project-copy.test.ts @@ -83,20 +83,10 @@ describe("ProjectCopy", () => { }), ) - it.effect("rejects duplicate strategies and reports unavailable ids", () => + it.effect("reports unavailable strategy ids", () => Effect.gen(function* () { const input = yield* setup() const copy = yield* ProjectCopy.Service - const strategy: ProjectCopy.Strategy = { - id: ProjectCopy.StrategyID.make("test/duplicate"), - create: () => Effect.die("unused"), - remove: () => Effect.die("unused"), - list: () => Effect.succeed([]), - } - - yield* copy.register(strategy) - expect(yield* copy.register(strategy).pipe(Effect.flip)).toBeInstanceOf(ProjectCopy.DuplicateStrategyError) - const unavailable = ProjectCopy.StrategyID.make("acme/missing") const error = yield* copy .create({