taro-bluetooth-print 2.9.0 → 2.9.2
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 +332 -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
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Provider Module
|
|
3
|
+
*
|
|
4
|
+
* 将现有服务层注册到 DI 容器
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
rootContainer,
|
|
9
|
+
CONNECTION_MANAGER_TOKEN,
|
|
10
|
+
PRINT_JOB_MANAGER_TOKEN,
|
|
11
|
+
COMMAND_BUILDER_TOKEN,
|
|
12
|
+
DEVICE_MANAGER_TOKEN,
|
|
13
|
+
PRINT_QUEUE_TOKEN,
|
|
14
|
+
OFFLINE_CACHE_TOKEN,
|
|
15
|
+
CONFIG_MANAGER_TOKEN,
|
|
16
|
+
PRINTER_STATUS_TOKEN,
|
|
17
|
+
PRINT_HISTORY_TOKEN,
|
|
18
|
+
PRINT_STATISTICS_TOKEN,
|
|
19
|
+
CLOUD_PRINT_MANAGER_TOKEN,
|
|
20
|
+
SCHEDULED_RETRY_MANAGER_TOKEN,
|
|
21
|
+
BATCH_PRINT_MANAGER_TOKEN,
|
|
22
|
+
EVENT_BUS_TOKEN,
|
|
23
|
+
PLUGIN_MANAGER_TOKEN,
|
|
24
|
+
ADAPTER_TOKEN,
|
|
25
|
+
} from '@/core';
|
|
26
|
+
|
|
27
|
+
import { ConnectionManager } from '@/services/ConnectionManager';
|
|
28
|
+
import { PrintJobManager } from '@/services/PrintJobManager';
|
|
29
|
+
import { CommandBuilder } from '@/services/CommandBuilder';
|
|
30
|
+
import { DeviceManager } from '@/device/DeviceManager';
|
|
31
|
+
import { PrintQueue } from '@/queue/PrintQueue';
|
|
32
|
+
import { OfflineCache } from '@/cache/OfflineCache';
|
|
33
|
+
import { PrinterConfigManager } from '@/config/PrinterConfigManager';
|
|
34
|
+
import { PrinterStatus } from '@/services/PrinterStatus';
|
|
35
|
+
import { PrintHistory } from '@/services/PrintHistory';
|
|
36
|
+
import { PrintStatistics } from '@/services/PrintStatistics';
|
|
37
|
+
import { CloudPrintManager } from '@/services/CloudPrintManager';
|
|
38
|
+
import { ScheduledRetryManager } from '@/services/ScheduledRetryManager';
|
|
39
|
+
import { BatchPrintManager } from '@/services/BatchPrintManager';
|
|
40
|
+
import { globalEventBus, EventBus } from '@/core/event/EventBus';
|
|
41
|
+
import { PluginManager } from '@/core/plugin/PluginManager';
|
|
42
|
+
import { AdapterFactory } from '@/adapters/AdapterFactory';
|
|
43
|
+
import type { Container } from '@/core/di/Container';
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* 服务提供者配置选项
|
|
47
|
+
*/
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
+
export interface ServiceProviderOptions {
|
|
50
|
+
/** 是否启用全局事件总线 */
|
|
51
|
+
useGlobalEventBus?: boolean;
|
|
52
|
+
/** 自定义配置 */
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
54
|
+
config?: Record<string, unknown>;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* 注册所有服务到 DI 容器
|
|
59
|
+
*/
|
|
60
|
+
export function registerServices(options: ServiceProviderOptions = {}): void {
|
|
61
|
+
const { useGlobalEventBus = true } = options;
|
|
62
|
+
|
|
63
|
+
// 1. 注册事件总线(全局或新建)
|
|
64
|
+
rootContainer.register(EVENT_BUS_TOKEN, {
|
|
65
|
+
useValue: useGlobalEventBus ? globalEventBus : new EventBus(),
|
|
66
|
+
lifecycle: 'singleton',
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
// 2. 注册适配器(工厂模式)
|
|
70
|
+
rootContainer.register(ADAPTER_TOKEN, {
|
|
71
|
+
useFactory: () => AdapterFactory.create(),
|
|
72
|
+
lifecycle: 'singleton',
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
// 3. 注册连接管理器
|
|
76
|
+
rootContainer.register(CONNECTION_MANAGER_TOKEN, {
|
|
77
|
+
useClass: ConnectionManager,
|
|
78
|
+
lifecycle: 'singleton',
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
// 4. 注册打印任务管理器
|
|
82
|
+
rootContainer.register(PRINT_JOB_MANAGER_TOKEN, {
|
|
83
|
+
useClass: PrintJobManager,
|
|
84
|
+
lifecycle: 'singleton',
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
// 5. 注册命令构建器
|
|
88
|
+
rootContainer.register(COMMAND_BUILDER_TOKEN, {
|
|
89
|
+
useClass: CommandBuilder,
|
|
90
|
+
lifecycle: 'transient',
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
// 6. 注册设备管理器
|
|
94
|
+
rootContainer.register(DEVICE_MANAGER_TOKEN, {
|
|
95
|
+
useClass: DeviceManager,
|
|
96
|
+
lifecycle: 'singleton',
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
// 7. 注册打印队列
|
|
100
|
+
rootContainer.register(PRINT_QUEUE_TOKEN, {
|
|
101
|
+
useClass: PrintQueue,
|
|
102
|
+
lifecycle: 'singleton',
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
// 8. 注册离线缓存
|
|
106
|
+
rootContainer.register(OFFLINE_CACHE_TOKEN, {
|
|
107
|
+
useClass: OfflineCache,
|
|
108
|
+
lifecycle: 'singleton',
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
// 9. 注册配置管理器
|
|
112
|
+
rootContainer.register(CONFIG_MANAGER_TOKEN, {
|
|
113
|
+
useClass: PrinterConfigManager,
|
|
114
|
+
lifecycle: 'singleton',
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
// 10. 注册打印机状态服务
|
|
118
|
+
rootContainer.register(PRINTER_STATUS_TOKEN, {
|
|
119
|
+
useClass: PrinterStatus,
|
|
120
|
+
lifecycle: 'singleton',
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
// 11. 注册打印历史服务
|
|
124
|
+
rootContainer.register(PRINT_HISTORY_TOKEN, {
|
|
125
|
+
useClass: PrintHistory,
|
|
126
|
+
lifecycle: 'singleton',
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
// 12. 注册打印统计服务
|
|
130
|
+
rootContainer.register(PRINT_STATISTICS_TOKEN, {
|
|
131
|
+
useClass: PrintStatistics,
|
|
132
|
+
lifecycle: 'singleton',
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
// 13. 注册云打印管理器
|
|
136
|
+
rootContainer.register(CLOUD_PRINT_MANAGER_TOKEN, {
|
|
137
|
+
useClass: CloudPrintManager,
|
|
138
|
+
lifecycle: 'singleton',
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
// 14. 注册定时重试管理器
|
|
142
|
+
rootContainer.register(SCHEDULED_RETRY_MANAGER_TOKEN, {
|
|
143
|
+
useClass: ScheduledRetryManager,
|
|
144
|
+
lifecycle: 'singleton',
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
// 15. 注册批量打印管理器
|
|
148
|
+
rootContainer.register(BATCH_PRINT_MANAGER_TOKEN, {
|
|
149
|
+
useClass: BatchPrintManager,
|
|
150
|
+
lifecycle: 'singleton',
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
// 16. 注册插件管理器
|
|
154
|
+
rootContainer.register(PLUGIN_MANAGER_TOKEN, {
|
|
155
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unnecessary-type-assertion
|
|
156
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
|
|
157
|
+
useFactory: (container: Container) => {
|
|
158
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
|
|
159
|
+
const eventBus = container.resolve(EVENT_BUS_TOKEN) as EventBus;
|
|
160
|
+
return new PluginManager({
|
|
161
|
+
eventBus,
|
|
162
|
+
container,
|
|
163
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
164
|
+
config: (options.config || {}) as Record<string, any>,
|
|
165
|
+
});
|
|
166
|
+
},
|
|
167
|
+
lifecycle: 'singleton',
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* 创建配置好的服务提供者
|
|
173
|
+
*/
|
|
174
|
+
export function createServiceProvider(options: ServiceProviderOptions = {}) {
|
|
175
|
+
registerServices(options);
|
|
176
|
+
|
|
177
|
+
return {
|
|
178
|
+
/** 获取连接管理器 */
|
|
179
|
+
getConnectionManager: () => rootContainer.resolve(CONNECTION_MANAGER_TOKEN),
|
|
180
|
+
/** 获取打印任务管理器 */
|
|
181
|
+
getPrintJobManager: () => rootContainer.resolve(PRINT_JOB_MANAGER_TOKEN),
|
|
182
|
+
/** 获取命令构建器 */
|
|
183
|
+
getCommandBuilder: () => rootContainer.resolve(COMMAND_BUILDER_TOKEN),
|
|
184
|
+
/** 获取设备管理器 */
|
|
185
|
+
getDeviceManager: () => rootContainer.resolve(DEVICE_MANAGER_TOKEN),
|
|
186
|
+
/** 获取打印队列 */
|
|
187
|
+
getPrintQueue: () => rootContainer.resolve(PRINT_QUEUE_TOKEN),
|
|
188
|
+
/** 获取离线缓存 */
|
|
189
|
+
getOfflineCache: () => rootContainer.resolve(OFFLINE_CACHE_TOKEN),
|
|
190
|
+
/** 获取配置管理器 */
|
|
191
|
+
getConfigManager: () => rootContainer.resolve(CONFIG_MANAGER_TOKEN),
|
|
192
|
+
/** 获取打印机状态服务 */
|
|
193
|
+
getPrinterStatus: () => rootContainer.resolve(PRINTER_STATUS_TOKEN),
|
|
194
|
+
/** 获取打印历史服务 */
|
|
195
|
+
getPrintHistory: () => rootContainer.resolve(PRINT_HISTORY_TOKEN),
|
|
196
|
+
/** 获取打印统计服务 */
|
|
197
|
+
getPrintStatistics: () => rootContainer.resolve(PRINT_STATISTICS_TOKEN),
|
|
198
|
+
/** 获取云打印管理器 */
|
|
199
|
+
getCloudPrintManager: () => rootContainer.resolve(CLOUD_PRINT_MANAGER_TOKEN),
|
|
200
|
+
/** 获取定时重试管理器 */
|
|
201
|
+
getScheduledRetryManager: () => rootContainer.resolve(SCHEDULED_RETRY_MANAGER_TOKEN),
|
|
202
|
+
/** 获取批量打印管理器 */
|
|
203
|
+
getBatchPrintManager: () => rootContainer.resolve(BATCH_PRINT_MANAGER_TOKEN),
|
|
204
|
+
/** 获取事件总线 */
|
|
205
|
+
getEventBus: () => rootContainer.resolve(EVENT_BUS_TOKEN),
|
|
206
|
+
/** 获取插件管理器 */
|
|
207
|
+
getPluginManager: () => rootContainer.resolve(PLUGIN_MANAGER_TOKEN),
|
|
208
|
+
/** 获取适配器 */
|
|
209
|
+
getAdapter: () => rootContainer.resolve(ADAPTER_TOKEN),
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
export type ServiceProvider = ReturnType<typeof createServiceProvider>;
|