From bf8536e6ca552e09e1f38000942a3ef6de2bd24e Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Sun, 25 Oct 2020 22:11:00 +0000 Subject: [PATCH] fix(core): update --- package-lock.json | 20 +++++++++++++++++--- package.json | 3 ++- test/test.ts | 7 +++++++ ts/index.ts | 12 ++++++++++++ ts/smartfeed.plugins.ts | 2 ++ 5 files changed, 40 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7a0a644..0042ba5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9405,6 +9405,22 @@ } } }, + "rss-parser": { + "version": "3.9.0", + "resolved": "https://verdaccio.lossless.one/rss-parser/-/rss-parser-3.9.0.tgz", + "integrity": "sha512-wlRSfGrotOXuWo19Dtl2KmQt7o9i5zzCExUrxpechE0O54BAx7JD+xhWyGumPPqiJj771ndflV3sE3bTHen0HQ==", + "requires": { + "entities": "^2.0.3", + "xml2js": "^0.4.19" + }, + "dependencies": { + "entities": { + "version": "2.1.0", + "resolved": "https://verdaccio.lossless.one/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" + } + } + }, "rxjs": { "version": "6.6.3", "resolved": "https://verdaccio.lossless.one/rxjs/-/rxjs-6.6.3.tgz", @@ -10956,7 +10972,6 @@ "version": "0.4.23", "resolved": "https://verdaccio.lossless.one/xml2js/-/xml2js-0.4.23.tgz", "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, "requires": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -10965,8 +10980,7 @@ "xmlbuilder": { "version": "11.0.1", "resolved": "https://verdaccio.lossless.one/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" }, "xmlchars": { "version": "2.2.0", diff --git a/package.json b/package.json index 523894f..bd4e0bb 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,8 @@ "tslint-config-prettier": "^1.15.0" }, "dependencies": { - "feed": "^4.2.1" + "feed": "^4.2.1", + "rss-parser": "^3.9.0" }, "browserslist": [ "last 1 chrome versions" diff --git a/test/test.ts b/test/test.ts index fb89fd7..c1b02ff 100644 --- a/test/test.ts +++ b/test/test.ts @@ -27,6 +27,13 @@ tap.test('should create a feed', async () => { }); const rssFeed = feed.exportRssFeedString(); console.log(rssFeed); + const parsedFeed = await testSmartFeed.parseFeedFromString(rssFeed); + console.log(parsedFeed); +}); + +tap.test('should parse a Url', async () => { + const result = await testSmartFeed.parseFeedFromUrl('https://www.theverge.com/rss/index.xml'); + // console.log(result); }); tap.start(); diff --git a/ts/index.ts b/ts/index.ts index d8d3021..0f9e519 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -6,4 +6,16 @@ export class Smartfeed { const feedVersion = new Feed(optionsArg); return feedVersion; } + + public async parseFeedFromString(rssFeedString: string) { + const parser = new plugins.rssParser(); + const resultingFeed = await parser.parseString(rssFeedString); + return resultingFeed; + } + + public async parseFeedFromUrl(urlArg: string) { + const parser = new plugins.rssParser(); + const resultingFeed = await parser.parseURL(urlArg); + return resultingFeed; + } } \ No newline at end of file diff --git a/ts/smartfeed.plugins.ts b/ts/smartfeed.plugins.ts index d675152..12b8a8a 100644 --- a/ts/smartfeed.plugins.ts +++ b/ts/smartfeed.plugins.ts @@ -1,6 +1,8 @@ // third party scope +import rssParser from 'rss-parser'; import * as feed from 'feed'; export { + rssParser, feed };