From 73ace6ed581541154c2c17899941cdd1a5067f33 Mon Sep 17 00:00:00 2001 From: Kiko Beats Date: Wed, 16 Aug 2023 18:14:45 +0200 Subject: [PATCH] feat: be possible to skip re2 --- README.md | 9 +++++++++ packages/metascraper-helpers/index.js | 9 ++++++++- packages/metascraper-helpers/package.json | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ffabc20ad..cf09bcdda 100644 --- a/README.md +++ b/README.md @@ -279,6 +279,15 @@ Default: `true` Ensure the URL provided is validated as a [WHATWG URL](https://nodejs.org/api/url.html#url_the_whatwg_url_api) API compliant. +## Environment Variables + +#### METASCRAPER_RE2 + +Type: `boolean`
+Default: `true` + +It attemptt to load re2 to use instead of RegExp. + ## Benchmark To give you an idea of how accurate **metascraper** is, here is a comparison of similar libraries: diff --git a/packages/metascraper-helpers/index.js b/packages/metascraper-helpers/index.js index 653131d1f..a322531c0 100644 --- a/packages/metascraper-helpers/index.js +++ b/packages/metascraper-helpers/index.js @@ -1,7 +1,6 @@ 'use strict' const memoizeOne = require('memoize-one').default || require('memoize-one') -const urlRegex = require('url-regex-safe')({ exact: true, parens: true }) const condenseWhitespace = require('condense-whitespace') const { getExtension: mimeExtension } = require('mime') const capitalize = require('microsoft-capitalize') @@ -19,6 +18,14 @@ const isUri = require('is-uri') const { URL } = require('url') const tldts = require('tldts') +const urlRegex = require('url-regex-safe')({ + exact: true, + parens: true, + re2: process.env.METASCRAPER_RE2 + ? process.env.METASCRAPER_RE2 === 'true' + : undefined +}) + const { chain, eq, diff --git a/packages/metascraper-helpers/package.json b/packages/metascraper-helpers/package.json index 3ffe13472..8c3a105d1 100644 --- a/packages/metascraper-helpers/package.json +++ b/packages/metascraper-helpers/package.json @@ -42,7 +42,7 @@ "re2": "~1.20.1", "smartquotes": "~2.3.2", "tldts": "~6.0.12", - "url-regex-safe": "~3.0.0", + "url-regex-safe": "~4.0.0", "video-extensions": "~1.2.0" }, "devDependencies": {