JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 8
  • Score
    100M100P100Q54193F
  • License ISC

OKX MarketPlace Core SDK

Package Exports

  • @okxweb3/marketplace-core
  • @okxweb3/marketplace-core/dist/cjs/index.js
  • @okxweb3/marketplace-core/dist/esm/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@okxweb3/marketplace-core) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@okxweb3/marketplace-core

@okxweb3/marketplace-core is an SDK that offers essential foundational capabilities, enabling developers to create reliable and efficient applications.

Installation

npm i @okxweb3/marketplace-core

Usage

logger

includes a robust logging system designed to support code debugging and monitoring. This system provides multiple log levels and is tailored for development environments:

import { logger } from '@okxweb3/marketplace-core'
logger.debug('debug')
logger.info('info', true, 2)
logger.warn('warn', {})
logger.error('error', new Error('error'))

Middleware

A sophisticated middleware system that utilizes an onion model architecture. This approach enhances flexibility and control over data processing and application logic:

import { mixinMiddleware, Middleware, logger } from '@okxweb3/marketplace-core'

class Demo extends Middleware {
  // Passed as context of middleware
  public ctx = {
    type: '', // The name of the method called
    commonProperty: '0x', // Custom properties 
    request: {
      commonProperty1: 'commonProperty1', // Custom properties
      params: [] // Called method input parameters
    },
    response: {
      commonProperty2: true, // Custom properties
      result: '' // The method called returns the result
    }
  }

  constructor () {
    super()
  }

  // Used to identify whether to execute middleware when a certain method is executed.
  @mixinMiddleware
  async buy (options: { psbt: string }): Promise<string> {
    return Promise.resolve('buy')
  }
}

const demo = new Demo()

// Register middleware
demo.use(async (ctx, next) => {
  // before
  logger.info(`call ${ctx.type} params: `, ctx.request.params)
  // execute
  await next()
  // after
  logger.info(`call ${ctx.type} result: `, ctx.response.result)
})

// When calling the buy method, the registered middleware will be executed.
await demo.buy({ psbt: 'psbt' });

Pubsub

The PubSub system is a simple yet effective implementation of the Publish-Subscribe pattern designed in TypeScript. It allows different parts of an application to communicate with each other by subscribing to and publishing events.

import { PubSub } from '@okxweb3/marketplace-core'

const pubSub = new PubSub();

const onMessage = (data) => {
  console.log(`Received message: ${data.text}`);
};

pubSub.subscribe('message', onMessage);

pubSub.publish('message', { text: 'Hello, World!' }); // Received message: Hello, World!

pubSub.unsubscribe('message', onMessage);