| ; | |
| Object.defineProperty(exports, "__esModule", { value: true }); | |
| exports.Doc = void 0; | |
| class Doc { | |
| constructor(args = []) { | |
| this.content = []; | |
| this.indent = 0; | |
| if (this) | |
| this.args = args; | |
| } | |
| indented(fn) { | |
| this.indent += 1; | |
| fn(this); | |
| this.indent -= 1; | |
| } | |
| write(arg) { | |
| if (typeof arg === "function") { | |
| arg(this, { execution: "sync" }); | |
| arg(this, { execution: "async" }); | |
| return; | |
| } | |
| const content = arg; | |
| const lines = content.split("\n").filter((x) => x); | |
| const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length)); | |
| const dedented = lines.map((x) => x.slice(minIndent)).map((x) => " ".repeat(this.indent * 2) + x); | |
| for (const line of dedented) { | |
| this.content.push(line); | |
| } | |
| } | |
| compile() { | |
| const F = Function; | |
| const args = this?.args; | |
| const content = this?.content ?? [``]; | |
| const lines = [...content.map((x) => ` ${x}`)]; | |
| // console.log(lines.join("\n")); | |
| return new F(...args, lines.join("\n")); | |
| } | |
| } | |
| exports.Doc = Doc; | |
Xet Storage Details
- Size:
- 1.2 kB
- Xet hash:
- 3b349be9f757a31e040bced60edf7c3491a2b42789f3f86186a783e8f382ba13
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.