diff --git a/apps/server/src/device/easProjectId.ts b/apps/server/src/device/easProjectId.ts index c4c11a50f1bef..524dd6d9519c0 100644 --- a/apps/server/src/device/easProjectId.ts +++ b/apps/server/src/device/easProjectId.ts @@ -178,7 +178,7 @@ const projectIdsOf = Effect.fn("easProjectId.projectIdsOf")(function* (dir: stri } for (const file of JSON_CONFIG_FILES) { const json = yield* fs.readFileString(path.join(dir, file)).pipe( - Effect.map(Option.some), + Effect.asSome, Effect.catch((error) => Effect.succeed(error.reason._tag === "NotFound" ? Option.none() : null), ), diff --git a/apps/server/src/orchestration-v2/CommandReceiptStore.ts b/apps/server/src/orchestration-v2/CommandReceiptStore.ts index ed8c690e5b727..22b24f1516b12 100644 --- a/apps/server/src/orchestration-v2/CommandReceiptStore.ts +++ b/apps/server/src/orchestration-v2/CommandReceiptStore.ts @@ -165,7 +165,7 @@ const layerBase: Layer.Layer< onSome: (receipt) => receipt.aggregateKind !== "thread" ? Effect.succeed(Option.none()) - : fromApplicationReceipt(receipt).pipe(Effect.map(Option.some)), + : fromApplicationReceipt(receipt).pipe(Effect.asSome), }), ), Effect.mapError( @@ -189,7 +189,7 @@ const layerBase: Layer.Layer< resultSequence: receipt.value.resultSequence, status: receipt.value.status, error: receipt.value.error, - }).pipe(Effect.map(Option.some)), + }).pipe(Effect.asSome), ), Effect.mapError((cause) => new CommandReceiptStoreReadError({ commandId, cause })), ), diff --git a/apps/server/src/orchestration-v2/EffectOutbox.ts b/apps/server/src/orchestration-v2/EffectOutbox.ts index 53de1980403dd..f8b0ab9ab57f2 100644 --- a/apps/server/src/orchestration-v2/EffectOutbox.ts +++ b/apps/server/src/orchestration-v2/EffectOutbox.ts @@ -421,7 +421,7 @@ export const layer: Layer.Layer = La const row = rows[0]; return row === undefined ? Effect.succeed(Option.none()) - : rowToEffect(row).pipe(Effect.map(Option.some)); + : rowToEffect(row).pipe(Effect.asSome); }), Effect.mapError((cause) => new EffectOutboxError({ operation: "get", effectId, cause })), ), diff --git a/apps/server/src/orchestration-v2/PullRequestWatchReactor.ts b/apps/server/src/orchestration-v2/PullRequestWatchReactor.ts index ae3eed8794bb6..03a16e770efac 100644 --- a/apps/server/src/orchestration-v2/PullRequestWatchReactor.ts +++ b/apps/server/src/orchestration-v2/PullRequestWatchReactor.ts @@ -464,7 +464,7 @@ export const make = Effect.gen(function* () { [ pullRequests.detail({ ...reference, allowStale: false }), plan.activity - ? pullRequests.activity(reference).pipe(Effect.map(Option.some)) + ? pullRequests.activity(reference).pipe(Effect.asSome) : Effect.succeed(Option.none()), ], { concurrency: 2 }, diff --git a/apps/server/src/orchestration-v2/RunExecutionService.test.ts b/apps/server/src/orchestration-v2/RunExecutionService.test.ts index f25d03bc7f527..1728e3a83ab03 100644 --- a/apps/server/src/orchestration-v2/RunExecutionService.test.ts +++ b/apps/server/src/orchestration-v2/RunExecutionService.test.ts @@ -1834,7 +1834,7 @@ it.effect.each([null, "run:nested-sdk"] as const)( keepEventStreamOpen: true, onEventsConsumed: Deferred.succeed(consumed, undefined).pipe(Effect.asVoid), }, - ).pipe(Effect.map(Option.some)), + ).pipe(Effect.asSome), Deferred.await(consumed).pipe(Effect.as(Option.none())), ); assert.isTrue( diff --git a/packages/client-runtime/src/platform/orchestrationCache.test.ts b/packages/client-runtime/src/platform/orchestrationCache.test.ts index 5ea3f2ee5bda5..8b9b16829a4be 100644 --- a/packages/client-runtime/src/platform/orchestrationCache.test.ts +++ b/packages/client-runtime/src/platform/orchestrationCache.test.ts @@ -107,7 +107,7 @@ describe("orchestration cache envelopes", () => { const decoded = Effect.try({ try: () => decodeStoredShellSnapshotSync({ ...encodedShell, schemaVersion: 1 }), catch: (cause) => new TestCacheDecodeError({ message: String(cause) }), - }).pipe(Effect.map(Option.some)); + }).pipe(Effect.asSome); const result = yield* decodeOrDiscardOrchestrationCache( decoded, diff --git a/packages/client-runtime/src/state/queryPersistence.ts b/packages/client-runtime/src/state/queryPersistence.ts index 59c8d5d11f675..a6241a81fabbb 100644 --- a/packages/client-runtime/src/state/queryPersistence.ts +++ b/packages/client-runtime/src/state/queryPersistence.ts @@ -32,7 +32,7 @@ export function persistQuery(schema: Schema.Codec): QueryPersistence const stored = yield* store.load(environmentId, key); if (Option.isNone(stored)) return Option.none(); return yield* Schema.decodeUnknownEffect(codec)(stored.value).pipe( - Effect.map(Option.some), + Effect.asSome, Effect.catch(() => Effect.succeedNone), ); }), diff --git a/packages/provider-acp-registry/src/server/AcpRegistryRuntimeCoordinator.ts b/packages/provider-acp-registry/src/server/AcpRegistryRuntimeCoordinator.ts index 5951b10b1b441..bec80c06ddd39 100644 --- a/packages/provider-acp-registry/src/server/AcpRegistryRuntimeCoordinator.ts +++ b/packages/provider-acp-registry/src/server/AcpRegistryRuntimeCoordinator.ts @@ -150,7 +150,7 @@ const make = Effect.gen(function* () { Stream.runHead, Effect.as(Option.none()), ); - return yield* Effect.raceFirst(effect.pipe(Effect.map(Option.some)), foregroundStarted); + return yield* Effect.raceFirst(effect.pipe(Effect.asSome), foregroundStarted); }), ); diff --git a/packages/provider-acp-registry/src/server/driver.ts b/packages/provider-acp-registry/src/server/driver.ts index 7831062afea14..0446d2904f59b 100644 --- a/packages/provider-acp-registry/src/server/driver.ts +++ b/packages/provider-acp-registry/src/server/driver.ts @@ -639,7 +639,7 @@ export const AcpRegistryDriver: ProviderDriver - wake === held ? Effect.map(dispatch, Option.some) : Effect.succeed(Option.none()), + wake === held ? Effect.asSome(dispatch) : Effect.succeed(Option.none()), clearIfCurrent: () => Effect.sync(() => { if (wake === held) wake = undefined; diff --git a/packages/provider-opencode/src/server/v2/adapter.ts b/packages/provider-opencode/src/server/v2/adapter.ts index dba02e02fa0b1..cbe8c8053814d 100644 --- a/packages/provider-opencode/src/server/v2/adapter.ts +++ b/packages/provider-opencode/src/server/v2/adapter.ts @@ -1504,7 +1504,7 @@ export const make = Effect.fn("OpenCode2Adapter.make")(function* (instanceId: Pr messageId: wake.messageId, ...(notification === null ? {} : { notification }), dispatchIfCurrent: (dispatch) => - wake.dropped ? Effect.succeed(Option.none()) : Effect.map(dispatch, Option.some), + wake.dropped ? Effect.succeed(Option.none()) : Effect.asSome(dispatch), }); }); diff --git a/packages/provider-pi/src/server/adapter.ts b/packages/provider-pi/src/server/adapter.ts index dc71c6dd4413d..c49764343284d 100644 --- a/packages/provider-pi/src/server/adapter.ts +++ b/packages/provider-pi/src/server/adapter.ts @@ -1660,7 +1660,7 @@ export const makePiAdapterV2 = Effect.fn("makePiAdapterV2")(function* ( Effect.suspend(() => pendingWake === wake && threadState === state && !closed ? dispatch.pipe( - Effect.map(Option.some), + Effect.asSome, Effect.tapError(() => stopPendingWake(wake)), ) : Effect.succeed(Option.none()), diff --git a/packages/provider-pi/src/server/rpc.ts b/packages/provider-pi/src/server/rpc.ts index 261e2477f9f1e..4c468a6d1d23d 100644 --- a/packages/provider-pi/src/server/rpc.ts +++ b/packages/provider-pi/src/server/rpc.ts @@ -322,7 +322,7 @@ export const makePiRpcConnection = Effect.fnUntraced(function* (options: PiRpcSp const polled = yield* Deferred.poll(exitDeferred); const maybeExitCode = Option.isSome(polled) ? yield* polled.value.pipe( - Effect.map(Option.some), + Effect.asSome, Effect.orElseSucceed(() => Option.none()), ) : yield* Deferred.await(exitDeferred).pipe( diff --git a/packages/shared/src/symlink.ts b/packages/shared/src/symlink.ts index 7dfc7606e7882..2dcb9631c3862 100644 --- a/packages/shared/src/symlink.ts +++ b/packages/shared/src/symlink.ts @@ -25,7 +25,7 @@ export const resolveSymlinkTarget = Effect.fn("symlink.resolveSymlinkTarget")(fu let current = path.resolve(filePath); for (let hop = 0; hop < MAX_SYMLINK_HOPS; hop++) { const link = yield* fs.readLink(current).pipe( - Effect.map(Option.some), + Effect.asSome, Effect.catchIf(isNotASymlink, () => Effect.succeedNone), ); if (Option.isNone(link)) { diff --git a/packages/source-control-gitcafe/src/server/GitCafePullRequestProvider.ts b/packages/source-control-gitcafe/src/server/GitCafePullRequestProvider.ts index fe6ab862bdb76..5b7a0af183c5c 100644 --- a/packages/source-control-gitcafe/src/server/GitCafePullRequestProvider.ts +++ b/packages/source-control-gitcafe/src/server/GitCafePullRequestProvider.ts @@ -413,7 +413,7 @@ export const make = Effect.gen(function* () { { path: `/users/${encodeURIComponent(handle)}` }, User, ).pipe( - Effect.map(Option.some), + Effect.asSome, Effect.catchTags({ PullRequestProviderError: (error) => error.reason === "unauthenticated" || error.reason === "rate-limited" @@ -768,7 +768,7 @@ export const make = Effect.gen(function* () { { path: "/auth/principal" }, Principal, ).pipe( - Effect.map(Option.some), + Effect.asSome, Effect.catchTags({ PullRequestProviderError: (error) => error.reason === "unauthenticated" || error.reason === "rate-limited" diff --git a/tsconfig.base.json b/tsconfig.base.json index 68c43f51318df..71b0ad793e9ef 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -24,6 +24,7 @@ "namespaceImportPackages": ["@effect/platform-node", "effect"], "effectFn": ["span", "inferred-span", "suggested-span"], "diagnosticSeverity": { + "mapSomeToAsSome": "error", "unnecessaryPipeChain": "error", "effectFnOpportunity": "suggestion", "anyUnknownInErrorContext": "error",