@catte_/pastebin.js v2.0.1
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
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
.delete()
Delete this paste.
Returns
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
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
.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
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
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
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"
)