Skip to content

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(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
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(id, value): string

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

ParameterTypeDescription
idstringA unique identifier for the shared value.
valueanyThe value to be shared.

string

A string representing the code to access the shared value.


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

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

ParameterType
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


removeSharedById(id): void

Removes the shared value with a certain id created by createShared

ParameterType
idstring

void


runInScope(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
prefixstring | boolean
callback(code, run) => true | void

Function

void