Skip to content

Commit 6b0351f

Browse files
authored
Merge pull request #72 from 11ty/esm
Upgrade plugin to use ESM
2 parents 93ef73c + ff7264c commit 6b0351f

15 files changed

+56
-52
lines changed

.eleventy.js

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
1-
const rssPlugin = require("./src/rssPlugin.js");
2-
const dateRfc3339 = require("./src/dateRfc3339.js");
3-
const dateRfc822 = require("./src/dateRfc822.js");
4-
const getNewestCollectionItemDate = require("./src/getNewestCollectionItemDate.js");
5-
const virtualTemplate = require("./src/virtualTemplate.js");
1+
import rssPlugin from "./src/rssPlugin.js";
2+
import dateRfc3339 from "./src/dateRfc3339.js";
3+
import dateRfc822 from "./src/dateRfc822.js";
4+
import getNewestCollectionItemDate from "./src/getNewestCollectionItemDate.js";
5+
import virtualTemplate from "./src/virtualTemplate.js";
66

7-
const absoluteUrl = require("./src/absoluteUrl.js");
8-
const convertHtmlToAbsoluteUrls = require("./src/htmlToAbsoluteUrls.js");
7+
import absoluteUrl from "./src/absoluteUrl.js";
8+
import convertHtmlToAbsoluteUrls from "./src/htmlToAbsoluteUrls.js";
99

