Skip to content

Commit

Permalink
Merge pull request #67 from shadowtime2000/master
Browse files Browse the repository at this point in the history
Some JSDoc
  • Loading branch information
shadowtime2000 committed Dec 15, 2020
2 parents d6ca393 + 87fa30c commit e68e0a5
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 1 deletion.
27 changes: 27 additions & 0 deletions src/file-handlers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,33 @@ function renderFile(
return tryHandleCache(data, renderConfig, callback)
}

/**
* Render a template from a filepath asynchronously.
*
* @param filepath Path to template file. If relative, specify `views` on the config object
*
* This can take two different function signatures:
*
* - `renderFile(filename, dataAndConfig, [cb])`
* - Eta will merge `dataAndConfig` into `eta.config`
* - `renderFile(filename, data, [config], [cb])`
*
* Note that renderFile does not immediately return the rendered result. If you pass in a callback function, it will be called with `(err, res)`. Otherwise, `renderFile` will return a `Promise` that resolves to the render result.
*
* **Examples**
*
* ```js
* eta.renderFile("./template.eta", data, {cache: true}, function (err, rendered) {
* if (err) console.log(err)
* console.log(rendered)
* })
*
* let rendered = await eta.renderFile("./template.eta", data, {cache: true})
*
* let rendered = await eta.renderFile("./template", {...data, cache: true})
* ```
*/

function renderFileAsync(
filename: string,
data: DataObj,
Expand Down
17 changes: 16 additions & 1 deletion src/render.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ function handleCache(template: string | TemplateFunction, options: EtaConfig): T
* If `config.async` is `false`, Eta will return the rendered template.
*
* If `config.async` is `true` and there's a callback function, Eta will call the callback with `(err, renderedTemplate)`.
* If `config.async` is `true` and there's not a callback function, Eta will return a Promise that resolves to the rendered template
* If `config.async` is `true` and there's not a callback function, Eta will return a Promise that resolves to the rendered template.
*
* If `config.cache` is `true` and `config` has a `name` or `filename` property, Eta will cache the template on the first render and use the cached template for all subsequent renders.
*
Expand Down Expand Up @@ -84,6 +84,21 @@ export default function render(
}
}

/**
* Render a template asynchronously
*
* If `template` is a string, Eta will compile it to a function and call it with the provided data.
* If `template` is a function, Eta will call it with the provided data.
*
* If there is a callback function, Eta will call it with `(err, renderedTemplate)`.
* If there is not a callback function, Eta will return a Promise that resolves to the rendered template
*
* @param template Template string or template function
* @param data Data to render the template with
* @param config Optional config options
* @param cb Callback function
*/

export function renderAsync(
template: string | TemplateFunction,
data: object,
Expand Down

0 comments on commit e68e0a5

Please sign in to comment.