UNPKG

@rbxts/zircon

Version:

<div> <img src="https://i.imgur.com/YgpbX7G.png" align="left" width="128"/> <h1>ZIRCON</h1> <h3>A clean, sleek, runtime debugging console for Roblox</h3> <a href="https://npmjs.com/package/@rbxts/zircon"><img src="https://badge.fury.io

44 lines (43 loc) 2.14 kB
/// <reference types="@rbxts/compiler-types" /> import { InferArguments, InferTypeFromValidator2, InferValidator, Validator, ZirconValidator } from "./ZirconTypeValidator"; import { ZirconFunction } from "./ZirconFunction"; import { ZirconContext } from "./ZirconContext"; import { ZrValue } from "@rbxts/zirconium/out/Data/Locals"; export declare class ZirconFunctionBuilder<V extends ZirconValidator<unknown, unknown>[] = [ ]> { private name; private validators; private varadicValidator?; private hasVariadic; private description?; constructor(name: string); private GetValidator; private GetUnionableValidator; /** * Adds an argnument to this zircon function * @param argValidator The argument type/validator * @param description The description for this argument * @returns The builder */ AddArgument<TValidation extends Validator>(argValidator: TValidation | TValidation[], description?: string): ZirconFunctionBuilder<[...V, InferValidator<TValidation>]>; /** * Adds an argnument to this zircon function * @param argValidator The argument type/validator * @param description The description for this argument * @returns The builder */ AddArrayArgument<TValidation extends Validator>(argValidator: TValidation | TValidation[], description?: string): ZirconFunctionBuilder<[...V, ZirconValidator<InferTypeFromValidator2<InferValidator<TValidation>>[], never>]>; /** * Adds a varadic argument to this zircon function * @param arg * @returns */ AddVariadicArgument<TValidation extends Validator>(arg: TValidation | TValidation[]): Omit<ZirconFunctionBuilder<[...V, ...InferValidator<TValidation>[]]>, "AddArgument" | "AddVariadicArgument">; /** * Adds a description to the function * @param description The description of this function * @returns */ AddDescription(description: string): Omit<this, "AddDescription">; Bind<R extends ZrValue | void>(fn: (context: ZirconContext, ...args: InferArguments<V>) => R): ZirconFunction<V, R>; }