1 min read

SDK Overview

The Poq NodeJS SDK provides developers with set of Contracts, Clients and Services to simplify integration process between the Poq mobile clients and the Poq platform or 3td Party platforms (e.g: Salesforce and etc..).

NodeJS SDK comprise of several packages/libraries that can be installed via npm, yarn or pnpm for node-based projects.

  • Supported NodeJS version: v14 LTS.
  • Libraries are written in Typescript and support all necessary typings for developer convenience though can be use in pure JavaScript projects.

Packages stored in the NPM Private Poq Organization repo and requires initial access to use. Please ensure you have necessary keys/credentials in advance via support.

Packages

@poq/sdk

  • Contains all of the platform contracts such as Account, Checkout, Store, Product, and other.
  • Provides HTTP clients to make requests to Poq platform APIs e.g. ProductClient, CheckoutClient, and other.

@poq/sdk-sfcc

  • Contains contracts related to OCAPI ShopAPI v21.9 such as Basket, Customer, Product, and other.
  • Provides HTTP clients to make requests to Salesforce Commerce Cloud.
  • Provides Mid-level services to work with SFCC contracts and shape Poq expected contracts from them.

@poq/proxy-middleware

  • Contains proxy handler factory creates connect compatible middleware to proxy requests.
  • Contains validation and sanitaization middlewares that are specific to the Poq Platform. (They are combined alltogether via usage of ProxyHandlerFactory for developer convenience)

@poq/nestjs-proxy

  • Provides developer with NestJS (express based app) compatible module to proxy requests.

@poq/transformer

  • Transformer is an utility to convert plain object into classes and back. Transformable classes can use pre-compiled mode that speed up convertion.

Versioning

The SDKs use semantic versioning i.e. major.minor.revision.

Major: Library contains major features or breaking changes.

Minor: Library contains minor features and non-breaking changes.

Revision: Library does not contain any new features that are visible to the consumers but it may have other changes such as bug fixes, performance improvements or documentation.