45 lines
1.1 KiB
JavaScript
45 lines
1.1 KiB
JavaScript
import { parseLine as f, createLineData as s } from "./parser.js";
|
|
function d(l, i = " ") {
|
|
let r = s(null, i);
|
|
const t = {
|
|
ended: !1,
|
|
clone() {
|
|
return d(l.clone(), i);
|
|
},
|
|
async next() {
|
|
if (r.line = await l.next(), r.line === null)
|
|
return !0;
|
|
f(r);
|
|
},
|
|
current() {
|
|
return t;
|
|
},
|
|
line() {
|
|
var e;
|
|
return (e = r.line) == null ? void 0 : e.slice(r.offsetHead);
|
|
},
|
|
head() {
|
|
var e;
|
|
return (e = r.line) == null ? void 0 : e.slice(r.offsetHead, r.offsetTail);
|
|
},
|
|
tail() {
|
|
var e;
|
|
return (e = r.line) == null ? void 0 : e.slice(r.offsetTail);
|
|
},
|
|
level() {
|
|
return r.level;
|
|
},
|
|
async content(e = -1, n = []) {
|
|
var u;
|
|
return e === -1 && (e = r.level + 1), await t.next() || r.level < e ? n : (n.push(((u = r.line) == null ? void 0 : u.slice(e)) || ""), t.content(e, n));
|
|
},
|
|
async seek(e, n = -1) {
|
|
return n === -1 && (n = r.level), await t.next() ? !1 : t.head() === e ? t : r.level < n ? !1 : t.seek(e, n);
|
|
}
|
|
};
|
|
return t;
|
|
}
|
|
export {
|
|
d as useDocument
|
|
};
|