mirror of
https://github.com/SikongJueluo/cc-utils.git
synced 2025-11-05 03:37:50 +08:00
move package and add tab component for tui famework
This commit is contained in:
130
thirdparty/dkjson/index.d.ts
vendored
Normal file
130
thirdparty/dkjson/index.d.ts
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
/** @noResolution */
|
||||
|
||||
/**
|
||||
* Represents a JSON null value that is distinct from Lua's nil.
|
||||
*/
|
||||
interface JsonNull {
|
||||
readonly __json_null: unique symbol;
|
||||
}
|
||||
|
||||
/**
|
||||
* State object for JSON encoding options
|
||||
*/
|
||||
interface EncodeState {
|
||||
/** When set, the output will contain newlines and indentations */
|
||||
indent?: boolean;
|
||||
/** Specifies ordering of keys in encoded output */
|
||||
keyorder?: string[];
|
||||
/** Initial indentation level when indent is set (2 spaces per level, default is 0) */
|
||||
level?: number;
|
||||
/** Array to store result strings for concatenation at once */
|
||||
buffer?: string[];
|
||||
/** Index of last element in buffer (when set) */
|
||||
bufferlen?: number;
|
||||
/** Used to detect reference cycles (temporary, created when absent) */
|
||||
tables?: unknown[];
|
||||
/** Called when encoder cannot encode a value */
|
||||
exception?: (
|
||||
reason: string,
|
||||
value: unknown,
|
||||
state: EncodeState,
|
||||
defaultmessage: string,
|
||||
) => unknown;
|
||||
}
|
||||
|
||||
/**
|
||||
* Options for JSON decoding with custom metatables
|
||||
*/
|
||||
interface DecodeOptions {
|
||||
objectmeta?: unknown;
|
||||
arraymeta?: unknown;
|
||||
}
|
||||
|
||||
/**
|
||||
* The dkjson module version string
|
||||
*/
|
||||
export const version: string;
|
||||
|
||||
/**
|
||||
* Special value representing JSON null (distinct from Lua's nil)
|
||||
*/
|
||||
export const jsonNull: JsonNull;
|
||||
|
||||
/**
|
||||
* Encode a Lua value to a JSON string.
|
||||
* @param object The value to encode (can be a table, string, number, boolean, nil, json.null or any object with a __tojson function in its metatable)
|
||||
* @param state Optional table with configuration options for encoding
|
||||
* @returns A string containing the JSON representation, or true if state.buffer is set and encoding was successful
|
||||
*/
|
||||
export function encode(
|
||||
object: object | string | number | boolean | undefined,
|
||||
state?: EncodeState,
|
||||
): string | boolean;
|
||||
|
||||
/**
|
||||
* Decode a JSON string starting at a given position.
|
||||
* @param str The JSON string to decode
|
||||
* @param pos Starting position (default is 1)
|
||||
* @param nullval Value to return for null values (default is nil, can be set to json.null)
|
||||
* @param objectmeta Custom metatable for decoded objects (optional)
|
||||
* @param arraymeta Custom metatable for decoded arrays (optional)
|
||||
* @returns The decoded object (or the custom null value) and position of next character not part of the object, or undefined, position, and error message in case of errors
|
||||
*/
|
||||
export function decode(
|
||||
str: string,
|
||||
pos?: number,
|
||||
nullval?: unknown,
|
||||
objectmeta?: unknown,
|
||||
arraymeta?: unknown,
|
||||
): LuaMultiReturn<[object | undefined, number | undefined, string | undefined]>;
|
||||
/**
|
||||
* Quote a UTF-8 string and escape critical characters using JSON escape sequences.
|
||||
* Only necessary when building custom __tojson functions.
|
||||
* @param str The string to quote and escape
|
||||
* @returns The quoted and escaped string
|
||||
*/
|
||||
export function quotestring(str: string): string;
|
||||
|
||||
/**
|
||||
* When state.indent is set, adds a newline to state.buffer and spaces according to state.level.
|
||||
* @param state The encoding state containing indent and level information
|
||||
*/
|
||||
export function addnewline(state: EncodeState): void;
|
||||
|
||||
/**
|
||||
* Function that can be used as the exception option in encode. Instead of raising an error,
|
||||
* this function encodes the error message as a string for debugging malformed input.
|
||||
* @param reason The reason for the exception
|
||||
* @param value The value that caused the exception
|
||||
* @param state The encoding state
|
||||
* @param defaultmessage The default error message
|
||||
* @returns The encoded error message
|
||||
*/
|
||||
export function encodeexception(
|
||||
reason: string,
|
||||
value: unknown,
|
||||
state: EncodeState,
|
||||
defaultmessage: string,
|
||||
): string;
|
||||
|
||||
/**
|
||||
* Require the LPeg module and return a copy of the module table where the decode function
|
||||
* is replaced by a version that uses LPeg for better performance.
|
||||
* @returns A copy of the module with LPeg-optimized decode function
|
||||
*/
|
||||
export function use_lpeg(): {
|
||||
version: string;
|
||||
null: JsonNull;
|
||||
encode: typeof encode;
|
||||
decode: typeof decode;
|
||||
quotestring: typeof quotestring;
|
||||
addnewline: typeof addnewline;
|
||||
encodeexception: typeof encodeexception;
|
||||
use_lpeg: typeof use_lpeg;
|
||||
using_lpeg: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Variable set to true in the module table copy that uses LPeg support.
|
||||
*/
|
||||
export const using_lpeg: boolean;
|
||||
Reference in New Issue
Block a user