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

113 lines (112 loc) 4.77 kB
/// <reference types="@rbxts/compiler-types" /> import { ZrValue } from "@rbxts/zirconium/out/Data/Locals"; import { ZirconAfterContext, ZirconBeforeContext } from "./ZirconContext"; import { ZirconEnum } from "./ZirconEnum"; import { ZirconFunction } from "./ZirconFunction"; import { ZirconGroupBuilder, ZirconGroupConfiguration } from "./ZirconGroupBuilder"; import { ZirconNamespace } from "./ZirconNamespace"; import { ZirconValidator } from "./ZirconTypeValidator"; export declare type ZirconGlobal = ZirconNamespace | ZirconEnum<any> | ZirconFunction<any, any>; export declare type ZirconScopedGlobal = readonly [ type: ZirconNamespace | ZirconEnum<any> | ZirconFunction<any, any>, groups: readonly string[] ]; export declare enum ExecutionAction { Execute = 0, Skip = 1 } export interface Hooks { BeforeExecute: (context: ZirconBeforeContext) => ExecutionAction; AfterExecute: (context: ZirconAfterContext) => void; } declare type MappedArray<T> = { [P in keyof T]: ReadonlyArray<T[P]>; }; export interface ZirconConfiguration { readonly Groups: readonly ZirconGroupConfiguration[]; /** @deprecated */ readonly Registry: ZirconScopedGlobal[]; readonly GroupGlobalsMap: ReadonlyMap<string, ZirconGlobal>; readonly Hooks: MappedArray<Hooks>; } export declare const enum ZirconDefaultGroup { Admin = "admin", User = "user", Creator = "creator" } export interface DefaultAdminGroupOptions { readonly GroupRank: number; readonly GroupId?: number; } export interface DefaultUserGroupOptions { readonly CanAccessConsole: boolean; } export declare class ZirconConfigurationBuilder { configuration: Writable<ZirconConfiguration>; constructor(); /** * Creates a group, given the specified configuration * @param rank The rank. This is used for group priority * @param id The id of the group to create * @param configurator The configuration */ CreateGroup(rank: number, id: string, configurator: (group: ZirconGroupBuilder) => ZirconGroupBuilder): this; /** * Creates a default `creator` group. This will refer to either the game creator, or group creator. * @returns */ CreateDefaultCreatorGroup(): ZirconConfigurationBuilder; /** * Creates a default `admin` group. * * If this place is a group-owned place, and no arguments are provided anyone in the group * with a rank equal or higher to `254` is considered an administrator. * * If this isn't a group game, or you want a custom rule for `admin` you need to provide a configuration callback * @returns */ CreateDefaultAdminGroup(): ZirconConfigurationBuilder; CreateDefaultAdminGroup(builder: (group: ZirconGroupBuilder) => ZirconGroupBuilder): ZirconConfigurationBuilder; CreateDefaultAdminGroup(options: DefaultAdminGroupOptions): ZirconConfigurationBuilder; /** * Creates a default `user` group, this refers to _anyone_ and shouldn't be used for more sensitive things. * @returns */ CreateDefaultUserGroup(options?: DefaultUserGroupOptions): ZirconConfigurationBuilder; /** * Adds the specified namespace to Zircon * @param namespace The namespace * @param groups The groups this namespace is available to */ AddNamespace(namespace: ZirconNamespace, groups: readonly string[]): this; /** * Adds the specified enum to Zircon * @param enumType The enum * @param groups The groups this enum is available to */ AddEnum<K extends string>(enumType: ZirconEnum<K>, groups: readonly string[]): this; /** * Adds the specified function to Zircon * @param functionType The function * @param groups The groups this function is available to */ AddFunction<A extends readonly ZirconValidator<any, any>[], R extends ZrValue | void = void>(functionType: ZirconFunction<A, R>, groups: readonly string[]): this; /** * Adds the specified function to Zircon * @param functionType The function * @param groupIds The groups this function is available to * @deprecated */ AddFunctionsToGroups(functions: readonly ZirconFunction<any, any>[], groupIds: readonly string[]): this; /** * Returns a logging configuration, which creates a `creator` group with the permission to read server output, and a `user` group. * @returns */ static logging(): ZirconConfiguration; /** * Returns a default configuration, which includes the `creator`, `admin`, and `user` groups. */ static default(): ZirconConfigurationBuilder; Build(): ZirconConfiguration; } export {};