Files

57 lines
1.2 KiB
JavaScript

export class CodeUtil {
codeType = []
constructor(codeType) {
if (!Array.isArray(codeType)) {
console.error('codeType should be an array')
return
}
this.codeType = codeType
}
scan(options = {}) {
return uni.scanCode(options)
}
async getCodeInfo(options) {
const { scanType, result } = await this.scan(options)
return this.parseCode(result)
}
makeCode(type, content) {
const t = this.codeType.indexOf(type)
if (t == -1) {
console.error(`codeType ${type} is undefined`, this.codeType)
return null
}
return JSON.stringify({
t,
c: content
})
}
parseCode(codeInfo) {
try {
const info = JSON.parse(codeInfo)
const { t, c } = info
const type = this.codeType[t]
if (type) return { type, content: c }
return { type: 'unknown', content: info }
} catch (err) {
console.error('parseCode error', err)
return { type: 'error', content: codeInfo }
}
}
}
export const codeUtil = new CodeUtil([])