UNPKG

@xwordly/xword-parser

Version:

Fast, type-safe TypeScript library for parsing crossword puzzles (PUZ, iPUZ, JPZ, XD)

70 lines (67 loc) 2.54 kB
'use strict'; var chunkTFE3E6Z3_js = require('./chunk-TFE3E6Z3.js'); var chunkKVCCVFYY_js = require('./chunk-KVCCVFYY.js'); // src/lazy.ts async function parseLazy(data, options) { let content; if (data instanceof ArrayBuffer) { content = Buffer.from(data); } else { content = data; } const formatsToTry = chunkTFE3E6Z3_js.getOrderedFormatsToTry(content, options?.filename); let lastError; for (const format of formatsToTry) { try { switch (format) { case "ipuz": { const textContent = typeof content === "string" ? content : content.toString(options?.encoding || "utf-8"); const { parseIpuz, convertIpuzToUnified } = await import('./ipuz-DVQDQRFQ.js'); const puzzle = parseIpuz(textContent, options); return convertIpuzToUnified(puzzle); } case "puz": { if (typeof content !== "string") { const { parsePuz, convertPuzToUnified } = await import('./puz-FYMW4DTC.js'); const puzzle = parsePuz(content, options); return convertPuzToUnified(puzzle); } break; } case "jpz": { const textContent = typeof content === "string" ? content : content.toString(options?.encoding || "utf-8"); const { parseJpz, convertJpzToUnified } = await import('./jpz-VDLGZ7QA.js'); const puzzle = parseJpz(textContent, options); return convertJpzToUnified(puzzle); } case "xd": { const textContent = typeof content === "string" ? content : content.toString(options?.encoding || "utf-8"); const { parseXd, convertXdToUnified } = await import('./xd-DXPPDFX2.js'); const puzzle = parseXd(textContent, options); return convertXdToUnified(puzzle); } } } catch (e) { lastError = e; if (e instanceof chunkKVCCVFYY_js.ParseError && !e.isFormatMismatch()) { throw e; } } } if (lastError && !(lastError instanceof chunkKVCCVFYY_js.ParseError && lastError.isFormatMismatch())) { if (lastError instanceof Error) { throw lastError; } throw new chunkKVCCVFYY_js.FormatDetectionError( "Unable to detect puzzle format. Supported formats: iPUZ, PUZ, JPZ, XD", void 0, lastError ); } throw new chunkKVCCVFYY_js.FormatDetectionError( "Unable to detect puzzle format. Supported formats: iPUZ, PUZ, JPZ, XD" ); } exports.parseLazy = parseLazy; //# sourceMappingURL=lazy.js.map //# sourceMappingURL=lazy.js.map