History

Complete orchestration V2 application services

Julius Marminge committed 4 months ago

Commit 2fd952b1 parent 28ea5e130 files · +2619 −128Browse files

Showing the changes to apps/server/src/project/ProjectSetupScriptRunner.ts (1 of 30 files). Show all

Unified · Split

apps/server/src/project/ProjectSetupScriptRunner.ts+22−14
@@ -1,4 +1,4 @@
1−import { ProjectId } from "@t3tools/contracts";
1+import { ProjectId, type ProjectScript } from "@t3tools/contracts";
22 import { projectScriptRuntimeEnv, setupProjectScript } from "@t3tools/shared/projectScripts";
33 import * as Context from "effect/Context";
44 import * as Effect from "effect/Effect";
@@ -31,6 +31,10 @@ export interface ProjectSetupScriptRunnerInput { · 26 unmodified lines
3131 readonly projectCwd?: string;
3232 readonly worktreePath: string;
3333 readonly preferredTerminalId?: string;
34+ readonly project?: {
35+ readonly workspaceRoot: string;
36+ readonly scripts: ReadonlyArray<ProjectScript>;
37+ };
3438 }
3539
3640 export class ProjectSetupScriptOperationError extends Schema.TaggedErrorClass<ProjectSetupScriptOperationError>()(
@@ -91,20 +95,24 @@ export const make = Effect.gen(function* () { · 54 unmodified lines
9195 ...(input.projectId === undefined ? {} : { projectId: input.projectId }),
9296 ...(input.projectCwd === undefined ? {} : { projectCwd: input.projectCwd }),
9397 };
94− const projectById = input.projectId
95− ? yield* projectionSnapshotQuery.getProjectShellById(ProjectId.make(input.projectId)).pipe(
96− Effect.map(Option.getOrUndefined),
97− Effect.mapError(
98− (cause) =>
99− new ProjectSetupScriptOperationError({
100− ...errorContext,
101− operation: "resolveProject",
102− cause,
103− }),
104− ),
105− )
106− : null;
98+ const suppliedProject = input.project;
99+ const projectById =
100+ suppliedProject ??
101+ (input.projectId
102+ ? yield* projectionSnapshotQuery.getProjectShellById(ProjectId.make(input.projectId)).pipe(
103+ Effect.map(Option.getOrUndefined),
104+ Effect.mapError(
105+ (cause) =>
106+ new ProjectSetupScriptOperationError({
107+ ...errorContext,
108+ operation: "resolveProject",
109+ cause,
110+ }),
111+ ),
112+ )
113+ : null);
107114 const project =
115+ suppliedProject ??
108116 projectById ??
109117 (input.projectCwd
110118 ? yield* projectionSnapshotQuery.getActiveProjectByWorkspaceRoot(input.projectCwd).pipe(