JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 153
  • Score
    100M100P100Q54053F
  • 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' });