<const Tag extends StoreScopeTag>(tag: Tag): ReturnType<
typeof facetStoreRegistration<Tag, DaemonStoreAnalyticsContract<Tag>>
>
<const Tag extends StoreScopeTag, const Shapes extends StoreShapes>(
tag: Tag,
extended: Shapes
): ReturnType<
typeof facetStoreRegistration<
Tag,
DaemonStoreAnalyticsContract<Tag>,
Shapes
>
>Register this daemon on an app Store.Service — built-in execution analytics with an optional bare spec object merged in:
Daemon.store(Daily)
Daemon.store(Daily, {
audit: auditSchema,
}, ({ audit, event }) => ({
appendAudit: audit.append,
}))layers & servingStore.Service
Source src/Daemon.ts:272619 lines
export function function store<const Tag extends StoreScopeTag>(tag: Tag): ReturnType<typeof facetStoreRegistration<Tag, DaemonStoreAnalyticsContract<Tag>>> (+1 overload)Register this daemon on an app
Store.Service
— built-in execution analytics with an
optional bare spec object merged in:
Daemon.store(Daily)
Daemon.store(Daily, {
audit: auditSchema,
}, ({ audit, event }) => ({
appendAudit: audit.append,
}))
store<const function (type parameter) Tag in store<const Tag extends StoreScopeTag>(tag: Tag): ReturnType<typeof facetStoreRegistration<Tag, DaemonStoreAnalyticsContract<Tag>>>Tag extends StoreScopeTag>(tag: const Tag extends StoreScopeTagtag: function (type parameter) Tag in store<const Tag extends StoreScopeTag>(tag: Tag): ReturnType<typeof facetStoreRegistration<Tag, DaemonStoreAnalyticsContract<Tag>>>Tag): type ReturnType<
T extends (...args: any) => any
> = T extends (...args: any) => infer R ? R : any
Obtain the return type of a function type
ReturnType<
typeof function facetStoreRegistration<const Tag extends StoreScopeTag, const BuiltIn extends Store.StoreContractValue>(tag: Tag, builtIn: BuiltIn): RegisteredWithContract<ScopeKeyOf<Tag>, BuiltIn["spec"], BuiltIn, Tag> (+2 overloads)facetStoreRegistration<function (type parameter) Tag in store<const Tag extends StoreScopeTag>(tag: Tag): ReturnType<typeof facetStoreRegistration<Tag, DaemonStoreAnalyticsContract<Tag>>>Tag, type DaemonStoreAnalyticsContract<Tag extends StoreScopeTag> = StoreContractDef<{
readonly event: Store.StoreShapeDef<DaemonEventSchemaOf<Tag>>;
} & ImplicitLogShape, {
readonly record: (event: DaemonStoreEvent<Tag>) => Effect.Effect<void, Store.StoreWriteError>;
readonly events: (payload?: Store.StoreReadPayload<DaemonStoreEvent<Tag>> | undefined) => Effect.Effect<readonly DaemonStoreEvent<Tag>[], never, never>;
readonly hasPriorExecutions: () => Effect.Effect<boolean>;
} & {
...;
}> & Pipeable
Public analytics contract type for
Daemon.store
.
DaemonStoreAnalyticsContract<function (type parameter) Tag in store<const Tag extends StoreScopeTag>(tag: Tag): ReturnType<typeof facetStoreRegistration<Tag, DaemonStoreAnalyticsContract<Tag>>>Tag>>
>;
export function function store<const Tag extends StoreScopeTag, const Shapes extends StoreShapes>(tag: Tag, extended: Shapes): ReturnType<typeof facetStoreRegistration<Tag, DaemonStoreAnalyticsContract<Tag>, Shapes>> (+1 overload)Register this daemon on an app
Store.Service
— built-in execution analytics with an
optional bare spec object merged in:
Daemon.store(Daily)
Daemon.store(Daily, {
audit: auditSchema,
}, ({ audit, event }) => ({
appendAudit: audit.append,
}))
store<
const function (type parameter) Tag in store<const Tag extends StoreScopeTag, const Shapes extends StoreShapes>(tag: Tag, extended: Shapes): ReturnType<typeof facetStoreRegistration<Tag, DaemonStoreAnalyticsContract<Tag>, Shapes>>Tag extends StoreScopeTag,
const function (type parameter) Shapes in store<const Tag extends StoreScopeTag, const Shapes extends StoreShapes>(tag: Tag, extended: Shapes): ReturnType<typeof facetStoreRegistration<Tag, DaemonStoreAnalyticsContract<Tag>, Shapes>>Shapes extends type StoreShapes = {
readonly [x: string]: Store.StoreShapeInput;
}
StoreShapes,
>(tag: const Tag extends StoreScopeTagtag: function (type parameter) Tag in store<const Tag extends StoreScopeTag, const Shapes extends StoreShapes>(tag: Tag, extended: Shapes): ReturnType<typeof facetStoreRegistration<Tag, DaemonStoreAnalyticsContract<Tag>, Shapes>>Tag, extended: const Shapes extends StoreShapesextended: function (type parameter) Shapes in store<const Tag extends StoreScopeTag, const Shapes extends StoreShapes>(tag: Tag, extended: Shapes): ReturnType<typeof facetStoreRegistration<Tag, DaemonStoreAnalyticsContract<Tag>, Shapes>>Shapes): type ReturnType<
T extends (...args: any) => any
> = T extends (...args: any) => infer R ? R : any
Obtain the return type of a function type
ReturnType<
typeof function facetStoreRegistration<const Tag extends StoreScopeTag, const BuiltIn extends Store.StoreContractValue>(tag: Tag, builtIn: BuiltIn): RegisteredWithContract<ScopeKeyOf<Tag>, BuiltIn["spec"], BuiltIn, Tag> (+2 overloads)facetStoreRegistration<
function (type parameter) Tag in store<const Tag extends StoreScopeTag, const Shapes extends StoreShapes>(tag: Tag, extended: Shapes): ReturnType<typeof facetStoreRegistration<Tag, DaemonStoreAnalyticsContract<Tag>, Shapes>>Tag,
type DaemonStoreAnalyticsContract<Tag extends StoreScopeTag> = StoreContractDef<{
readonly event: Store.StoreShapeDef<DaemonEventSchemaOf<Tag>>;
} & ImplicitLogShape, {
readonly record: (event: DaemonStoreEvent<Tag>) => Effect.Effect<void, Store.StoreWriteError>;
readonly events: (payload?: Store.StoreReadPayload<DaemonStoreEvent<Tag>> | undefined) => Effect.Effect<readonly DaemonStoreEvent<Tag>[], never, never>;
readonly hasPriorExecutions: () => Effect.Effect<boolean>;
} & {
...;
}> & Pipeable
Public analytics contract type for
Daemon.store
.
DaemonStoreAnalyticsContract<function (type parameter) Tag in store<const Tag extends StoreScopeTag, const Shapes extends StoreShapes>(tag: Tag, extended: Shapes): ReturnType<typeof facetStoreRegistration<Tag, DaemonStoreAnalyticsContract<Tag>, Shapes>>Tag>,
function (type parameter) Shapes in store<const Tag extends StoreScopeTag, const Shapes extends StoreShapes>(tag: Tag, extended: Shapes): ReturnType<typeof facetStoreRegistration<Tag, DaemonStoreAnalyticsContract<Tag>, Shapes>>Shapes
>
>;
export function function store<const Tag extends StoreScopeTag>(tag: Tag): ReturnType<typeof facetStoreRegistration<Tag, DaemonStoreAnalyticsContract<Tag>>> (+1 overload)Register this daemon on an app
Store.Service
— built-in execution analytics with an
optional bare spec object merged in:
Daemon.store(Daily)
Daemon.store(Daily, {
audit: auditSchema,
}, ({ audit, event }) => ({
appendAudit: audit.append,
}))
store(tag: StoreScopeTag(parameter) tag: {
key: string;
}
tag: StoreScopeTag, extended: | Readonly<
Record<string, Store.StoreShapeInput>
>
| undefined
extended?: type StoreShapes = {
readonly [x: string]: Store.StoreShapeInput;
}
StoreShapes) {
const const builtIn: Store.StoreContractValue<
{
readonly event: Store.StoreShapeDef<
DaemonEventSchemaOf<Tag>
>
} & ImplicitLogShape,
{
readonly record: (
event: DaemonStoreEvent<StoreScopeTag>
) => Effect.Effect<
void,
Store.StoreWriteError
>
readonly events: (
payload?:
| Store.StoreReadPayload<
DaemonStoreEvent<StoreScopeTag>
>
| undefined
) => Effect.Effect<
ReadonlyArray<
DaemonStoreEvent<StoreScopeTag>
>,
never,
never
>
readonly hasPriorExecutions: () => Effect.Effect<boolean>
} & {
readonly failures: () => Effect.Effect<
ReadonlyArray<
DaemonStoreFailed<StoreScopeTag>
>
>
readonly completions: () => Effect.Effect<
ReadonlyArray<
DaemonStoreCompleted<StoreScopeTag>
>,
never,
never
>
readonly interruptions: () => Effect.Effect<
ReadonlyArray<
DaemonStoreEvent<StoreScopeTag>
>,
never,
never
>
readonly inFlight: () => Effect.Effect<
ReadonlyArray<
DaemonStoreStarted<StoreScopeTag>
>
>
readonly lastFailure: () => Effect.Effect<
Option.Option<
DaemonStoreFailed<StoreScopeTag>
>
>
readonly lastCompletion: () => Effect.Effect<
Option.Option<
DaemonStoreCompleted<StoreScopeTag>
>,
never,
never
>
readonly recent: (
n: number
) => Effect.Effect<
ReadonlyArray<
DaemonStoreEvent<StoreScopeTag>
>,
never,
never
>
readonly stats: () => Effect.Effect<DaemonStoreStats>
readonly failureRate: () => Effect.Effect<number>
readonly durationStats: () => Effect.Effect<DaemonStoreDurationStats>
readonly bySchedule: (
scheduleKey: string | null
) => Effect.Effect<
ReadonlyArray<
DaemonStoreEvent<StoreScopeTag>
>,
never,
never
>
readonly startupRuns: () => Effect.Effect<
ReadonlyArray<
DaemonStoreEvent<StoreScopeTag>
>,
never,
never
>
readonly longestRuns: (
n: number
) => Effect.Effect<
ReadonlyArray<
DaemonStoreCompleted<StoreScopeTag>
>,
never,
never
>
readonly changes: () => Stream.Stream<
DaemonStoreEvent<StoreScopeTag>,
StoreJournalDecodeError,
Store.Storage
>
}
>
builtIn = makeDaemonStoreAnalyticsContract<Tag extends StoreScopeTag>(tag: Tag): Store.StoreContractValue<{ readonly event: StoreShapeDef<DaemonEventSchemaOf<Tag>> } & ImplicitLogShape, { readonly record: (event: DaemonStoreEvent<Tag>) => Effect.Effect<void, StoreWriteError>; readonly events: (payload?: Store.StoreReadPayload<DaemonStoreEvent<Tag>> | undefined) => Effect.Effect<ReadonlyArray<DaemonStoreEvent<Tag>>, never, never>; readonly hasPriorExecutions: () => Effect.Effect<boolean> } & { readonly failures: () => Effect.Effect<ReadonlyArray<DaemonStoreFailed<Tag>>>; readonly completions: () => Effect.Effect<ReadonlyArray<DaemonStoreCompleted<Tag>>>; readonly interruptions: () => Effect.Effect<ReadonlyArray<DaemonStoreEvent<Tag>>>; readonly inFlight: () => Effect.Effect<ReadonlyArray<DaemonStoreStarted<Tag>>>; readonly lastFailure: () => Effect.Effect<Option.Option<DaemonStoreFailed<Tag>>>; readonly lastCompletion: () => Effect.Effect<Option.Option<DaemonStoreCompleted<Tag>>>; readonly recent: (n: number) => Effect.Effect<ReadonlyArray<DaemonStoreEvent<Tag>>>; readonly stats: () => Effect.Effect<DaemonStoreStats>; readonly failureRate: () => Effect.Effect<number>; readonly durationStats: () => Effect.Effect<DaemonStoreDurationStats>; readonly bySchedule: (scheduleKey: string | null) => Effect.Effect<ReadonlyArray<DaemonStoreEvent<Tag>>>; readonly startupRuns: () => Effect.Effect<ReadonlyArray<DaemonStoreEvent<Tag>>>; readonly longestRuns: (n: number) => Effect.Effect<ReadonlyArray<DaemonStoreCompleted<Tag>>>; readonly changes: () => Stream.Stream<DaemonStoreEvent<Tag>, StoreJournalDecodeError, Store.Storage> }>Build the public analytics contract — base + read derivations.
makeDaemonStoreAnalyticsContract(tag: StoreScopeTag(parameter) tag: {
key: string;
}
tag);
return extended: | Readonly<
Record<string, Store.StoreShapeInput>
>
| undefined
extended === var undefinedundefined
? facetStoreRegistration<StoreScopeTag, Store.StoreContractValue<{
readonly event: Store.StoreShapeDef<DaemonEventSchemaOf<Tag>>;
} & ImplicitLogShape, {
readonly record: (event: DaemonStoreEvent<StoreScopeTag>) => Effect.Effect<void, Store.StoreWriteError>;
readonly events: (payload?: Store.StoreReadPayload<DaemonStoreEvent<StoreScopeTag>> | undefined) => Effect.Effect<readonly DaemonStoreEvent<StoreScopeTag>[], never, never>;
readonly hasPriorExecutions: () => Effect.Effect<boolean>;
} & {
...;
}>>(tag: StoreScopeTag, builtIn: Store.StoreContractValue<...>): RegisteredWithContract<...> (+2 overloads)
facetStoreRegistration(tag: StoreScopeTag(parameter) tag: {
key: string;
}
tag, const builtIn: Store.StoreContractValue<
{
readonly event: Store.StoreShapeDef<
DaemonEventSchemaOf<Tag>
>
} & ImplicitLogShape,
{
readonly record: (
event: DaemonStoreEvent<StoreScopeTag>
) => Effect.Effect<
void,
Store.StoreWriteError
>
readonly events: (
payload?:
| Store.StoreReadPayload<
DaemonStoreEvent<StoreScopeTag>
>
| undefined
) => Effect.Effect<
ReadonlyArray<
DaemonStoreEvent<StoreScopeTag>
>,
never,
never
>
readonly hasPriorExecutions: () => Effect.Effect<boolean>
} & {
readonly failures: () => Effect.Effect<
ReadonlyArray<
DaemonStoreFailed<StoreScopeTag>
>
>
readonly completions: () => Effect.Effect<
ReadonlyArray<
DaemonStoreCompleted<StoreScopeTag>
>,
never,
never
>
readonly interruptions: () => Effect.Effect<
ReadonlyArray<
DaemonStoreEvent<StoreScopeTag>
>,
never,
never
>
readonly inFlight: () => Effect.Effect<
ReadonlyArray<
DaemonStoreStarted<StoreScopeTag>
>
>
readonly lastFailure: () => Effect.Effect<
Option.Option<
DaemonStoreFailed<StoreScopeTag>
>
>
readonly lastCompletion: () => Effect.Effect<
Option.Option<
DaemonStoreCompleted<StoreScopeTag>
>,
never,
never
>
readonly recent: (
n: number
) => Effect.Effect<
ReadonlyArray<
DaemonStoreEvent<StoreScopeTag>
>,
never,
never
>
readonly stats: () => Effect.Effect<DaemonStoreStats>
readonly failureRate: () => Effect.Effect<number>
readonly durationStats: () => Effect.Effect<DaemonStoreDurationStats>
readonly bySchedule: (
scheduleKey: string | null
) => Effect.Effect<
ReadonlyArray<
DaemonStoreEvent<StoreScopeTag>
>,
never,
never
>
readonly startupRuns: () => Effect.Effect<
ReadonlyArray<
DaemonStoreEvent<StoreScopeTag>
>,
never,
never
>
readonly longestRuns: (
n: number
) => Effect.Effect<
ReadonlyArray<
DaemonStoreCompleted<StoreScopeTag>
>,
never,
never
>
readonly changes: () => Stream.Stream<
DaemonStoreEvent<StoreScopeTag>,
StoreJournalDecodeError,
Store.Storage
>
}
>
builtIn)
: facetStoreRegistration<StoreScopeTag, Store.StoreContractValue<{
readonly event: Store.StoreShapeDef<DaemonEventSchemaOf<Tag>>;
} & ImplicitLogShape, {
readonly record: (event: DaemonStoreEvent<StoreScopeTag>) => Effect.Effect<void, Store.StoreWriteError>;
readonly events: (payload?: Store.StoreReadPayload<DaemonStoreEvent<StoreScopeTag>> | undefined) => Effect.Effect<readonly DaemonStoreEvent<StoreScopeTag>[], never, never>;
readonly hasPriorExecutions: () => Effect.Effect<boolean>;
} & {
...;
}>, Readonly<...>>(tag: StoreScopeTag, builtIn: Store.StoreContractValue<...>, extended: Readonly<...>): RegisteredWithContract<...> (+2 overloads)
facetStoreRegistration(tag: StoreScopeTag(parameter) tag: {
key: string;
}
tag, const builtIn: Store.StoreContractValue<
{
readonly event: Store.StoreShapeDef<
DaemonEventSchemaOf<Tag>
>
} & ImplicitLogShape,
{
readonly record: (
event: DaemonStoreEvent<StoreScopeTag>
) => Effect.Effect<
void,
Store.StoreWriteError
>
readonly events: (
payload?:
| Store.StoreReadPayload<
DaemonStoreEvent<StoreScopeTag>
>
| undefined
) => Effect.Effect<
ReadonlyArray<
DaemonStoreEvent<StoreScopeTag>
>,
never,
never
>
readonly hasPriorExecutions: () => Effect.Effect<boolean>
} & {
readonly failures: () => Effect.Effect<
ReadonlyArray<
DaemonStoreFailed<StoreScopeTag>
>
>
readonly completions: () => Effect.Effect<
ReadonlyArray<
DaemonStoreCompleted<StoreScopeTag>
>,
never,
never
>
readonly interruptions: () => Effect.Effect<
ReadonlyArray<
DaemonStoreEvent<StoreScopeTag>
>,
never,
never
>
readonly inFlight: () => Effect.Effect<
ReadonlyArray<
DaemonStoreStarted<StoreScopeTag>
>
>
readonly lastFailure: () => Effect.Effect<
Option.Option<
DaemonStoreFailed<StoreScopeTag>
>
>
readonly lastCompletion: () => Effect.Effect<
Option.Option<
DaemonStoreCompleted<StoreScopeTag>
>,
never,
never
>
readonly recent: (
n: number
) => Effect.Effect<
ReadonlyArray<
DaemonStoreEvent<StoreScopeTag>
>,
never,
never
>
readonly stats: () => Effect.Effect<DaemonStoreStats>
readonly failureRate: () => Effect.Effect<number>
readonly durationStats: () => Effect.Effect<DaemonStoreDurationStats>
readonly bySchedule: (
scheduleKey: string | null
) => Effect.Effect<
ReadonlyArray<
DaemonStoreEvent<StoreScopeTag>
>,
never,
never
>
readonly startupRuns: () => Effect.Effect<
ReadonlyArray<
DaemonStoreEvent<StoreScopeTag>
>,
never,
never
>
readonly longestRuns: (
n: number
) => Effect.Effect<
ReadonlyArray<
DaemonStoreCompleted<StoreScopeTag>
>,
never,
never
>
readonly changes: () => Stream.Stream<
DaemonStoreEvent<StoreScopeTag>,
StoreJournalDecodeError,
Store.Storage
>
}
>
builtIn, extended: Readonly<
Record<string, Store.StoreShapeInput>
>
extended);
}