Skip to main content

Documentation Index

Fetch the complete documentation index at: https://bym.lonestill.uk/llms.txt

Use this file to discover all available pages before exploring further.

Все патчи снимаются при stop() автоматически.

before

const unpatch = api.Patcher.before(object, 'method', (args) => {
  args[0] = args[0].toUpperCase(); // модифицируем аргументы на месте
})
Вызывается до оригинальной функции. Возвращаемое значение игнорируется.

after

const unpatch = api.Patcher.after(object, 'method', (args, ret) => {
  return ret + 1; // undefined — оригинальный результат сохраняется
})
Вызывается после. Если вернуть не undefined — заменяет результат.

instead

const unpatch = api.Patcher.instead(object, 'method', (args, original) => {
  return original(...args) + '!';
})
Полная замена. Оригинал вызывается только если ты сам его позвал.

unpatch

const unpatch = api.Patcher.after(obj, 'method', fn);
unpatch(); // снимает только этот патч

unpatchAll

api.Patcher.unpatchAll() // снять все патчи плагина вручную

Несколько патчей на один метод

api.Patcher.before(obj, 'add', (args) => { args[0] *= 10; });
api.Patcher.after(obj, 'add', (args, ret) => ret + 1000);
// obj.add(2, 3): before 2→20, orig 20+3=23, after 23+1000=1023

Пример

BYM.register({ id: 'nav-logger' }, (api) => ({
  start() {
    api.Patcher.after(window.history, 'pushState', (args) => {
      api.Logger.log('Переход:', args[2]);
    });
  },
  stop() {},
}));