10-
module.exports = rssPlugin;
11-
module.exports.feedPlugin = virtualTemplate;
12-
module.exports.dateToRfc3339 = dateRfc3339;
13-
module.exports.dateToRfc822 = dateRfc822;
14-
module.exports.getNewestCollectionItemDate = getNewestCollectionItemDate;
15-
module.exports.absoluteUrl = absoluteUrl;
16-
module.exports.convertHtmlToAbsoluteUrls = convertHtmlToAbsoluteUrls;
10+
export default rssPlugin;
11+
12+
export {
13+
rssPlugin,
14+
virtualTemplate as feedPlugin,
15+
dateRfc3339 as dateToRfc3339,
16+
dateRfc822 as dateToRfc822,
17+
getNewestCollectionItemDate as getNewestCollectionItemDate,
18+
absoluteUrl as absoluteUrl,
19+
convertHtmlToAbsoluteUrls as convertHtmlToAbsoluteUrls
20+
};

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"name": "@11ty/eleventy-plugin-rss",
3-
"version": "2.0.4",
3+
"version": "3.0.0-alpha.1",
4+
"type": "module",
45
"description": "Generate an Atom, RSS, or JSON feed with Eleventy.",
56
"publishConfig": {
67
"access": "public"

sample/config-sample.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
const rssPlugin = require("../");
1+
import rssPlugin from "../.eleventy.js";
22

3-
module.exports = function(eleventyConfig) {
3+
export default function(eleventyConfig) {
44
// eleventyConfig.ignores.add("json.njk");
55
// eleventyConfig.ignores.add("atom.njk");
66
// eleventyConfig.ignores.add("rss.njk");

src/absoluteUrl.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
const debug = require("debug")("Eleventy:Rss");
1+
import debugUtil from "debug";
2+
const debug = debugUtil("Eleventy:Rss");
23

34
// This is deprecated! Use the Eleventy HTML <base> plugin instead (2.0+)
4-
module.exports = function(url, base) {
5+
export default function(url, base) {
56
try {
67
return (new URL(url, base)).toString()
78
} catch(e) {

src/dateRfc3339.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Atom uses RFC 3339 dates
22
// https://tools.ietf.org/html/rfc3339#section-5.8
3-
module.exports = function(dateObj) {
3+
export default function(dateObj) {
44
let s = dateObj.toISOString();
55

66
// remove milliseconds

src/dateRfc822.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module.exports = function pubDateRFC822(value) {
1+
export default function pubDateRFC822(value) {
22
const date = new Date(value);
33
const options = {
44
weekday: 'short',

src/getNewestCollectionItemDate.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module.exports = function(collection, emptyFallbackDate) {
1+
export default function(collection, emptyFallbackDate) {
22
if( !collection || !collection.length ) {
33
return emptyFallbackDate || new Date();
44
}

src/htmlToAbsoluteUrls.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
const posthtml = require('posthtml');
2-
const urls = require('@11ty/posthtml-urls')
3-
const absoluteUrl = require("./absoluteUrl");
1+
import posthtml from 'posthtml';
2+
import urls from '@11ty/posthtml-urls';
3+
import absoluteUrl from "./absoluteUrl.js";
44

55
// This is deprecated! Use the Eleventy HTML <base> plugin instead (2.0+)
6-
module.exports = async function(htmlContent, base, processOptions = {}) {
6+
export default async function(htmlContent, base, processOptions = {}) {
77
if( !base ) {
88
throw new Error( "eleventy-plugin-rss: htmlToAbsoluteUrls(absolutePostUrl) was missing the full URL base `absolutePostUrl` argument.")
99
}

src/rssPlugin.js

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
const pkg = require("../package.json");
1+
import pkg from "../package.json" with {type: "json"};
22

3-
const dateRfc3339 = require("./dateRfc3339.js");
4-
const dateRfc822 = require("./dateRfc822.js");
5-
const getNewestCollectionItemDate = require("./getNewestCollectionItemDate.js");
3+
import dateRfc3339 from "./dateRfc3339.js";
4+
import dateRfc822 from "./dateRfc822.js";
5+
import getNewestCollectionItemDate from "./getNewestCollectionItemDate.js";
66

7-
const absoluteUrl = require("./absoluteUrl.js");
8-
const convertHtmlToAbsoluteUrls = require("./htmlToAbsoluteUrls.js");
7+
import absoluteUrl from "./absoluteUrl.js";
8+
import convertHtmlToAbsoluteUrls from "./htmlToAbsoluteUrls.js";
99

1010

11-
function eleventyRssPlugin(eleventyConfig, options = {}) {
11+
export default function eleventyRssPlugin(eleventyConfig, options = {}) {
1212
eleventyConfig.versionCheck(pkg["11ty"].compatibility);
1313

1414
// Guaranteed unique, first add wins
@@ -58,5 +58,3 @@ Object.defineProperty(eleventyRssPlugin, "eleventyPluginOptions", {
5858
unique: true
5959
}
6060
});
61-
62-
module.exports = eleventyRssPlugin;

src/virtualTemplate.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
const pkg = require("../package.json");
2-
const { DeepCopy } = require("@11ty/eleventy-utils");
1+
import debugUtil from "debug";
2+
import pkg from "../package.json" with {type: "json"};
33

4-
const rssPlugin = require("./rssPlugin.js");
4+
import { DeepCopy } from "@11ty/eleventy-utils";
55

6-
const debug = require("debug")("Eleventy:Rss:Feed");
6+
import rssPlugin from "./rssPlugin.js";
7+
8+
const debug = debugUtil("Eleventy:Rss:Feed");
79

810
function getFeedContent({ type, stylesheet, collection }) {
911
// Note: page.lang comes from the i18n plugin: https://www.11ty.dev/docs/plugins/i18n/#page.lang
@@ -96,7 +98,7 @@ ${stylesheet ? `<?xml-stylesheet href="${stylesheet}" type="text/xsl"?>\n` : ""}
9698
throw new Error("Missing or invalid feed type. Received: " + type);
9799
}
98100

99-
function eleventyFeedPlugin(eleventyConfig, options = {}) {
101+
export default function eleventyFeedPlugin(eleventyConfig, options = {}) {
100102
eleventyConfig.versionCheck(pkg["11ty"].compatibility);
101103

102104
// Guaranteed unique, first add wins
@@ -183,5 +185,3 @@ Object.defineProperty(eleventyFeedPlugin, "eleventyPluginOptions", {
183185
unique: false
184186
}
185187
});
186-
187-
module.exports = eleventyFeedPlugin;

0 commit comments

Comments
 (0)