Class: Addon<TPath, TEventMap>
utilities/addon.Addon
A special sub-class of Module used for the root module of an add-on.
This sub-class has a static register method that add-ons should call to properly inject themselves into FrankerFaceZ once their scripts have loaded. register is called automatically by add-ons build from the official add-ons repository.
Type parameters
Name | Type |
---|---|
TPath | extends string = "" |
TEventMap | extends ModuleEvents = ModuleEvents |
Hierarchy
Module
<TPath
,TEventMap
>↳
Addon
Constructors
constructor
• new Addon<TPath
, TEventMap
>(name?
, parent?
): Addon
<TPath
, TEventMap
>
Type parameters
Name | Type |
---|---|
TPath | extends string = "" |
TEventMap | extends ModuleEvents = ModuleEvents |
Parameters
Name | Type |
---|---|
name? | string |
parent? | GenericModule |
Returns
Addon
<TPath
, TEventMap
>
Overrides
Defined in
Properties
should_enable
• Optional
should_enable: boolean
For use in modules that are direct children of "core" or "site". If this is set to true, the module will be enabled when FrankerFaceZ is initialized.
Inherited from
Defined in
Accessors
addon_id
• get
addon_id(): undefined
| string
If this module is part of an add-on, the add-on's ID.
Returns
undefined
| string
Inherited from
Module.addon_id
Defined in
addon_root
• get
addon_root(): undefined
| GenericModule
If this module is part of an add-on, the add-on's root module.
Returns
undefined
| GenericModule
Inherited from
Module.addon_root
Defined in
enabled
• get
enabled(): boolean
Whether or not the module is State.Enabled.
Returns
boolean
Inherited from
Module.enabled
Defined in
enabling
• get
enabling(): boolean
Whether or not the module is State.Enabling.
Returns
boolean
Inherited from
Module.enabling
Defined in
load_state
• get
load_state(): LoadState
The current LoadState of this module.
Returns
Inherited from
Module.load_state
Defined in
loaded
• get
loaded(): boolean
Whether or not the module is LoadState.Loaded.
Returns
boolean
Inherited from
Module.loaded
Defined in
loading
• get
loading(): boolean
Whether or not the module is LoadState.Loading.
Returns
boolean
Inherited from
Module.loading
Defined in
log
• get
log(): Logger
A Logger instance for this module.
Returns
Inherited from
Module.log
Defined in
• set
log(log
): void
Parameters
Name | Type |
---|---|
log | Logger |
Returns
void
Inherited from
Module.log
Defined in
path
• get
path(): TPath
Returns
TPath
Inherited from
Module.path
Defined in
state
• get
state(): State
The current State of this module.
Returns
Inherited from
Module.state
Defined in
Methods
_time
▸ _time(event
): void
Record a timing event. The timing system is not yet finished.
Parameters
Name | Type | Description |
---|---|---|
event | any | The timing event to record. |
Returns
void
Inherited from
Defined in
abs_path
▸ abs_path(path
): string
Parameters
Name | Type |
---|---|
path | string |
Returns
string
Inherited from
Defined in
canDisable
▸ canDisable(): boolean
Determine whether or not this module can be disabled. This checks not only this module's state, but the state of all modules that depend on this module.
Returns
boolean
Inherited from
Defined in
canUnload
▸ canUnload(): boolean
Determine whether or not this module can be unloaded. This checks not only this module's state, but the state of all modules that depend on this module.
Returns
boolean
Inherited from
Defined in
disable
▸ disable(): undefined
| null
| Promise
<void
>
Disable this module. If the module has no onDisable method, but it has an onEnable method, then this will throw an error.
As part of disabling this module, all modules that depend on this module will be disabled first. All modules that depend on this module as a load dependency will be unloaded first.
Please note that, if any of those dependencies cannot be unloaded or disabled, this will fail.
Returns
undefined
| null
| Promise
<void
>
Inherited from
Defined in
emit
▸ emit<K
>(event
, ...args
): void
Type parameters
Name | Type |
---|---|
K | extends string |
Parameters
Name | Type |
---|---|
event | K |
...args | TEventMap [K ] |
Returns
void
Inherited from
Defined in
enable
▸ enable(): undefined
| null
| Promise
<void
>
Enable this module. If the module has no onEnable method and the module is considered LoadState.Loaded immediately, then the module will be considered State.Enabled immediately.
All of the module's requires dependencies will be enabled before the state updates and this returns.
Modules are automatically loaded before being enabled.
Returns
undefined
| null
| Promise
<void
>
Inherited from
Defined in
events
▸ events(): string
[]
Returns
string
[]
Inherited from
Defined in
eventsWithChildren
▸ eventsWithChildren(): string
[]
Returns
string
[]
Inherited from
Defined in
getAddonProxy
▸ getAddonProxy(addon_id
, addon
, root
, caller
): Module
<""
, ModuleEvents
>
Optional. This method is called when a module belonging to an Addon attempts to () or () this module. This can be used to return a Proxy for the purpose of adjusting API responses or record keeping.
Parameters
Name | Type | Description |
---|---|---|
addon_id | string | The ID of the add-on requesting the module. |
addon | AddonInfo | The manifest of the add-on requesting the module. |
root | GenericModule | The root Addon module. |
caller | GenericModule | The specific Module making the request. |
Returns
Module
<""
, ModuleEvents
>
Inherited from
Defined in
hasListeners
▸ hasListeners<K
>(event
): boolean
Type parameters
Name | Type |
---|---|
K | extends string |
Parameters
Name | Type |
---|---|
event | K |
Returns
boolean
Inherited from
Defined in
hasModule
▸ hasModule(name
): boolean
Parameters
Name | Type |
---|---|
name | string |
Returns
boolean
Inherited from
Defined in
inject
▸ inject(name
, module?
, require?
): null
| GenericModule
Parameters
Name | Type | Default value |
---|---|---|
name | null | string | Module <"" , ModuleEvents > | undefined |
module? | null | typeof Module | GenericModule | undefined |
require | boolean | true |
Returns
null
| GenericModule
Inherited from
Defined in
injectAs
▸ injectAs(variable
, name
, module?
, require?
): null
| GenericModule
Parameters
Name | Type | Default value |
---|---|---|
variable | string | undefined |
name | null | string | Module <"" , ModuleEvents > | undefined |
module? | null | typeof Module | GenericModule | undefined |
require | boolean | true |
Returns
null
| GenericModule
Inherited from
Defined in
listeners
▸ listeners<K
>(event
): ListenerInfo
<any
[]>[]
Type parameters
Name | Type |
---|---|
K | extends string |
Parameters
Name | Type |
---|---|
event | K |
Returns
ListenerInfo
<any
[]>[]
Inherited from
Defined in
load
▸ load(): undefined
| null
| Promise
<void
>
Load this module. If the module has no onLoad method and no load_requires modules listed, then it will be considered LoadState.Loaded immediately.
All of the module's load_requires dependencies will be enabled before the load state updates and this returns.
Modules are automatically loaded before being enabled.
Returns
undefined
| null
| Promise
<void
>
Inherited from
Defined in
loadFromContext
▸ loadFromContext(ctx
, log?
): Promise
<Record
<string
, Module
<""
, ModuleEvents
>>>
Attempt to load a set of child modules from a require.context object. This searches the default exports, as well as exports named module
specifically. Each discovered module will be registered and injected onto this module.
Parameters
Name | Type | Description |
---|---|---|
ctx | RequireContext | The context to load from. |
log? | Logger | A logger to use for logging errors. If not provided, this will default to this module's default logger. |
Returns
Promise
<Record
<string
, Module
<""
, ModuleEvents
>>>
A map of all loaded modules.
Inherited from
Defined in
makeEvent
▸ makeEvent<TData
>(data
): TypedFFZEvent
<TData
>
Create a new FFZEvent instance. This is a convenience method that wraps ()
Type parameters
Name | Type |
---|---|
TData | extends Record <string , any > = {} |
Parameters
Name | Type |
---|---|
data | TData |
Returns
TypedFFZEvent
<TData
>
Inherited from
Defined in
makeWaitableEvent
▸ makeWaitableEvent<TData
, TReturn
>(data
): TypedFFZWaitableEvent
<TData
, TReturn
>
Create a new FFZWaitableEvent instance. This is a convenience method that wraps ()
Type parameters
Name | Type |
---|---|
TData | extends Record <string , any > = {} |
TReturn | void |
Parameters
Name | Type |
---|---|
data | TData |
Returns
TypedFFZWaitableEvent
<TData
, TReturn
>
Inherited from
Defined in
many
▸ many<K
>(event
, ttl
, fn
, ctx?
, priority?
, prepend?
): void
Type parameters
Name | Type |
---|---|
K | extends string |
Parameters
Name | Type | Default value |
---|---|---|
event | K | undefined |
ttl | number | undefined |
fn | EventListener <TEventMap [K ]> | undefined |
ctx? | any | undefined |
priority? | number | undefined |
prepend | boolean | false |
Returns
void
Inherited from
Defined in
off
▸ off<K
>(event?
, fn?
, ctx?
): void
Type parameters
Name | Type |
---|---|
K | extends string |
Parameters
Name | Type |
---|---|
event? | K |
fn? | EventListener |
ctx? | any |
Returns
void
Inherited from
Defined in
offContext
▸ offContext<K
>(event
, ctx?
): void
Type parameters
Name | Type |
---|---|
K | extends string |
Parameters
Name | Type |
---|---|
event | K |
ctx? | any |
Returns
void
Inherited from
Defined in
on
▸ on<K
>(event
, fn
, ctx?
, priority?
, prepend?
): void
Type parameters
Name | Type |
---|---|
K | extends string |
Parameters
Name | Type | Default value |
---|---|---|
event | K | undefined |
fn | EventListener <TEventMap [K ]> | undefined |
ctx? | any | undefined |
priority? | number | undefined |
prepend | boolean | false |
Returns
void
Inherited from
Defined in
onDisable
▸ onDisable(): void
| Promise
<void
>
Optional. If this method is defined, it will be called when the module is being disabled. The module will not be set to State.Disabled until after this method returns. Promises are supported.
Returns
void
| Promise
<void
>
Inherited from
Defined in
onEnable
▸ onEnable(): void
| Promise
<void
>
Optional. If this method is defined, it will be called when the module is being enabled. The module will not be set to State.Enabled until after this method returns. Promises are supported.
When this is called, all modules that this module requires will already be enabled and injected modules will have been injected.
Returns
void
| Promise
<void
>
Inherited from
Defined in
onLoad
▸ onLoad(): void
| Promise
<void
>
Optional. If this method is defined, it will be called when the module is being loaded. The module will not be set to LoadState.Loaded until after this method returns. Promises are supported.
When this is called, all modules that this module load_requires will already be enabled and injected modules will have been injected.
Returns
void
| Promise
<void
>
Inherited from
Defined in
onUnload
▸ onUnload(): void
| Promise
<void
>
Optional. If this method is defined, it will be called when the module is being unloaded. The module will not be set to LoadState.Unloaded until after this method returns. Promises are supported.
When this is called, all modules that depend on this module will already have been disabled.
Returns
void
| Promise
<void
>
Inherited from
Defined in
once
▸ once<K
>(event
, fn
, ctx?
, priority?
, prepend?
): void
Type parameters
Name | Type |
---|---|
K | extends string |
Parameters
Name | Type | Default value |
---|---|---|
event | K | undefined |
fn | EventListener <TEventMap [K ]> | undefined |
ctx? | any | undefined |
priority? | number | undefined |
prepend | boolean | false |
Returns
void
Inherited from
Defined in
populate
▸ populate(ctx
, log?
): Promise
<Record
<string
, Module
<""
, ModuleEvents
>>>
Parameters
Name | Type |
---|---|
ctx | RequireContext |
log? | Logger |
Returns
Promise
<Record
<string
, Module
<""
, ModuleEvents
>>>
Deprecated
See
Defined in
register
▸ register(name
, module
, inject_reference?
): Module
<any
, ModuleEvents
>
Parameters
Name | Type | Default value |
---|---|---|
name | string | undefined |
module | typeof Module | undefined |
inject_reference | boolean | false |
Returns
Module
<any
, ModuleEvents
>
Inherited from
Defined in
resolve
▸ resolve(name
): null
| Module
<""
, ModuleEvents
>
Parameters
Name | Type |
---|---|
name | string | Module <"" , ModuleEvents > |
Returns
null
| Module
<""
, ModuleEvents
>
Inherited from
Defined in
unload
▸ unload(): undefined
| null
| Promise
<void
>
Unload this module. If the module has no onUnload method, but it has an onLoad method, then this will throw an error.
When this is called, if this module is currently enabled, it will be disabled first. As part of that, all modules that depend on this module will also be disabled first. All modules that depend on this module as a load dependency will be unloaded first.
Please note that, if any of those dependencies cannot be unloaded or disabled, this will fail.
Returns
undefined
| null
| Promise
<void
>
Inherited from
Defined in
waitFor
▸ waitFor<K
>(event
, ctx?
, priority?
, prepend?
): Promise
<TEventMap
[K
]>
Type parameters
Name | Type |
---|---|
K | extends string |
Parameters
Name | Type | Default value |
---|---|---|
event | K | undefined |
ctx? | any | undefined |
priority? | number | undefined |
prepend | boolean | false |
Returns
Promise
<TEventMap
[K
]>
Inherited from
Defined in
register
▸ register(id?
, info?
): void
Register this add-on with the FrankerFaceZ module system. This should be called as soon as your add-on class is available and ready to be enabled. The AddonManager class will then call enable on this module (assuming the user wants the add-on to be enabled.)
Parameters
Name | Type | Description |
---|---|---|
id? | string | AddonInfo | This add-on's ID, or an AddonInfo object. |
info? | AddonInfo | An optional AddonInfo object if id was not set to an AddonInfo object. |
Returns
void