Skip to content

Commit 55d5085

Browse files
committed
feat: hasTemplateSyntax
1 parent 479dadb commit 55d5085

3 files changed

Lines changed: 14 additions & 0 deletions

File tree

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ Compile a template string into a render function code string.
6161

6262
### `createRenderContext(options)`
6363

64+
### `hasTemplateSyntax(template)`
65+
66+
Check if a template string contains template syntax.
67+
6468
### `renderToResponse(htmlTemplate, opts)`
6569

6670
Renders an HTML template to a Response object.

src/compiler.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,15 @@ export function compileTemplateToString(
9999
return asyncWrapper === false ? body : `(async (data) => {${body}})`;
100100
}
101101

102+
/**
103+
* Check if a template string contains template syntax.
104+
*/
105+
export function hasTemplateSyntax(template: string): boolean {
106+
return /(?:<script\s+server\s*>[\s\S]*?<\/script>)|(?:<\?(?:js)?=?[\s\S]*?\?>)/i.test(
107+
template,
108+
);
109+
}
110+
102111
// --- Tokenizer ---
103112

104113
export type Token = {

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
export {
22
compileTemplate,
33
compileTemplateToString,
4+
hasTemplateSyntax,
45
type CompiledTemplate,
56
type CompileTemplateOptions,
67
} from "./compiler.ts";

0 commit comments

Comments
 (0)