@readme/metrics-sdk-snippets
TypeScript icon, indicating that this package has built-in type declarations

2.4.0 • Public • Published

@readme/metrics-sdk-snippets

Generate code snippets for ReadMe Metrics SDKs in multiple languages.

Build

This library was built for ReadMe's Metrics onboarding flow.

Installation

npm install --save @readme/metrics-sdk-snippets

Usage

import { MetricsSDKSnippet } from '@readme/metrics-sdk-snippets';

const { convert } = new MetricsSDKSnippet(
  [
    {
      name: 'petstore_auth',
      default: 'default-key',
      source: 'security',
      type: 'oauth2',
    },
    {
      name: 'basic_auth',
      default: 'default',
      source: 'security',
      type: 'http',
    },
  ],
  { secret: 'my-readme-secret' }
);

console.log(convert('webhooks', 'node', 'express'));

This generates the following object:

{
  ranges: {
    "security": {
      "petstore_auth": { "line": 26 }, // The line where this data is at.
      "basic_auth": { "line": 27 }
    }
  },
  snippet: '// see below',
}

The generated snippet for this results in a Personalized Docs Webhook example, which uses the ReadMe Node Metrics SDK:

import express from 'express';
import readme from 'readmeio';

const app = express();

// Your ReadMe secret
const secret = 'my-readme-secret';

app.post('/webhook', express.json({ type: 'application/json' }), async (req, res) => {
  // Verify the request is legitimate and came from ReadMe
  const signature = req.headers['readme-signature'];

  try {
    readme.verifyWebhook(req.body, signature, secret);
  } catch (e) {
    // Handle invalid requests
    return res.status(401).json({ error: e.message });
  }

  // Fetch the user from the database and return their data for use with OpenAPI variables.
  // const user = await db.find({ email: req.body.email })
  return res.json({
    // OAS Security variables
    petstore_auth: 'default-key',
    basic_auth: { user: 'user', pass: 'pass' },
  });
});

const server = app.listen(8000, '0.0.0.0', () => {
  console.log('Example app listening at http://%s:%s', server.address().address, server.address().port);
});

Readme

Keywords

Package Sidebar

Install

npm i @readme/metrics-sdk-snippets

Weekly Downloads

319

Version

2.4.0

License

ISC

Unpacked Size

385 kB

Total Files

171

Last publish

Collaborators

  • gratcliff
  • dannobytes
  • gkoberger
  • domharrington
  • mjcuva
  • kanadgupta
  • jonursenbach
  • rafegoldberg
  • dashron
  • iliast