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