Skip to content

Commit 02914e0

Browse files
committed
fix interpreter suffix
1 parent b9ac0e1 commit 02914e0

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

src/javascript/template.ts

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,17 @@ export function transpileTemplate(input: string, tag?: string, raw?: boolean): s
8181
export function transpileTemplate(cell: Cell): string;
8282
export function transpileTemplate(input: string | Cell, tag = "", raw = false): string {
8383
let cell: Cell | undefined;
84+
let prefix: string;
85+
let suffix: string;
8486
if (typeof input !== "string") {
8587
cell = input;
8688
input = cell.value;
87-
tag = getTag(cell);
89+
prefix = getPrefix(cell);
90+
suffix = getSuffix(cell);
8891
raw = getRaw(cell);
92+
} else {
93+
prefix = tag;
94+
suffix = "";
8995
}
9096
if (!input) return input;
9197
const source = new Sourcemap(input);
@@ -100,34 +106,33 @@ export function transpileTemplate(input: string | Cell, tag = "", raw = false):
100106
(raw ? escapeRawTemplateElements : escapeTemplateElements)(source, template);
101107
node = template;
102108
}
103-
source.insertLeft(node.start, "`");
104-
source.insertRight(node.end, "`");
105-
source.insertLeft(node.start, tag);
106-
return String(source) + (cell ? getSuffix(cell) : "");
109+
source.insertLeft(node.start, `${prefix}\``);
110+
source.insertRight(node.end, `\`${suffix}`);
111+
return String(source);
107112
}
108113

109114
function getRaw(cell: Cell): boolean {
110115
return cell.mode !== "md";
111116
}
112117

113-
function getTag(cell: Cell): string {
118+
function getPrefix(cell: Cell): string {
114119
return cell.mode === "tex"
115120
? "tex.block"
116121
: cell.mode === "sql"
117-
? getSqlTag(cell)
122+
? getSqlPrefix(cell)
118123
: isInterpreter(cell.mode)
119-
? getInterpreterTag(cell)
124+
? getInterpreterPrefix(cell)
120125
: cell.mode;
121126
}
122127

123-
function getSqlTag(cell: Cell): string {
128+
function getSqlPrefix(cell: Cell): string {
124129
const {id, database = "var:db", since} = cell;
125130
return database.startsWith("var:")
126131
? `${database.slice("var:".length)}.sql`
127132
: `DatabaseClient(${JSON.stringify(database)}, {id: ${id}${since === undefined ? "" : `, since: ${JSON.stringify(since)}`}}).sql`;
128133
}
129134

130-
function getInterpreterTag(cell: Cell): string {
135+
function getInterpreterPrefix(cell: Cell): string {
131136
const {id, mode, format, since} = cell;
132137
return `Interpreter(${JSON.stringify(mode)}, {id: ${id}${format === undefined ? "" : `, format: ${JSON.stringify(format)}`}${since === undefined ? "" : `, since: ${JSON.stringify(since)}`}}).run(`;
133138
}
@@ -142,7 +147,7 @@ function getSuffix(cell: Cell): string {
142147

143148
function getInterpreterSuffix(cell: Cell): string {
144149
const method = getInterpreterMethod(cell.format);
145-
return method ? `).then((file) => file${method})` : "";
150+
return method ? `).then((file) => file${method})` : ")";
146151
}
147152

148153
function escapeTemplateElements(source: Sourcemap, node: TemplateLiteral): void {

0 commit comments

Comments
 (0)