taro-bluetooth-print 2.9.0 → 2.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -1
- package/README.md +53 -4
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/types/core/di/Container.d.ts +84 -0
- package/dist/types/core/di/Tokens.d.ts +29 -0
- package/dist/types/core/di/index.d.ts +3 -0
- package/dist/types/core/event/EventBus.d.ts +66 -0
- package/dist/types/core/event/index.d.ts +2 -0
- package/dist/types/core/index.d.ts +5 -4
- package/dist/types/core/plugin/PluginManager.d.ts +64 -0
- package/dist/types/core/plugin/index.d.ts +2 -0
- package/dist/types/device/MultiPrinterManager.d.ts +2 -0
- package/dist/types/factory/di-factory.d.ts +52 -0
- package/dist/types/index.d.ts +5 -1
- package/dist/types/providers/ServiceProvider.d.ts +56 -0
- package/dist/types/providers/index.d.ts +2 -0
- package/dist/types/template/TemplateEngine.d.ts +24 -68
- package/dist/types/template/engines/TemplateRenderer.d.ts +71 -0
- package/dist/types/template/parsers/TemplateParser.d.ts +23 -0
- package/dist/types/utils/index.d.ts +8 -0
- package/dist/types/utils/logger.d.ts +4 -3
- package/dist/types/utils/outputLimiter.d.ts +87 -0
- package/dist/types/utils/validation.d.ts +11 -309
- package/dist/types/utils/validators/array.d.ts +19 -0
- package/dist/types/utils/validators/buffer.d.ts +18 -0
- package/dist/types/utils/validators/chain.d.ts +31 -0
- package/dist/types/utils/validators/common.d.ts +22 -0
- package/dist/types/utils/validators/number.d.ts +20 -0
- package/dist/types/utils/validators/object.d.ts +24 -0
- package/dist/types/utils/validators/printer.d.ts +40 -0
- package/dist/types/utils/validators/types.d.ts +125 -0
- package/dist/types/utils/validators/uuid.d.ts +23 -0
- package/package.json +1 -1
- package/src/core/BluetoothPrinter.ts +2 -1
- package/src/core/di/Container.ts +330 -0
- package/src/core/di/Tokens.ts +45 -0
- package/src/core/di/index.ts +3 -0
- package/src/core/event/EventBus.ts +251 -0
- package/src/core/event/index.ts +2 -0
- package/src/core/index.ts +10 -4
- package/src/core/plugin/PluginManager.ts +161 -0
- package/src/core/plugin/index.ts +2 -0
- package/src/device/MultiPrinterManager.ts +15 -6
- package/src/factory/di-factory.ts +61 -0
- package/src/index.ts +50 -1
- package/src/providers/ServiceProvider.ts +213 -0
- package/src/providers/index.ts +2 -0
- package/src/template/TemplateEngine.ts +27 -792
- package/src/template/engines/TemplateRenderer.ts +762 -0
- package/src/template/parsers/TemplateParser.ts +94 -0
- package/src/utils/index.ts +9 -0
- package/src/utils/logger.ts +17 -4
- package/src/utils/outputLimiter.ts +227 -0
- package/src/utils/validation.ts +21 -1138
- package/src/utils/validators/array.ts +95 -0
- package/src/utils/validators/buffer.ts +81 -0
- package/src/utils/validators/chain.ts +181 -0
- package/src/utils/validators/common.ts +216 -0
- package/src/utils/validators/number.ts +101 -0
- package/src/utils/validators/object.ts +63 -0
- package/src/utils/validators/printer.ts +294 -0
- package/src/utils/validators/types.ts +105 -0
- package/src/utils/validators/uuid.ts +49 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [2.
|
|
8
|
+
## [2.10.0] - 2026-04-07
|
|
9
9
|
|
|
10
10
|
### 架构升级
|
|
11
11
|
|
|
@@ -13,6 +13,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
13
13
|
- **接口分离**: 将 `services/interfaces/index.ts` 拆分为独立文件 (`IConnectionManager.ts`, `IPrintJobManager.ts`, `ICommandBuilder.ts`),改善依赖管理
|
|
14
14
|
- **错误类层次**: 新增 `ConnectionError` / `PrintJobError` / `CommandBuildError` 专用错误类,继承自 `BluetoothPrintError`
|
|
15
15
|
- **BluetoothPrinter 简化**: 移除构造函数向后兼容逻辑,使用清晰的依赖注入模式
|
|
16
|
+
- **validation.ts 拆分**: 1155 行拆分为 `validators/` 目录(types/common/printer/buffer/uuid/number/object/array/chain)
|
|
17
|
+
- **TemplateEngine.ts 拆分**: 1114 行拆分为 `parsers/TemplateParser.ts` + `engines/TemplateRenderer.ts`
|
|
18
|
+
|
|
19
|
+
### 修复
|
|
20
|
+
|
|
21
|
+
- **MultiPrinterManager 内存泄漏**: `disconnect()` 时移除 error 事件监听器,防止反复连接/断开时监听器堆积
|
|
22
|
+
|
|
23
|
+
### 测试
|
|
24
|
+
|
|
25
|
+
- 补充分类测试覆盖:CommandBuilder (33)、ConnectionManager (37)、PrintJobManager (31)、PrinterFactory (11)、错误类扩充 (+17)
|
|
26
|
+
- 总测试数:648 → **789** (+141)
|
|
16
27
|
|
|
17
28
|
### 导出新增
|
|
18
29
|
|
|
@@ -404,3 +415,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
404
415
|
- 初始版本发布
|
|
405
416
|
- 基础蓝牙打印功能
|
|
406
417
|
- 微信小程序支持
|
|
418
|
+
|
|
419
|
+
---
|
|
420
|
+
|
|
421
|
+
_以上内容由 AI 助理自动生成_
|
package/README.md
CHANGED
|
@@ -69,7 +69,7 @@ pnpm add taro-bluetooth-print
|
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
```typescript
|
|
72
|
-
import {
|
|
72
|
+
import { createBluetoothPrinter, DeviceManager, WebBluetoothAdapter } from 'taro-bluetooth-print';
|
|
73
73
|
|
|
74
74
|
async function print() {
|
|
75
75
|
// 1. 扫描设备
|
|
@@ -82,8 +82,11 @@ async function print() {
|
|
|
82
82
|
return;
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
// 2.
|
|
86
|
-
const printer =
|
|
85
|
+
// 2. 创建打印机实例(推荐方式)
|
|
86
|
+
const printer = createBluetoothPrinter({
|
|
87
|
+
adapter: new WebBluetoothAdapter()
|
|
88
|
+
});
|
|
89
|
+
|
|
87
90
|
await printer.connect(devices[0].deviceId);
|
|
88
91
|
|
|
89
92
|
// 3. 链式调用打印
|
|
@@ -140,7 +143,7 @@ async function print() {
|
|
|
140
143
|
## 配置与事件
|
|
141
144
|
|
|
142
145
|
```typescript
|
|
143
|
-
const printer =
|
|
146
|
+
const printer = createBluetoothPrinter();
|
|
144
147
|
|
|
145
148
|
// 传输参数
|
|
146
149
|
printer.setOptions({
|
|
@@ -155,6 +158,7 @@ printer.on('progress', ({ sent, total }) => {
|
|
|
155
158
|
});
|
|
156
159
|
|
|
157
160
|
printer.on('error', (error) => {
|
|
161
|
+
// error 是 BluetoothPrintError 的实例
|
|
158
162
|
console.error('错误:', error.code, error.message);
|
|
159
163
|
});
|
|
160
164
|
|
|
@@ -163,12 +167,57 @@ printer.on('print-complete', () => {
|
|
|
163
167
|
});
|
|
164
168
|
```
|
|
165
169
|
|
|
170
|
+
### 错误类层次
|
|
171
|
+
|
|
172
|
+
```typescript
|
|
173
|
+
import {
|
|
174
|
+
BluetoothPrintError,
|
|
175
|
+
ConnectionError,
|
|
176
|
+
PrintJobError,
|
|
177
|
+
CommandBuildError,
|
|
178
|
+
ErrorCode
|
|
179
|
+
} from 'taro-bluetooth-print';
|
|
180
|
+
|
|
181
|
+
// 统一错误基类
|
|
182
|
+
try {
|
|
183
|
+
await printer.print();
|
|
184
|
+
} catch (err) {
|
|
185
|
+
if (err instanceof BluetoothPrintError) {
|
|
186
|
+
console.log(err.code, err.message);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// 专用错误类型(推荐用于精确处理)
|
|
191
|
+
try {
|
|
192
|
+
await printer.connect(deviceId);
|
|
193
|
+
} catch (err) {
|
|
194
|
+
if (ConnectionError.isConnectionError(err)) {
|
|
195
|
+
// 连接失败:重试或提示用户
|
|
196
|
+
console.log('连接错误:', err.message);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
try {
|
|
201
|
+
// ... 打印操作
|
|
202
|
+
} catch (err) {
|
|
203
|
+
if (PrintJobError.isPrintJobError(err)) {
|
|
204
|
+
// 打印任务失败:重新排队
|
|
205
|
+
console.log('任务错误:', err.message);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
```
|
|
209
|
+
|
|
166
210
|
---
|
|
167
211
|
|
|
168
212
|
## 架构
|
|
169
213
|
|
|
170
214
|
```
|
|
171
215
|
┌─────────────────────────────────────────┐
|
|
216
|
+
│ PrinterFactory (createPrinter) │
|
|
217
|
+
│ createBluetoothPrinter · createWebBluetooth │
|
|
218
|
+
└────────────────────┬────────────────────┘
|
|
219
|
+
▼
|
|
220
|
+
┌─────────────────────────────────────────┐
|
|
172
221
|
│ BluetoothPrinter (Core) │
|
|
173
222
|
│ text() feed() qr() cut() image() print()│
|
|
174
223
|
└──────────────┬──────────────────────────┘
|