Skip to content

An object-oriented JavaScript wrapper for the Pastebin API.

License

Notifications You must be signed in to change notification settings

cAttte/pastebin.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pastebin.js

An object-oriented JavaScript wrapper for the Pastebin API.

Installation

$ npm install @catte_/pastebin.js

Usage

const { PastebinClient } = require("@catte_/pastebin.js")
const pastebin = new PastebinClient(process.env.API_KEY)

const paste = await pastebin.pastes.create("console.log('hello, world')", {
    title: "pastebin.js test",
    format: "javascript",
    privacy: "unlisted"
})
console.log(paste.url)

Classes

The module exports the following classes, you can import them like so:

const {
    PastebinClient,
    PastebinError,
    Paste,
    User,
    ClientUser,
    PasteStore,
    UserStore,
    UserPasteStore
} = require("@catte_/pastebin.js")

PastebinClient

The client used to interact with the Pastebin API.

.constructor()

new PastebinClient(apiKey, username, password)
Parameters
name description type default
apiKey Your Pastebin API key string null
username Your Pastebin username string null
password Your Pastebin password string null

.credentials

Your Pastebin credentials.
Type: PastebinCredentials

.user

The user the client logged in with, if it has.
Type: ?ClientUser

.users

All of the cached users.
Type: ?UserStore

.pastes

All of the cached pastes.
Type: ?PasteStore

.login()

Login with the stored username and password and store the user key.

Returns

Promise<PastebinClient>

PastebinError extends Error

Thrown when there's an error related to the Pastebin API or pastebin.js.

.constructor()

new PastebinError(message)
Parameters
name description type default
message The error message string

.message

The error message.

Paste

A Pastebin paste.

.constructor()

new Paste(client, data)
Parameters
name description type default
client The client used to get this paste PastebinClient
data The data obtained from the API Object

.client

The client used to get this paste.
Type: PastebinClient

.key

The key of this paste.
Type: string

.url

The URL of this paste.
Type: string

.title

The title of this paste.
Type: ?string

.author

The author of this paste.
Type: ?User

.content

The content of this paste.
Type: ?string

.size

The length of the content of this paste.
Type: ?number

.date

The date this paste was posted.
Type: ?Date

.format

The format of this paste.
Type: ?string

.privacy

The privacy setting of this paste.
Type: ?number

.expiry

The expiry time of this paste.
Type: ?string

.hits

The number of times anyone saw this paste.
Type: ?number

.fetch()

Fetch the content of this paste, and store it in the cache.

Returns

Promise<Paste>

.delete()

Delete this paste.

Returns

Promise<Paste>

User

A Pastebin user.

.constructor()

new User(client, username)
Parameters
name description type default
client The client used to get this paste PastebinClient
username The user's username string

.client

The client used to get this user.
Type: PastebinClient

.username

This user's username.
Type: string

.me

Whether this user is the same as the client's user.
Type: boolean

ClientUser extends User

The Pastebin user of the logged in client.

.constructor()

new ClientUser(client, data)
Parameters
name description type default
client The client used to get this paste PastebinClient
data The data obtained from the API Object

.username

This user's username.
Type: string

.format

This user's format setting.
Type: ?string

.expiry

This user's expiry setting.
Type: ?string

.avatarURL

This user's avatar URL.
Type: ?string

.privacy

This user's privacy setting.
Type: ?number

.website

This user's website.
Type: ?string

.email

This user's e-mail.
Type: ?string

.location

This user's location.
Type: ?string

.pro

Whether this user is a PRO account.
Type: ?boolean

.pastes

All of this user's cached pastes.
Type: ?UserPasteStore

PasteStore extends Map

A structure that holds all of the cached pastes.

.constructor()

new PasteStore(client, entries)
Parameters
name description type default
client The client the store belongs to PastebinClient
entries Array<Array<string, Paste>> null

.client

The client this store belongs to.
Type: PastebinClient

.fetch()

Fetch a paste by its key, and store it in the cache.

Parameters
name description type default
key The paste's key string
Returns

Promise<Paste>

.create()

Create a paste, and store it in the cache.

Parameters
name description type default
content The paste's content any
options Array<Array<string, Paste>> null
options.title The paste's title string {}
options.format The paste's format Format null
options.privacy The paste's privacy setting Privacy null
options.expiry The paste's expiry time Expiry null
Returns

Promise<Paste>

UserStore

A structure that holds all of the cached users.

.constructor()

new UserStore(client, entries)
Paramaters
name description type default
client The client the store belongs to PastebinClient
entries Array<Array<string, Paste>> null

.client

The client this store belongs to.
Type: PastebinClient

.fetch()

Fetch a user by their username, and store them in the cache.

Parameters
name description type default
username The user's username string
Returns

Promise<User>

UserPasteStore

A structure that holds all of a user's cached pastes.

.constructor()

new UserPasteStore()
Parameters
name description type default
client The client the store belongs to PastebinClient
user The user the store belongs to User
entries Array<Array<string, Paste>> null

.client

The client this store belongs to.
Type: PastebinClient

.user

The user this store belongs to.
Type: User

.fetch()

Fetch this user's pastes, and store them in the cache.

Parameters
name description type default
max The maximum number of pastes to fetch number 50
Returns

Promise<UserPasteStore>

Typedefs

PastebinCredentials

The credentials provided to and stored in the PastebinClient.

Type: { apiKey?, username?, password?, userKey? }

Properties

name description type default
apiKey Your Pastebin API key string null
username Your Pastebin username string null
password Your Pastebin password string null
userKey Your Pastebin user key, obtained when logging in string null

PasteCreateOptions

Options to create a paste.

Type: { title?, format?, privacy?, expiry? }

Properties

name description type default
title Your Pastebin API key string null
format Your Pastebin username Format null
privacy Your Pastebin password Privacy null
expiry Your Pastebin user key, obtained when logging in Expiry null

Format

A "format," which will be used for syntax highlighting. You can see the full list of formats here.

Type: string

Privacy

A privacy setting. Can be one of the following:

  • 0 (or "public")
  • 1 (or "unlisted")
  • 2 (or "private")

Type: string or number

Expiry

An expiry setting. Can be one of the following:

  • "NEVER" (or "N")
  • "10 MINUTES" (or "10M")
  • "1 HOUR" (or "1H")
  • "1 DAY" (or "1D")
  • "1 WEEK" (or "1W")
  • "2 WEEKS" (or "2W")
  • "1 MONTH" (or "1M")
  • "6 MONTHS" (or "6M")
  • "1 YEAR" (or "1Y")

About

An object-oriented JavaScript wrapper for the Pastebin API.

Topics

Resources

License

Stars

Watchers

Forks