greasetools

Functions and other tools for GreaseMonkey UserScript development.

This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greasyfork.org/scripts/440463/1021292/greasetools.js

Author
MysteryBlokHed
Version
0.5.0
Created
2022-02-22
Updated
2022-02-22
License
MIT OR Apache-2.0

GreaseTools ![Build Badge] ![NPM Badge] ![License Badge]

Functions and other tools for GreaseMonkey UserScript development.

Documentation

Documentation for the main branch is hosted at https://greasetools.adamts.me. Documentation can be built from a cloned repository by running yarn doc.

Use

Most functions will require some @grant's to work properly, but can fall back to other things like the browser's localStorage if grants aren't found. Information for each function can be found in its docs.

In a Node project

To use in a Node project, add GreaseTools as a dependency.

# npm
npm install greasetools

# yarn
yarn add greasetools

You can then import and use GreaseTools functions:

import { valuesProxy, getValues } from 'greasetools'

const values = valuesProxy(
  await getValues({
    hello: 'World!',
  }),
)

In a normal UserScript

In a UserScript that isn't built with Node.js, you can @require the library:

// @require     https://gitlab.com/MysteryBlokHed/greasetools/-/raw/main/greasetools.user.js

You can replace main with a specific release tag like v0.1.0 to require a specific version:

// @require     https://gitlab.com/MysteryBlokHed/greasetools/-/raw/v0.1.0/greasetools.user.js

Functions are available on the global GreaseTools object:

const { valuesProxy, getValues } = GreaseTools

const values = valuesProxy(
  await getValues({
    hello: 'World!',
  }),
)

Type declarations

The types included with the npm package still work when the library is @require'd. Just add the types as a dev dependency for a Node project or install it globally. With the package installed, include the following reference line somewhere in your TypeScript source file:

/// <reference types="greasetools" />

License

GreaseTools is licensed under either of

at your option.

[build badge]: https://img.shields.io/gitlab/pipeline-status/MysteryBlokHed/greasetools [npm badge]: https://img.shields.io/npm/v/greasetools [license badge]: https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-green