diff --git a/.gitignore b/.gitignore index 58c3c65..d5bfa84 100644 --- a/.gitignore +++ b/.gitignore @@ -89,4 +89,4 @@ dist .DS_Store /static/tailwind.css netlify/functions/eleventy-builder/** -!netlify/functions/eleventy-builder/index.js +!netlify/functions/eleventy-builder/eleventy-builder.js diff --git a/netlify/functions/eleventy-builder/eleventy-builder.js b/netlify/functions/eleventy-builder/eleventy-builder.js new file mode 100644 index 0000000..557f4ad --- /dev/null +++ b/netlify/functions/eleventy-builder/eleventy-builder.js @@ -0,0 +1,54 @@ +const { EleventyServerless } = require("@11ty/eleventy"); + +// Explicit dependencies for the bundler from config file and global data. +// The file is generated by the Eleventy Serverless Bundler Plugin. +require("./eleventy-bundler-modules.js"); + +async function handler(event) { + + console.log('event.path', event.path) + + let elev = new EleventyServerless("eleventy-builder", { + path: event.path, + query: event.queryStringParameters, + inputDir: ".", + functionsDir: "./netlify/functions/", + }); + + try { + return { + statusCode: 200, + headers: { + "Content-Type": "text/html; charset=UTF-8", + }, + body: await elev.render(), + }; + } catch (error) { + // Only console log for matching serverless paths + // (otherwise you’ll see a bunch of BrowserSync 404s for non-dynamic URLs during --serve) + if (elev.isServerlessUrl(event.path)) { + console.log("Serverless Error:", error); + } + + return { + statusCode: error.httpStatusCode || 500, + body: JSON.stringify( + { + error: error.message, + }, + null, + 2 + ), + }; + } +} + +// Choose one: +// * Runs on each request: AWS Lambda (or Netlify Function) +// * Runs on first request only: Netlify On-demand Builder +// (don’t forget to `npm install @netlify/functions`) + +// exports.handler = handler; + +const { builder } = require("@netlify/functions"); +exports.handler = builder(handler); diff --git a/netlify/functions/eleventy-builder/index.js b/netlify/functions/eleventy-builder/index.js index 557f4ad..08eebe8 100644 --- a/netlify/functions/eleventy-builder/index.js +++ b/netlify/functions/eleventy-builder/index.js @@ -5,42 +5,39 @@ const { EleventyServerless } = require("@11ty/eleventy"); require("./eleventy-bundler-modules.js"); async function handler(event) { + let elev = new EleventyServerless("eleventy-builder", { + path: event.path, + query: event.queryStringParameters, + inputDir: ".", + functionsDir: "./netlify/functions/", + }); - console.log('event.path', event.path) - - let elev = new EleventyServerless("eleventy-builder", { - path: event.path, - query: event.queryStringParameters, - inputDir: ".", - functionsDir: "./netlify/functions/", - }); - - try { - return { - statusCode: 200, - headers: { - "Content-Type": "text/html; charset=UTF-8", - }, - body: await elev.render(), - }; - } catch (error) { - // Only console log for matching serverless paths - // (otherwise you’ll see a bunch of BrowserSync 404s for non-dynamic URLs during --serve) - if (elev.isServerlessUrl(event.path)) { - console.log("Serverless Error:", error); - } - - return { - statusCode: error.httpStatusCode || 500, - body: JSON.stringify( - { - error: error.message, - }, - null, - 2 - ), - }; + try { + return { + statusCode: 200, + headers: { + "Content-Type": "text/html; charset=UTF-8", + }, + body: await elev.render(), + }; + } catch (error) { + // Only console log for matching serverless paths + // (otherwise you’ll see a bunch of BrowserSync 404s for non-dynamic URLs during --serve) + if (elev.isServerlessUrl(event.path)) { + console.log("Serverless Error:", error); } + + return { + statusCode: error.httpStatusCode || 500, + body: JSON.stringify( + { + error: error.message, + }, + null, + 2 + ), + }; + } } // Choose one: @@ -48,7 +45,7 @@ async function handler(event) { // * Runs on first request only: Netlify On-demand Builder // (don’t forget to `npm install @netlify/functions`) -// exports.handler = handler; +exports.handler = handler; -const { builder } = require("@netlify/functions"); -exports.handler = builder(handler); +//const { builder } = require("@netlify/functions"); +//exports.handler = builder(handler);