# Beacon Node SDK


## 安装

```
tnpm install @tencent/beacon-main-node

```


## 使用

```javascipt

const { Beacon } = require('@tencent/beacon-node')
Beacon.init('appkey', {
  enableDebug: false,
  versionCode: '1.4.22'
})

// 上报事件
Beacon.onEvent(`10_Events_In_20200304`)
// 上报事件并带上事件参数
Beacon.onEvent(`10_Events_In_20200304`, { userid: '123' })

```
### 初始化自定义参数

```
Beacon.init('appkey', yourBeaconOptions)

export interface BeaconOptions {
    /** 是否开启调试模式，如果开始调试模式，则可以使用灯塔的实时联调工具看到实时上报的日志 */
    enableDebug?: boolean;
    /** 是否开启https，默认开启 */
    enableHttps?: boolean;
    /** 是否开启自动重试，默认关闭(不确定灯塔的失败是不是保证原子性，即批量事件上报时，如果失败即全部事件失败) */
    enableRetry?: boolean;
    /** 是否使用自定义mac地址，如果不设置，则sdk自身会提供一个 */
    mac?: string;
    /** 应用版本号 */
    versionCode?: string;
    /** 批量上传事件的数量 */
    sendBatchSize?: number
    /** 代理 */
    proxy?: string
}

```


### 事件拦截器

可以通过添加拦截器（可以添加多个），为每个事件添加共同的自定义属性，监控事件上报概括.

```javascipt

Beacon.addInterceptor({
  onAddEvent: (event, overview) => {
    console.log('Event added ', event.name)
    event.addParam('key', 'value')
  },
  onSendSuccess: (eventList) => {
    console.log('onSendSuccess 2 ', eventList.length)
  },
  onSendFail: (eventList, error) => {
    console.log('onSendFail ', eventList.length, error)
  }
})

```




## 构建/开发

+ npm install
+ npm run build
+ npm run demo

