1.1.0 • Published 9 months ago

@okxweb3/marketplace-core v1.1.0

Weekly downloads
-
License
ISC
Repository
github
Last release
9 months ago

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);
1.1.0

9 months ago

1.1.0-beta.2

10 months ago

1.1.0-beta.3

10 months ago

1.1.0-beta.1

11 months ago

1.1.0-beta

11 months ago

1.0.0

11 months ago

1.0.0-beta.1

11 months ago

1.0.0-beta

11 months ago