GramIO API Reference / @gramio/callback-data/dist / CallbackData
Class: CallbackData<SchemaType, SchemaTypeInput>
Defined in: callback-data/index.d.ts:88
Class-helper that construct schema and serialize/deserialize with CallbackData.pack and CallbackData.unpack methods
Example
const someData = new CallbackData("example").number("id");
new Bot()
.command("start", (context) =>
context.send("some", {
reply_markup: new InlineKeyboard().text(
"example",
someData.pack({
id: 1,
})
),
})
)
.callbackQuery(someData, (context) => {
context.queryData; // is type-safe
});Type Parameters
| Type Parameter | Default type |
|---|---|
SchemaType extends Record<string, any> | Record<never, never> |
SchemaTypeInput extends Record<string, any> | Record<never, never> |
Constructors
Constructor
new CallbackData<
SchemaType,SchemaTypeInput>(nameId):CallbackData<SchemaType,SchemaTypeInput>
Defined in: callback-data/index.d.ts:95
Pass the id with which you can identify the CallbackData
Parameters
| Parameter | Type |
|---|---|
nameId | string |
Returns
CallbackData<SchemaType, SchemaTypeInput>
Properties
Methods
boolean()
boolean<
Key,Optional,Default>(key,options?):CallbackData<{ [Key in string | number | symbol]: (SchemaType & AddFieldOutput<"boolean", Key, Optional, never, Default, never>)[Key] }, { [Key in string | number | symbol]: (SchemaTypeInput & AddFieldInput<"boolean", Key, Optional, never, Default, never>)[Key] }>
Defined in: callback-data/index.d.ts:110
Add boolean property to schema
Type Parameters
| Type Parameter | Default type |
|---|---|
Key extends string | - |
Optional extends boolean | false |
Default extends boolean | never |
Parameters
| Parameter | Type | Description |
|---|---|---|
key | Key | Name of property |
options? | FieldOptions<"boolean", Optional, never, Default> | - |
Returns
CallbackData<{ [Key in string | number | symbol]: (SchemaType & AddFieldOutput<"boolean", Key, Optional, never, Default, never>)[Key] }, { [Key in string | number | symbol]: (SchemaTypeInput & AddFieldInput<"boolean", Key, Optional, never, Default, never>)[Key] }>
data()
data<
Key,Optional,Data>(key,data,options?):CallbackData<{ [Key in string | number | symbol]: (SchemaType & (Optional extends true ? { [K in string]?: InferDataPack<Data> } : { [K in string]: InferDataPack<Data> }))[Key] }, { [Key in string | number | symbol]: (SchemaTypeInput & (Optional extends true ? { [K in string]?: InferDataPack<Data> } : { [K in string]: InferDataPack<Data> }))[Key] }>
Defined in: callback-data/index.d.ts:122
Type Parameters
| Type Parameter | Default type |
|---|---|
Key extends string | - |
Optional extends boolean | false |
Data extends CallbackData<Record<never, never>, Record<never, never>> | never |
Parameters
| Parameter | Type |
|---|---|
key | Key |
data | Data |
options? | FieldOptions<"data", Optional, never> |
Returns
CallbackData<{ [Key in string | number | symbol]: (SchemaType & (Optional extends true ? { [K in string]?: InferDataPack<Data> } : { [K in string]: InferDataPack<Data> }))[Key] }, { [Key in string | number | symbol]: (SchemaTypeInput & (Optional extends true ? { [K in string]?: InferDataPack<Data> } : { [K in string]: InferDataPack<Data> }))[Key] }>
enum()
enum<
Key,Optional,T,Default>(key,enumValues,options?):CallbackData<{ [Key in string | number | symbol]: (SchemaType & AddFieldOutput<"enum", Key, Optional, T[number], Default, never>)[Key] }, { [Key in string | number | symbol]: (SchemaTypeInput & AddFieldInput<"enum", Key, Optional, T[number], Default, never>)[Key] }>
Defined in: callback-data/index.d.ts:116
Add enum property to schema
Type Parameters
| Type Parameter | Default type |
|---|---|
Key extends string | - |
Optional extends boolean | false |
T extends any[] | readonly any[] | never |
Default extends any | never |
Parameters
| Parameter | Type | Description |
|---|---|---|
key | Key | Name of property |
enumValues | T | Enum values |
options? | FieldOptions<"enum", Optional, T, Default> | - |
Returns
CallbackData<{ [Key in string | number | symbol]: (SchemaType & AddFieldOutput<"enum", Key, Optional, T[number], Default, never>)[Key] }, { [Key in string | number | symbol]: (SchemaTypeInput & AddFieldInput<"enum", Key, Optional, T[number], Default, never>)[Key] }>
extend()
extend<
OtherSchemaType,OtherSchemaTypeInput>(other):CallbackData<{ [Key in string | number | symbol]: (SchemaType & OtherSchemaType)[Key] }, { [Key in string | number | symbol]: (SchemaTypeInput & OtherSchemaTypeInput)[Key] }>
Defined in: callback-data/index.d.ts:173
Type Parameters
| Type Parameter |
|---|
OtherSchemaType extends Record<string, unknown> |
OtherSchemaTypeInput extends Record<string, unknown> |
Parameters
| Parameter | Type |
|---|---|
other | CallbackData<OtherSchemaType, OtherSchemaTypeInput> |
Returns
CallbackData<{ [Key in string | number | symbol]: (SchemaType & OtherSchemaType)[Key] }, { [Key in string | number | symbol]: (SchemaTypeInput & OtherSchemaTypeInput)[Key] }>
filter()
filter(
data):boolean
Defined in: callback-data/index.d.ts:131
Method that return true if data is this CallbackData
Parameters
| Parameter | Type | Description |
|---|---|---|
data | string | String with data |
Returns
boolean
number()
number<
Key,Optional,Default>(key,options?):CallbackData<{ [Key in string | number | symbol]: (SchemaType & AddFieldOutput<"number", Key, Optional, never, Default, never>)[Key] }, { [Key in string | number | symbol]: (SchemaTypeInput & AddFieldInput<"number", Key, Optional, never, Default, never>)[Key] }>
Defined in: callback-data/index.d.ts:105
Add number property to schema
Type Parameters
| Type Parameter | Default type |
|---|---|
Key extends string | - |
Optional extends boolean | false |
Default extends number | never |
Parameters
| Parameter | Type | Description |
|---|---|---|
key | Key | Name of property |
options? | FieldOptions<"number", Optional, never, Default> | - |
Returns
CallbackData<{ [Key in string | number | symbol]: (SchemaType & AddFieldOutput<"number", Key, Optional, never, Default, never>)[Key] }, { [Key in string | number | symbol]: (SchemaTypeInput & AddFieldInput<"number", Key, Optional, never, Default, never>)[Key] }>
pack()
pack<
T>(...args):string
Defined in: callback-data/index.d.ts:150
A method for serializing object data defined by schema into a string
Type Parameters
| Type Parameter |
|---|
T extends Record<string, any> |
Parameters
| Parameter | Type |
|---|---|
...args | IsOptionalType<SchemaTypeInput> extends true ? [T] : [T] |
Returns
string
Example
const someData = new CallbackData("example").number("id");
context.send("some", {
reply_markup: new InlineKeyboard().text(
"example",
someData.pack({
id: 1,
}),
),
});regexp()
regexp():
RegExp
Defined in: callback-data/index.d.ts:126
Method that return RegExp to match this CallbackData
Returns
RegExp
safeUnpack()
safeUnpack(
data):SafeUnpackResult<SchemaType>
Defined in: callback-data/index.d.ts:172
Safe version of CallbackData.unpack that never throws. Returns { success: true, data } on success or { success: false, error } on failure.
Useful for handling outdated callback data from old inline keyboards after schema changes.
Parameters
| Parameter | Type |
|---|---|
data | string |
Returns
SafeUnpackResult<SchemaType>
Example
const result = someData.safeUnpack(data);
if (result.success) {
console.log(result.data);
} else {
context.answerCallbackQuery("This button is outdated!");
}string()
string<
Key,Optional,Default>(key,options?):CallbackData<{ [Key in string | number | symbol]: (SchemaType & AddFieldOutput<"string", Key, Optional, never, Default, never>)[Key] }, { [Key in string | number | symbol]: (SchemaTypeInput & AddFieldInput<"string", Key, Optional, never, Default, never>)[Key] }>
Defined in: callback-data/index.d.ts:100
Add string property to schema
Type Parameters
| Type Parameter | Default type |
|---|---|
Key extends string | - |
Optional extends boolean | false |
Default extends string | never |
Parameters
| Parameter | Type | Description |
|---|---|---|
key | Key | Name of property |
options? | FieldOptions<"string", Optional, never, Default> | - |
Returns
CallbackData<{ [Key in string | number | symbol]: (SchemaType & AddFieldOutput<"string", Key, Optional, never, Default, never>)[Key] }, { [Key in string | number | symbol]: (SchemaTypeInput & AddFieldInput<"string", Key, Optional, never, Default, never>)[Key] }>
unpack()
unpack(
data):SchemaType
Defined in: callback-data/index.d.ts:155
A method for deserializing data object by schema from a string
Parameters
| Parameter | Type | Description |
|---|---|---|
data | string | String with data (please check that this string matched by CallbackData.regexp) |
Returns
SchemaType
uuid()
uuid<
Key,Optional,Default>(key,options?):CallbackData<{ [Key in string | number | symbol]: (SchemaType & AddFieldOutput<"uuid", Key, Optional, never, Default, never>)[Key] }, { [Key in string | number | symbol]: (SchemaTypeInput & AddFieldInput<"uuid", Key, Optional, never, Default, never>)[Key] }>
Defined in: callback-data/index.d.ts:121
Add uuid property to schema
Type Parameters
| Type Parameter | Default type |
|---|---|
Key extends string | - |
Optional extends boolean | false |
Default extends string | never |
Parameters
| Parameter | Type | Description |
|---|---|---|
key | Key | Name of property |
options? | FieldOptions<"uuid", Optional, never, Default> | - |
Returns
CallbackData<{ [Key in string | number | symbol]: (SchemaType & AddFieldOutput<"uuid", Key, Optional, never, Default, never>)[Key] }, { [Key in string | number | symbol]: (SchemaTypeInput & AddFieldInput<"uuid", Key, Optional, never, Default, never>)[Key] }>