Files

1 line
1.4 KiB
JavaScript

import{t as e}from"./yaml-Jsje7sNc.js";function t(e){return new Promise((t,n)=>{let r=e.createReader(),i=[],a=()=>{r.readEntries(e=>{e.length===0?t(i):(i.push(...e),a())},n)};a()})}function n(e){return new Promise((t,n)=>{e.file(t,n)})}async function r(e){let n=[];async function r(e,i){let a=await t(e);for(let e of a)e.isFile&&n.push({file:e,relativePath:`${i}${e.name}`});await Promise.all(a.filter(e=>e.isDirectory).map(e=>r(e,`${i}${e.name}/`)))}return await r(e,``),n}async function i(e){let n=[];async function r(e,i){let a=await t(e);for(let t of a)t.isFile&&t.name.endsWith(`.pptd`)&&n.push({file:t,parentDir:e,displayPath:`${i}${t.name}`});await Promise.all(a.filter(e=>e.isDirectory).map(e=>r(e,`${i}${e.name}/`)))}return await r(e,`./`),n}async function a(e,n){let r=n.split(`/`).filter(Boolean),i=await r.slice(0,-1).reduce(async(e,n)=>{let r=await e;return r?(await t(r)).find(e=>e.name===n&&e.isDirectory)??null:null},Promise.resolve(e));if(!i)return null;let a=r[r.length-1];return(await t(i)).find(e=>e.name===a&&e.isFile)??null}async function o(t,r){let i=await(await n(t)).text(),o=e(i)?.pages??[],s=await Promise.all(o.map(async e=>{let t=await a(r,e);return t?[e,await(await n(t)).text()]:(console.warn(`[parsePptdEntry] 未找到页面: ${e}`),null)})),c={};for(let e of s)e&&(c[e[0]]=e[1]);return{metaYaml:i,pagesYamlMap:c}}export{o as i,r as n,i as r,n as t};