Socket
Socket
Sign inDemoInstall

ejs-prerender

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ejs-prerender - npm Package Compare versions

Comparing version 0.1.0 to 1.0.0

lib/ejsPrerender.js

46

bin/ejs-prerender.js
#!/usr/bin/env node
const {
getConfig,
grabPages,
renderTemplate,
writeHtml,
} = require('../lib');
const ejsPrerender = require('../lib');
const STATUSES = {
RENDERING: 'is being rendered...',
WRITING: 'is being written to file...',
COMPLETE: 'has been written!',
};
const main = async function main() {
const config = getConfig();
console.log('got config', config);
const viewData = {};
const statuses = {};
const getStatusMessage = (pagePath) => `page "${pagePath}" ${statuses[pagePath]}`;
const replaceExtension = (oldExtension, newExtension, path) => `${path.substring(0, path.length - oldExtension.length)}${newExtension}`;
const pages = await grabPages(config);
console.log('pages', pages);
const writePromises = pages
.map((pagePath) => async function pageFn() {
console.log('writing page', pagePath);
statuses[pagePath] = STATUSES.RENDERING;
const html = await renderTemplate(config, {
templatePath: pagePath,
viewData,
});
statuses[pagePath] = STATUSES.WRITING;
await writeHtml(config, {
pagePath: replaceExtension('.ejs', '.html', pagePath),
content: html,
});
statuses[pagePath] = STATUSES.COMPLETE;
});
await Promise.all(writePromises.map((fn) => fn()));
pages.forEach((page) => console.log(getStatusMessage(page)));
console.log('Render finished!');
await ejsPrerender();
};
main();

@@ -0,1 +1,2 @@

const ejsPrerender = require('./ejsPrerender');
const getConfig = require('./getConfig');

@@ -6,7 +7,7 @@ const grabPages = require('./grabPages');

module.exports = {
getConfig,
grabPages,
renderTemplate,
writeHtml,
};
ejsPrerender.getConfig = getConfig;
ejsPrerender.grabPages = grabPages;
ejsPrerender.renderTemplate = renderTemplate;
ejsPrerender.writeHtml = writeHtml;
module.exports = ejsPrerender;
{
"name": "ejs-prerender",
"version": "0.1.0",
"version": "1.0.0",
"description": "A tool for structured pre-rendering of EJS templates and partials",
"keywords": ["ejs", "prerender", "ssr"],
"bin": {

@@ -6,0 +7,0 @@ "ejs-prerender": "bin/ejs-prerender.js"

@@ -7,8 +7,8 @@ # ejs-prerender

| Name | Type | Default | Description |
| ------------------------- | ------ | ------------------------- | ---------------------------------------------------- |
| PEJS_BASE_DIR | String | current working directory | Base directory to reference for other relative paths |
| PEJS_BUILD_OUTPUT_DIR | String | 'public' | Where the completed pages get written |
| PEJS_BUILD_COMPONENTS_DIR | String | 'components' | Where components live |
| PEJS_BUILD_PAGES_DIR | String | 'pages' | Where pages live |
| PEJS_BUILD_PAGES_EXT | String | 'ejs' | File extension of pages |
| Option | Environment Variable | Type | Default | Description |
| ------------- | ------------------------- | ------ | ------------------------- | ---------------------------------------------------- |
| baseDir | PEJS_BASE_DIR | String | current working directory | Base directory to reference for other relative paths |
| outputDir | PEJS_BUILD_OUTPUT_DIR | String | 'public' | Where the completed pages get written |
| componentsDir | PEJS_BUILD_COMPONENTS_DIR | String | 'components' | Where components live |
| pagesDir | PEJS_BUILD_PAGES_DIR | String | 'pages' | Where pages live |
| pageExtension | PEJS_BUILD_PAGES_EXT | String | 'ejs' | File extension of pages |
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc