### 针对chrome浏览器扩展封装的一些工具
将work_service(background.js)中的部分能力通过chrome.tabs.sendMessage及chrome.runtime.sendMessage进行封装，以达到contentScript调用后台功能
#### 开发与调试
```
pnpm install
#调试查看example
```
#### 使用
```
npm install @ng1005/chrome-extension-common
```

#### 发布
```
#发布包
pnpm run build
npm publish

#删除包
npm unpublish @ng1005/chrome-extension-common
```

##### 引用
```javascript
import {$window,$runtime,$port,$demo,$action,$drag,$storage,
  CssSelectorService,DomDragService,
  WorkService,RuntimeEventBus,PortEventBus,EventBusDemo,WindowEventBus,StorageDataService,StorageManagedService,StorageSessionService,StorageSyncService,ActionService,
  isDefined,isExtension,isBackgroundScript,isContentScript,isPopupScript,isString,isObject,isArray,isObjectOrArray 
  ,isNodeEnvironment,getEnv,isFunction,isFunctionAsync} from ( '@ng1005/chrome-extension-common')
```

##### 可用对象
```
$window,$runtime,$port,$demo,$action,$drag,$storage,
  CssSelectorService,DomDragService,
  WorkService,RuntimeEventBus,PortEventBus,EventBusDemo,WindowEventBus,StorageDataService,StorageManagedService,StorageSessionService,StorageSyncService,ActionService,
  isDefined,isExtension,isBackgroundScript,isContentScript,isPopupScript,isString,isObject,isArray,isObjectOrArray 
  ,isNodeEnvironment,getEnv,isFunction,isFunctionAsync
```

#### 封装chrome.runtime，使用方式
```javascript
import {$runtime} from ( '@ng1005/chrome-extension-common')
//监听消息
 $runtimeBus.$on('test',(data,sender,sendResponse)=>{
  console.log('test message---',data)
  return 'receive message'
})
//提交消息
$runtimeBus.$emit('test',name).then(res=>{
  console.log('提交消息后对方反馈回来的消息')
}).catch(e=>{
  reject(e.message||'获取数据,未知错误')
})
```