UNPKG

veffect

Version:

powerful TypeScript validation library built on the robust foundation of Effect combining exceptional type safety, high performance, and developer experience. Taking inspiration from Effect's functional principles, VEffect delivers a balanced approach tha

49 lines (44 loc) 1.56 kB
/** * @since 2.0.0 */ import * as internal from "./internal/metric/registry.js" import type * as MetricHook from "./MetricHook.js" import type * as MetricKey from "./MetricKey.js" import type * as MetricKeyType from "./MetricKeyType.js" import type * as MetricPair from "./MetricPair.js" /** * @since 2.0.0 * @category symbols */ export const MetricRegistryTypeId: unique symbol = internal.MetricRegistryTypeId /** * @since 2.0.0 * @category symbols */ export type MetricRegistryTypeId = typeof MetricRegistryTypeId /** * @since 2.0.0 * @category models */ export interface MetricRegistry { readonly [MetricRegistryTypeId]: MetricRegistryTypeId snapshot(): ReadonlyArray<MetricPair.MetricPair.Untyped> get<Type extends MetricKeyType.MetricKeyType<any, any>>( key: MetricKey.MetricKey<Type> ): MetricHook.MetricHook< MetricKeyType.MetricKeyType.InType<typeof key["keyType"]>, MetricKeyType.MetricKeyType.OutType<typeof key["keyType"]> > getCounter<A extends (number | bigint)>( key: MetricKey.MetricKey.Counter<A> ): MetricHook.MetricHook.Counter<A> getFrequency(key: MetricKey.MetricKey.Frequency): MetricHook.MetricHook.Frequency getGauge<A extends (number | bigint)>(key: MetricKey.MetricKey.Gauge<A>): MetricHook.MetricHook.Gauge<A> getHistogram(key: MetricKey.MetricKey.Histogram): MetricHook.MetricHook.Histogram getSummary(key: MetricKey.MetricKey.Summary): MetricHook.MetricHook.Summary } /** * @since 2.0.0 * @category constructors */ export const make: (_: void) => MetricRegistry = internal.make