Fix
All checks were successful
Lint / lint (push) Successful in 11s

This commit is contained in:
Julien Valverdé
2025-07-22 23:32:20 +02:00
parent 76b5ccd0e1
commit 95674a8465

View File

@@ -43,6 +43,11 @@ const ComponentProto = Object.freeze({
}, },
} as const) } as const)
const defaultOptions = {
finalizerExecutionMode: "sync",
finalizerExecutionStrategy: ExecutionStrategy.sequential,
} as const
const makeWithDefaults = (): Component<any, any, any> => Object.assign( const makeWithDefaults = (): Component<any, any, any> => Object.assign(
Object.setPrototypeOf(function() {}, ComponentProto), { Object.setPrototypeOf(function() {}, ComponentProto), {
finalizerExecutionMode: "sync", finalizerExecutionMode: "sync",
@@ -290,29 +295,38 @@ export const make: (
) = (spanNameOrBody: Function | string, ...pipeables: any[]): any => { ) = (spanNameOrBody: Function | string, ...pipeables: any[]): any => {
if (typeof spanNameOrBody !== "string") { if (typeof spanNameOrBody !== "string") {
const displayName = displayNameFromBody(spanNameOrBody) const displayName = displayNameFromBody(spanNameOrBody)
return Object.assign(makeWithDefaults(), { return Object.setPrototypeOf(
Object.assign(function() {}, {
body: displayName body: displayName
? Effect.fn(displayName)(spanNameOrBody as any, ...pipeables as []) ? Effect.fn(displayName)(spanNameOrBody as any, ...pipeables as [])
: Effect.fn(spanNameOrBody as any, ...pipeables), : Effect.fn(spanNameOrBody as any, ...pipeables),
displayName, displayName,
}) }),
ComponentProto,
)
} }
else { else {
const spanOptions = pipeables[0] const spanOptions = pipeables[0]
return (body: any, ...pipeables: any[]) => Object.assign(makeWithDefaults(), { return (body: any, ...pipeables: any[]) => Object.setPrototypeOf(
Object.assign(function() {}, {
body: Effect.fn(spanNameOrBody, spanOptions)(body, ...pipeables as []), body: Effect.fn(spanNameOrBody, spanOptions)(body, ...pipeables as []),
displayName: displayNameFromBody(body) ?? spanNameOrBody, displayName: displayNameFromBody(body) ?? spanNameOrBody,
}) }),
ComponentProto,
)
} }
} }
export const makeUntraced: make.Gen & make.NonGen = ( export const makeUntraced: make.Gen & make.NonGen = (
body: Function, body: Function,
...pipeables: any[] ...pipeables: any[]
) => Object.assign(makeWithDefaults(), { ) => Object.setPrototypeOf(
Object.assign(function() {}, {
body: Effect.fnUntraced(body as any, ...pipeables as []), body: Effect.fnUntraced(body as any, ...pipeables as []),
displayName: displayNameFromBody(body), displayName: displayNameFromBody(body),
}, ComponentProto) }),
ComponentProto,
)
const displayNameFromBody = (body: Function) => !String.isEmpty(body.name) ? body.name : undefined const displayNameFromBody = (body: Function) => !String.isEmpty(body.name) ? body.name : undefined