465a875460
also .edit and .editText bound methods for Message |
||
---|---|---|
.. | ||
auth | ||
files | ||
messages | ||
parse-modes | ||
updates | ||
users | ||
_imports.ts | ||
README.md |
What is this?
Files in this directory are pre-processed by generate-client.js
, and client.ts
is generated from the functions that
are exported in this directory.
Since we need to properly type the copied signatures, there are a few "magic" instructions for the preprocessor that are used to handle imports. Also, there are a few "magic" instructions to make private methods and extend client fields.
All instructions are used as a one-line comment, like this: // @copy
@copy
Can be placed before an import or any other code block.
When placed before import, this import will be copied to client.ts
, and paths will be adjusted. When there are
multiple copied imports from the same files, they are merged.
When placed before any other block, it will be directly copied before the TelegramClient
class.
Note
all copied imports should be inside
_imports.ts
file.
Example:
// @copy
import { Something } from '../../somewhere'
// @copy
interface SomeGreatInterface { ... }
@extension
Used before an interface
declaration. Fields from that interface will be added as protected
to TelegramClient
.
Example:
// @extension
interface AwesomeExtension {
_field1: number
_field2: string
}
@initialize
Often you'll want to initialize your @extension
fields in a constructor. You can do this by using @initialize
instruction before a function containing initialization code.
Note
If you are using some custom types, make sure their imports are copied!
Example:
// @initialize
function _initializeAwesomeExtension(this: TelegramClient) {
this._field1 = 42
this._field2 = 'uwu'
}
@returns-exported
Used as a first statement inside an exported function's body to indicate that this method returns an object of type which is exported from the same file.
Example:
export type FooOrBar = Foo | Bar
export function getFooOrBar(this: TelegramClient): FooOrBar {
// @returns-exported
return new Foo()
}