0.4.3 • Published 5 years ago

pp-wapi v0.4.3

Weekly downloads
3
License
MIT
Repository
github
Last release
5 years ago

A Wordpress api client

Description

A very simple Javascript client for accessing a Wordpress site's API \ Currently only offers access to Posts and Terms following the standard schema \ (very unstable)

Documentation

  1. Instantiate a WPClient instance passing in your wordpress site's url
  2. Call either WPClient::getPosts or WPClient::getTerms passing in a callback and args
  3. Receive Result<WPResponse, Err> and check with isOk / isErr or unwrap() to get value

A WPResponse contains meta data about the query as well as the received content

interface WPResponse<T> {
    meta: QueryMeta
    content: T // currently either BasicPost[] or Term[]
}

// not in all queries so possibility to be undefined, will move to Maybe<T> in the future
interface QueryMeta {
  count: number | undefined,
  totalPages: number | undefined
}

-- Notes

  • Currently getPosts and getTerms are curried
    • To call them either pass in callback then args like so:
      WPClient::getPosts(callback)(args)
    • Or save to a variable:
      const query = WPClient::getPosts(callback)
      query(args)
  • Uses fetch and promises, use polyfills if supporting legacy browsers
  • Caches fetch requests in memory during a session

-- Example

import { WPClient, unwrap } from "pp-wapi"

// Instantiate client
const client = new WPClient("www.testwp.com")

// Callback to run on request completion
const callback = result => console.log(unwrap(result))

// Post query args, see below for list of possible values
const args = {
    page: 2,
    categories: [ 1, 4 ]
}
client.getPosts(callback)(args)

-- Post Query Possible Args

interface PostQueryArgs {
  type?: string
  page?: number
  per_page?: number
  p?: number
  slug?: string
  search?: string
  after?: string
  categories?: number[]
  categories_exclude?: number[]
  tags?: number[]
  tags_exclude?: number[]
  author?: number[]
  author_exclude?: number[]
  exclude?: number[]
  include?: number[]
  offset?: number
  order?: Order
  orderby?: PostOrderBy
  status?: string
}

-- Term Query Possible Args

interface TermQueryArgs {
  type: string
  term_id?: number
  page?: number
  per_page?: number
  search?: string
  exclude?: number[]
  include?: number[]
  order?: Order
  orderby?: TermOrderBy
  hide_empty?: boolean
  parent?: number
  slug?: string
}
0.4.3

5 years ago

0.4.2

5 years ago

0.4.1

5 years ago

0.4.0

6 years ago

0.3.1

6 years ago

0.3.0

6 years ago

0.2.0

6 years ago

0.0.1

6 years ago