New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@graasp/etherpad-api

Package Overview
Dependencies
Maintainers
4
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@graasp/etherpad-api

Promised based query to etherpad-lite

latest
Source
npmnpm
Version
3.0.0
Version published
Maintainers
4
Created
Source

etherpad-api

npm version Build Status

Promised based query to etherpad-lite

how it works

It uses request-promise-native to call each Etherpad API endpoints

The API are similar

  • Methods names are identical to the API documentation
  • The same goes for the params You just have to pass them as an object

But there is some differences:

  • Etherpad-api will reject any Etherpad response which code isn't 0
  • All errors will be created by http-errors
  • It will error if you try to call an endpoint that isn't implemented on the Etherpad API version you're using

configuration

const Etherpad = require('@hiswe/etherpad-api')

const etherpad = new Etherpad({
  apiKey: `6b95f6d270f4f719f1b70e8ad2f742deef94c5bccee7d495250c0fbb8cecefc7`,
  // API KEY
  url: `http://my-etherpad-server`,
  // default: http://0.0.0.0:9001 (local etherpad server)
  // full URL to your etherpad server
  apiVersion: `1.0.0`
  // default: latest (1.2.13)
  // If you want to prevent your application from calling unsupported methods
  timeout: 7000
  // default: 1000
  // request timeout
})

// now you have access to all etherpad methods…

use

As an example: calling getHTML

etherpad
  .getHTML({ padID: `my-pad` })
  .then(data => console.log(data))
  .catch(error => console.log(error))

if you don't want to error on etherpad errors: add false as the second parameter

etherpad
  // add `false` as the second parameter
  .getHTML({ padID: `a-pad-that-does-not-exist` }, false)
  .then(data => {
    // data will be null because “padID does not exist”
    assert.equal(data, null)
    console.log(data)
  })
  .catch(error => console.log(error))

full example

const express = require('express')
const Etherpad = require('@hiswe/etherpad-api')

const app = express()
const etherpad = new Etherpad({
  url: `http://my-etherpad-server`,
  apiKey: `6b95f6d270f4f719f1b70e8ad2f742deef94c5bccee7d495250c0fbb8cecefc7`,
})

app.get(`/pads/:padID`, (req, res) => {
  const { padID } = req.params
  etherpad
    .getHTML({ padID })
    .then(padData => res.send(padData))
    .catch(error => res.status(error.statusCode).json(error))
})

class use

alternatively you could use/extend the original class

const Etherpad = require('@hiswe/etherpad-api')

class MyEtherpad extends Etherpad {
  // …you can extend the class here
}

const etherpad = new MyEtherpad({
  url: `http://my-etherpad-server`,
  apiKey: `6b95f6d270f4f719f1b70e8ad2f742deef94c5bccee7d495250c0fbb8cecefc7`,
})

other stuff

changelog

See CHANGELOG.md

run the tests

  • clone the project
  • npm install
  • npm test

alternatives

Keywords

etherpad

FAQs

Package last updated on 28 Feb 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts