Skip to content

Global Rewriter Api

The rewriter API allows you to modify the bundled code of Gimkit in order to expose values or change certain behaviors. Due to the unpredictable nature of bundling, you cannot assume that variable names will remain the same beteen updates.

addParseHook(pluginName, prefix, modifier): () => void

Creates a hook that will modify the code of a script before it is run. This value is cached, so this hook may not run on subsequent page loads. addParseHook should always be called in the top level of a script.

ParameterTypeDescription
pluginNamestringThe name of the plugin creating the hook.
prefixstring | booleanLimits the hook to only running on scripts beginning with this prefix. Passing true will only run on the index script, and passing false will run on all scripts.
modifier(code) => stringA function that will modify the code, which should return the modified code.

Function

void


createShared(pluginName, id, value): string

Creates a shared value that can be accessed from any script.

ParameterTypeDescription
pluginNamestringThe name of the plugin creating the shared value.
idstringA unique identifier for the shared value.
valueanyThe value to be shared.

string

A string representing the code to access the shared value.


exposeVar(pluginName, prefix, exposer): () => void

A utility function that exposes a variable based on regex to get its name.

ParameterType
pluginNamestring
prefixstring | boolean
exposer{ callback: (val) => void; check: string; find: RegExp; multiple: boolean; }
exposer.callback(val) => void
exposer.check?string
exposer.findRegExp
exposer.multiple?boolean

Function

void


removeParseHooks(pluginName): void

Removes all parse hooks created by a certain plugin

ParameterType
pluginNamestring

void


removeRunInScope(pluginName): void

Stops all hooks created by runInScope

ParameterType
pluginNamestring

void


removeShared(pluginName): void

Removes all values created by createShared by a certain plugin

ParameterType
pluginNamestring

void


removeSharedById(pluginName, id): void

Removes the shared value with a certain id created by createShared

ParameterType
pluginNamestring
idstring

void


runInScope(pluginName, prefix, callback): () => void

Runs code in the scope of modules when they are loaded, or when runInScope is called with them already loaded. Returning true from the callback will remove the hook.

ParameterType
pluginNamestring
prefixstring | boolean
callback(code, run) => true | void

Function

void