import {XMLParser} from 'fast-xml-parser' /** * @typedef {{ * id: string, * slots: number, * name: string, * query: string * }} XMLDumpCard */ /** * @typedef {{ * order: { * details: { quantity: number }, * fronts: { card: Array }, * backs: { card: Array }, * cardback: string * } * }} XMLDump */ /** * @typedef {{ dpi: number, extension: string }} Card */ /** * @param {String | Uint8Array} xml * @returns {XMLDump} */ const readDump = xml => { const parser = new XMLParser() return parser.parse(xml, false) } /** * @param {Array} ids * @returns {Promise<{[key: string]: Card}>} */ const cards = async (...ids) => fetch( 'https://mpcfill.com/2/cards/', { method: 'POST', body: JSON.stringify({ cardIdentifiers: ids }), headers: { 'Content-Type': 'application/json' } } ) .then(/** @returns {Promise<{results: {[key: string]: Card}}>} */ a => a.json()) .then(a => a.results) export { cards, readDump }