@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
TypeScript
/// <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 {};