npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

wordsmith-node-sdk

v1.2.0

Published

A Node.js wrapper for the Wordsmith API from Automated Insights

Downloads

5

Readme

Wordsmith API client for Node.js

Intro to Wordsmith

Wordsmith makes it easy to generate thousands of stories, reports, and articles in the time it takes to write just one. Wordsmith is a natural language generation tool that enables users to turn data into text using dynamic templates. The platform is easy to learn, and powerful enough to make each piece of content totally unique.

How you interact with Wordsmith

The Wordsmith API allows developers to generate new content using the Templates created in the Wordsmith web app by users at your company. Developers can use the API to send new data which will trigger the generation of new text content. You have complete control over when you generate and use the content.

Installation

Run npm install wordsmith-node-sdk --save in your console.

Usage

Every resource is accessible via the wordsmith instance:

var wordsmith = require('wordsmith-node-sdk')('your_api_key', 'your_user_agent');
// wordsmith.{METHOD} or wordsmith.{RESOURCE}.{METHOD}

All resources return a Promise for easy asynchronous management.

Available Resources & Methods

List Projects

Returns an array of Projects

wordsmith.projects.all()
  .then(function(projects) {
    // do something with projects
  })
  .catch(function(error) {
    // deal with errors
  });

Find a Project

Returns a specific Project based on its slug-name

wordsmith.projects.find('YOUR_PROJECT_SLUG')
  .then(function(project) {
    // do something with project
  })
  .catch(function(error) {
    // deal with errors
  });

Get the data schema of a Project

Returns a the data schema of a specific Project. The data schema details the data that must be passed when generating content (see below).

wordsmith.projects.find('YOUR_PROJECT_SLUG')
  .then(function(project) {
    return project.schema;
  })
  .then(function(schema) {
    // do something with schema
  })
  .catch(function(error) {
    // deal with errors
  });

/*
Schema:

  {
    a: "Number",
    b: "Number",
    c: "Number"
  }
*/

List Templates

Returns an array of Templates

wordsmith.projects.find('YOUR_PROJECT_SLUG')
  .then(function(project) {
    return project.templates.all();
  })
  .then(function(templates) {
    // do something with templates
  })
  .catch(function(error) {
    // deal with errors
  });

Find a Template

Returns a single Template based on its slug-name

wordsmith.projects.find('YOUR_PROJECT_SLUG')
  .then(function(project) {
    return project.templates.find('YOUR_TEMPLATE_SLUG');
  })
  .then(function(template) {
    // do something with template
  })
  .catch(function(error) {
    // deal with errors
  });

Generate Content

Turns data into narrative content. Data should be in the form of an object with keys for each data variable your Template uses. To see which keys are required, look at the data schema returned by project.schema above.

wordsmith.projects.find('YOUR_PROJECT_SLUG')
  .then(function(project) {
    return project.templates.find('YOUR_TEMPLATE_SLUG');
  })
  .then(function(template) {
    return template.generate(YOUR_DATA_OBJECT);
  })
  .then(function(content) {
    // do something with content
  })
  .catch(function(error) {
    // deal with errors
  });

/*
Data object example:

    {
      a: 1,
      b: 2,
      c: 3
    }
*/

Test Generate Content

Test your implementation of the generate content function. Will return with an error or a success message and will not bill your organization.

wordsmith.projects.find('YOUR_PROJECT_SLUG')
  .then(function(project) {
    return project.templates.find('YOUR_TEMPLATE_SLUG');
  })
  .then(function(template) {
    return template.test(YOUR_DATA_OBJECT);
  })
  .then(function(content) {
    // do something with content
  })
  .catch(function(error) {
    // deal with errors
  });

/*
Data object example:

    {
      a: 1,
      b: 2,
      c: 3
    }
*/

Development

Run tests using npm test from the root of the repo.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/automatedinsightsinc/wordsmith-node-sdk