Skip to content

Commit 00d2419

Browse files
authored
Merge pull request #37 from deligenius/eta-support
add Eta support
2 parents 12966fa + 0ce38dc commit 00d2419

File tree

7 files changed

+40
-3
lines changed

7 files changed

+40
-3
lines changed

deps.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,7 @@ export { green, blue } from "https://deno.land/std@0.131.0/fmt/colors.ts";
66
export { assertEquals, assert } from "https://deno.land/std@0.131.0/testing/asserts.ts";
77

88
export { Application } from "https://deno.land/x/oak@v10.5.1/mod.ts";
9+
10+
11+
export * as eta from 'https://deno.land/x/eta@v1.12.3/mod.ts'
12+
export * as dejs from "https://deno.land/x/dejs@0.10.2/mod.ts";

lib/adapters/oak/oak.utils.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,5 @@ const urlRegex =
66

77
export async function getTemplate(viewRoot: string, fileName: string) {
88
const filePath = path.join(viewRoot, fileName);
9-
console.log(filePath);
10-
119
return Deno.readTextFileSync(filePath);
1210
}

lib/engines/dejs/dejs.engine.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as dejs from "https://deno.land/x/dejs@0.10.2/mod.ts";
1+
import { dejs } from "../../../deps.ts";
22
import type { Engine, ViewConfig } from "../../viewEngine.type.ts";
33

44
export const dejsEngine: Engine = async (

lib/engines/engines_test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { assertEquals, blue } from "../../deps.ts";
22

33
import { denjuckEngine } from "./denjuck/denjuck.engine.ts";
4+
import { etaEngine } from "./eta/eta.engine.ts";
45
import { handlebarsEngine } from "./handlebars/handlebars.engine.ts";
56

67
Deno.test({
@@ -25,3 +26,14 @@ Deno.test({
2526
assertEquals(actual, expect);
2627
},
2728
});
29+
30+
Deno.test({
31+
name: blue("Testing eta"),
32+
async fn() {
33+
const template = `<h1><%= it.name %></h1>`;
34+
35+
const actual =await etaEngine(template, { name: "John" } );
36+
const expect = `<h1>John</h1>`;
37+
assertEquals(actual, expect);
38+
},
39+
});

lib/engines/eta/eta.engine.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { eta } from "../../../deps.ts";
2+
import type { Engine, ViewConfig } from "../../viewEngine.type.ts";
3+
4+
export const etaEngine: Engine = async (
5+
template: string,
6+
data: object = {},
7+
config: ViewConfig = {},
8+
filename: string = ""
9+
): Promise<string> => {
10+
11+
return new Promise<string>(async (resolve, reject) => {
12+
try{
13+
const result = await eta.render( template, data) as string
14+
resolve(result)
15+
}catch(e){
16+
reject(e)
17+
}
18+
})
19+
};

mod.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
export { denjuckEngine } from "./lib/engines/denjuck/denjuck.engine.ts";
33
export { handlebarsEngine } from "./lib/engines/handlebars/handlebars.engine.ts";
44
export { dejsEngine } from "./lib/engines/dejs/dejs.engine.ts";
5+
export { etaEngine } from "./lib/engines/eta/eta.engine.ts";
56

67
//! type
78
export type { Engine, Adapter, ViewConfig } from "./lib/viewEngine.type.ts"

views/eta/index.ejs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<body>
2+
<h1><%= it.name %></h1>
3+
</body>

0 commit comments

Comments
 (0)