TagSchemas<I, A, E>Schema-only options for Tag — pair with layer for the gated effect.
Source src/Gate.ts:34513 lines
export interface interface TagSchemas<I extends Schema.Top = Schema.Top, A extends Schema.Top = Schema.Top, E extends Schema.Top = Schema.Never>Schema-only options for
Tag
— pair with
layer
for the gated effect.
TagSchemas<
function (type parameter) I in TagSchemas<I extends Schema.Top = Schema.Top, A extends Schema.Top = Schema.Top, E extends Schema.Top = Schema.Never>I extends import SchemaSchema.Top = import SchemaSchema.Top,
function (type parameter) A in TagSchemas<I extends Schema.Top = Schema.Top, A extends Schema.Top = Schema.Top, E extends Schema.Top = Schema.Never>A extends import SchemaSchema.Top = import SchemaSchema.Top,
function (type parameter) E in TagSchemas<I extends Schema.Top = Schema.Top, A extends Schema.Top = Schema.Top, E extends Schema.Top = Schema.Never>E extends import SchemaSchema.Top = typeof import SchemaSchema.const Never: Neverconst Never: {
Rebuild: Rebuild;
Iso: Iso;
ast: Ast;
Type: T;
Encoded: E;
DecodingServices: RD;
EncodingServices: RE;
annotate: (annotations: Schema.Annotations.Bottom<never, readonly []>) => Schema.Never;
annotateKey: (annotations: Schema.Annotations.Key<never>) => Schema.Never;
check: (checks_0: Check<never>, ...checks: Array<Check<never>>) => Schema.Never;
rebuild: (ast: Never) => Schema.Never;
make: (input: never, options?: MakeOptions) => never;
makeOption: (input: never, options?: MakeOptions) => Option_.Option<never>;
makeEffect: (input: never, options?: MakeOptions) => Effect.Effect<never, SchemaError, never>;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
}
Type-level representation of
Never
.
Schema for the never type. Always fails validation — no value satisfies it.
Never,
> extends interface WireSchemas<I extends Schema.Top = Schema.Void, A extends Schema.Top = Schema.Void, E extends Schema.Top = Schema.Never>Wire schemas shared by
Tag
and
Service
.
WireSchemas<function (type parameter) I in TagSchemas<I extends Schema.Top = Schema.Top, A extends Schema.Top = Schema.Top, E extends Schema.Top = Schema.Never>I, function (type parameter) A in TagSchemas<I extends Schema.Top = Schema.Top, A extends Schema.Top = Schema.Top, E extends Schema.Top = Schema.Never>A, function (type parameter) E in TagSchemas<I extends Schema.Top = Schema.Top, A extends Schema.Top = Schema.Top, E extends Schema.Top = Schema.Never>E> {
readonly TagSchemas<I extends Schema.Top = Top, A extends Schema.Top = Top, E extends Schema.Top = Never>.description?: string | undefineddescription?: string;
/**
* Optional rate-limit policy declaration on the Tag — stamps `rateLimitKey`
* metadata for widgets. Engine still needs `rateLimit` on {@link layer} /
* {@link Service} config to enforce.
*/
readonly TagSchemas<I extends Schema.Top = Top, A extends Schema.Top = Top, E extends Schema.Top = Never>.rateLimit?: RateLimitOptionsOptional rate-limit policy declaration on the Tag — stamps rateLimitKey
metadata for widgets. Engine still needs rateLimit on
layer
/
Service
config to enforce.
rateLimit?: type RateLimitOptions = Omit<
{
readonly algorithm?:
| "fixed-window"
| "token-bucket"
| undefined
readonly onExceeded?:
| "delay"
| "fail"
| undefined
readonly window: Input
readonly limit: number
readonly key: string
readonly tokens?: number | undefined
},
"key"
> & {
readonly key?: internal.RateLimiterConsumeOptions["key"]
}
Effect RateLimiter.consume / makeWithRateLimiter options for a gate
(key optional — defaults to the gate hyperlink / tag id). Policy only; the
RateLimiter / RateLimiterStore services are presence-driven in Context.
RateLimitOptions;
}