7.0.2 • Published 1 year ago

@transformation/ejs v7.0.2

Weekly downloads
186
License
MIT
Repository
github
Last release
1 year ago

@transformation/ejs

A package for rendering EJS templates.

renderTemplate

Renders an EJS template for each item in the pipeline.

const { renderTemplate } = require("@transformation/ejs");

Let say we want to render stock items with a custom template. Let's start out by defining the template in a file called stocks.ejs.

<%-key%>
<% for(let { price } of items) { -%>
  <%-price%>
<% } -%>

Now we can render items with the template by using the renderTemplate transform.

await expect(
  pipeline(
    emitItems(
      { symbol: "GOOG", price: 1349 },
      { symbol: "AAPL", price: 274 },
      { symbol: "AAPL", price: 275 },
      { symbol: "GOOG", price: 1351 },
      { symbol: "AAPL", price: 279 }
    ),
    groupBy("symbol"),
    renderTemplate("stocks.ejs")
  ),
  "to yield items",
  ["GOOG\n  1349\n  1351\n", "AAPL\n  274\n  275\n  279\n"]
);

writeTemplate

Renders an EJS template for each item in the pipeline to a file.

const { writeTemplate } = require("@transformation/ejs");

Let say we want to render stock items with a custom template. Let's start out by defining the template in a file called stocks.ejs.

<%-key%>
<% for(let { price } of items) { -%>
  <%-price%>
<% } -%>

No we can render items with the template by using the writeTemplate transform.

await program(
  emitItems(
    { symbol: "GOOG", price: 1349 },
    { symbol: "AAPL", price: 274 },
    { symbol: "AAPL", price: 275 },
    { symbol: "GOOG", price: 1351 },
    { symbol: "AAPL", price: 279 }
  ),
  groupBy("symbol"),
  writeTemplate("stocks.ejs", ({ key }) => `stocks-${key}.txt`)
);

This will create two files with the following content.

stocks-APPL.txt:

AAPL: 274
AAPL: 275
AAPL: 279

stocks-GOOG.txt:

GOOG: 1349
GOOG: 1351

You can of cause also just write items to one file, you just needs to make sure to aggregate the pipeline into one item first.

Here we define a template that will render a an array of stocks in a file called stocksArray.ejs.

<% for(let { symbol, price } of items) { -%>
<%-symbol%>: <%-price%>
<% } -%>
await program(
  emitItems(
    { symbol: "GOOG", price: 1349 },
    { symbol: "AAPL", price: 274 },
    { symbol: "AAPL", price: 275 },
    { symbol: "GOOG", price: 1351 },
    { symbol: "AAPL", price: 279 }
  ),
  sortBy("symbol"),
  toArray(),
  writeTemplate("stocksArray.ejs", "stocks.txt")
);

This produce the following result.

stocks.txt:

AAPL: 274
AAPL: 275
AAPL: 279
GOOG: 1349
GOOG: 1351
7.0.0

1 year ago

7.0.2

1 year ago

7.0.1

1 year ago

6.0.1

1 year ago

5.1.1

2 years ago

5.1.0

2 years ago

5.0.0

2 years ago

6.0.0

2 years ago

4.2.0

2 years ago

4.3.0

2 years ago

4.1.2

3 years ago

4.1.0

3 years ago

4.1.1

3 years ago

4.0.1

3 years ago

4.0.0

3 years ago

3.8.0

3 years ago

3.7.0

4 years ago

3.6.0

4 years ago

3.5.3

4 years ago

3.5.1

4 years ago

3.5.0

4 years ago

3.4.0

4 years ago

3.3.0

4 years ago

3.2.0

4 years ago

3.0.0

4 years ago

3.1.0

4 years ago

2.3.0

4 years ago

2.0.0

4 years ago

1.34.0

4 years ago

1.33.0

4 years ago

1.32.0

4 years ago

1.31.0

4 years ago

1.30.2

4 years ago

1.30.1

4 years ago

1.30.0

4 years ago

1.29.1

4 years ago

1.29.0

4 years ago

1.28.0

4 years ago

1.27.1

4 years ago

1.27.0

4 years ago

1.26.0

4 years ago

1.25.0

4 years ago

1.24.0

4 years ago

1.22.0

4 years ago

1.21.0

4 years ago

1.20.1

4 years ago

1.20.2

4 years ago

1.20.0

4 years ago

1.19.0

4 years ago

1.18.2

4 years ago

1.18.1

4 years ago

1.18.0

4 years ago

1.17.0

4 years ago

1.16.0

4 years ago

1.15.0

4 years ago

1.14.1

4 years ago

1.12.3

4 years ago

1.12.2

4 years ago

1.12.1

4 years ago

1.12.0

4 years ago

1.11.0

4 years ago

1.10.0

4 years ago

1.9.0

4 years ago

1.8.0

4 years ago

1.7.1

4 years ago

1.7.0

4 years ago

1.6.0

4 years ago

1.5.0

4 years ago

1.4.1

4 years ago

1.4.0

4 years ago

1.3.1

4 years ago