0.0.2 • Published 2 years ago

@msa-makers/txios v0.0.2

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

@msa-makers/txios

TL;DR

txios
  .start(rtId, payload)
  .then((txResponse) => /* response */ )
  .catch((txError) =>  /* error */ );

install

yarn add @msa-makers/txios
# or
npm i @msa-makers/txios

##JavaScript app.js

import { Txios } from "@msa-makers/txios";

// create txios
const txios = Txios.create({
  runnerUrl: "http://localhost:3000/runner/routeRequest", // check SOP Proxy
  notifierUrl: "wss://notifier.msamaker.bespinglobal.com/txresult",
});

// routing Id
const rtid = "rt_20230224064821";
// payload
const order = {
  service_name: "order",
  payload: {
    Combine: {
      index: 1,
    },
  },
};

// request
txios
  .start(rtid, order)
  .then((txResponse) => console.log("txResponse", txResponse))
  .catch((txError) => console.log("txError", txError));

##TypeScript app.ts

import { Txios, TxiosError, TxResponse } from "@msa-makers/txios";

// create txios
const txios = Txios.create({
  runnerUrl: "http://localhost:3000/runner/routeRequest", // check SOP Proxy
  notifierUrl: "wss://notifier.msamaker.bespinglobal.com/txresult",
});

// routing Id
const rtid = "rt_20230127132114";
// payload
const order: Order = {
  service_name: "order",
  payload: {
    Combine: {
      index: 1,
    },
  },
};

// request
txios
  .start<Order, OrderResult>(rtid, payload)
  .then((txResponse: TxResponse<OrderResult>) =>
    console.log("txResponse", txResponse)
  )
  .catch((txError: TxiosError) => console.log("txError", txError));

// Type define
interface Order {
  service_name: string;
  payload: {
    Combine: {
      index: number;
    };
  };
}
interface OrderResult {
  Combine: { index: number };
  Delivery: { index: number };
  Order: { index: number };
  Payment: { index: number };
  Stock: { index: number };
}

in Project

src/apis/txios/index.ts

import Txios from "@msa-makers/txios";
const txios = Txios.create({
  runnerUrl: "http://localhost:3000/runner/routeRequest",
  notifierUrl: "wss://notifier.cnakj.shop/txresult",
});
/* set globally optional */
// txios.setTimeout(15) // change timeout
export { txios };

src/app.ts

import { txios } from "@/apis/txios";

const rtid = "rt_20230127132114";
const order = {
  service_name: "member",
  payload: {
    money: 2,
    point: 1,
  },
};

txios
  .start(rtid, order)
  .then((txResponse) => console.log("txResponse", txResponse))
  .catch((txError) => console.log("txError", txError));

Txios

클래스함수설명기본값
Txiosstatic create(config: TxiosConfig): TxiosTxios인스턴스 생성notNull
Txiosstart<P, R>(rtId: string, payload: P): Promise<TxResponse<R>>payload와 함께 rtid 라우팅 룰 실행rtid(NotNull), payload(Optional)
TxiossetTimeout(sec: number)타임아웃 시간 변경10
TxiossetHeaders(headers)트랜잭션 요청 헤더 변경(global){ "Content-Type": "application/json" }
TxiosenableCallStackLog(isPrint: boolean)요청 순서를 콘솔에 출력(디버깅용)false
TxioscreateTransaction()트랜잭션 인스턴스 생성-

TxiosError

클래스필드설명
TxiosErrorerrorCode: TxiosErrorCode현재 에러 유형 코드 (TxiosErrorCode참조)
TxiosErrorerrorMessage: unknown에러 메시지 및 정보

TxiosErrorCode

클래스코드설명
TxiosErrorCodeRUNNER_REQUEST_FAILRunner요청 중 오류가 발생한 경우
TxiosErrorCodeRUNNER_RESPONSE_FAILRunner응답 TxId가 undefined 인경우
TxiosErrorCodeNOTIFIER_SOCKET_CLOSEDTransaction.call 호출 전 소켓이 닫혀 있는 경우
TxiosErrorCodeTIMEOUT제한시간내에 응답을 받지 못했을 경우(default: 10sec)
TxiosErrorCodeUNKNOWN정의되지 않은 에러

date: "2023-01-30T07:17:30.526Z" author: Bespin


0.0.2

2 years ago

0.0.1

2 years ago