Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

tb-apps-sdk

Package Overview
Dependencies
Maintainers
0
Versions
64
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tb-apps-sdk

A sdk for communications between teambiton web and other envs.

  • 0.7.1-alpha.7
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
5
increased by400%
Maintainers
0
Weekly downloads
 
Created
Source

Coverage Status CircleCI

tb-apps-sdk

Teambition Host Environment API Bridge

How to build

npm run build

How to publish

npm run publish_sdk

For Plugin

// in plugin
import { callService } from 'tb-apps-sdk'

callService({ isCI: true, method: 'essage', params: { /* 参数 */ } })

openDetail

callService({ origin: PLUGIN_ORIGIN, method: 'open', params: { _id: TASKID }, toOrigin: TARGET_ORIGIN_ADDRESS })

// TARGET_ORIGIN_ADDRESS e.g. www.teambition.com 或者 其他部署地址 或者 通配符 *
// PLUGIN_ORIGIN e.g. 当前页面的 origin 可以使用 document.origin

For Other Environment

3rd-part

// in 3rd env (e.g. Dashboard)
import { sdk } from 'sdk'
import { AppSDK } from 'tb-apps-sdk'
import { hostAPI } from 'tb-apps-sdk/api/internal'

const webApp = AppSDK.fork(hostAPI)
webApp.init()

sdk.fetch.getTask().subscribe(task => {
  webApp.openDetail('task', task._id)
})

Platform

// in host env (e.g. web)
import { RemoteSchema } from 'tb-apps-sdk'
import { InternalAPI } from 'tb-apps-sdk/api/internal'

class PlatformAPI implements RemoteSchema<InternalAPI> {

  openDetail() {
    // ...
  }

}

How to mock

import { AppSDK } from 'tb-apps-sdk'
import { InternalAPI } from 'tb-apps-sdk/api/internal'
import { factory } from 'tb-apps-sdk/api/base'

class MockAPI implements InternalAPI {

  openDetail(...params: any[]) {
    console.log('Method openDetail was called.', params)
  }

}

const mockAPI = (sdk: AppSDK) => {
  return factory(sdk, MockAPI)
}

const mockEnv = AppSDK.fork(mockAPI)
mockEnv.openDetail()

Interface

Function: callService = (data: IframeMessageType) => void
Interface: IframeMessageType
属性说明类型默认值
method指定调用的方法string-
params指定调用的方法的参数any-
isCI是否是 CI 环境boolean/
originfromOriginstring-
toOrigin反向通讯的地址string/
onSuccess执行成功后的回调() => void/
onError执行失败后的回调({ error }) => void/
Class: AppSDK
  • Static Method: AppSDK.fork<T, K>(service, onPush, requestTimeout, connectTimeout)
属性说明类型默认值
service指定装载的宿主 API 配置容器(sdk: AppSDK) => T-
onPush指定宿主环境主动推送时的回调(data: K) => void-
requestTimeout指定远端调用最大超时时间number10000
connectTimeout指定远端连接最大超时时间number60000

License

MIT

Keywords

FAQs

Package last updated on 02 Sep 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc