UNPKG

@tarojs/plugin-mini-ci

Version:

Taro 小程序端构建后支持CI(持续集成)的插件

71 lines 2.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateQrcodeImageFile = exports.printQrcode2Terminal = exports.readQrcodeImageContent = void 0; /* eslint-disable no-console */ const node_fs_1 = require("node:fs"); const axios_1 = require("axios"); const Jimp = require("jimp"); const jsqr_1 = require("jsqr"); const QRCode = require("qrcode"); /** * 读取出二维码图片中的文本内容 * @param imagePath 图片路径 */ async function readQrcodeImageContent(imagePath) { // 网络图片优先用axios获取,避免某些云环境下由于原生fetch对代理支持度不够引起的问题 let imageBuffer; if (!(0, node_fs_1.existsSync)(imagePath)) { try { const response = await (0, axios_1.default)({ method: 'get', url: imagePath, responseType: 'arraybuffer', timeout: 8000 }); imageBuffer = response.data; } catch (error) { console.log(`axios获取图片失败: ${error.message}`); } } return new Promise((resolve, reject) => { Jimp.read(imageBuffer || imagePath, function (err, image) { if (err) { reject(err); return; } // @ts-ignore const scanData = (0, jsqr_1.default)(image.bitmap.data, image.bitmap.width, image.bitmap.height); if (scanData) { resolve(scanData.data); } else { reject(new Error('扫描器 jsqr 未能识别出二维码内容')); } }); }); } exports.readQrcodeImageContent = readQrcodeImageContent; /** * 将文本内容转换成二维码输出在控制台上 * @param content */ async function printQrcode2Terminal(content) { const terminalStr = await QRCode.toString(content, { type: 'terminal', small: true }); // eslint-disable-next-line no-console console.log(terminalStr); } exports.printQrcode2Terminal = printQrcode2Terminal; /** * 生成二维码图片到指定目录 * @param content * @param path */ async function generateQrcodeImageFile(path, content) { await QRCode.toFile(path, content, { errorCorrectionLevel: 'L', type: 'png' }); } exports.generateQrcodeImageFile = generateQrcodeImageFile; //# sourceMappingURL=qrcode.js.map