From 68d1c3c2576031a7e5ec495532e423f739ffde79 Mon Sep 17 00:00:00 2001 From: Lakshya Singh Date: Thu, 17 Nov 2022 04:46:06 +0530 Subject: [PATCH] chore: switch to ESM (#17) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BREAKING CHANGE: ESM only * refactor: esm module update - use export and import with destructuring - define default exports - update tests Signed-off-by: Lakshya Singh * chore: update package.json and readme - use destruct in readme Signed-off-by: Lakshya Singh * chore: update deps security issue Signed-off-by: Lakshya Singh * Update package.json Signed-off-by: Lakshya Singh Co-authored-by: Diego Rodríguez Baquero BREAKING CHANGE: ESM only --- README.md | 8 ++++---- index.js | 11 +++++++---- package.json | 7 +++++++ test/compose.js | 12 ++++++------ test/parse.js | 12 ++++++------ 5 files changed, 30 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 35415d0..ee294ac 100644 --- a/README.md +++ b/README.md @@ -26,11 +26,11 @@ npm install bep53-range Parse Magnet URI extension (BEP53) range and return all included values. ```js -const bep53Range = require('bep53-range') +import { parse } from 'bep53-range' const range = ['1-3', '6', '11-13'] -const values = bep53Range.parse(range) +const values = parse(range) console.log(values) // [1, 2, 3, 6, 11, 12, 13] ``` @@ -40,11 +40,11 @@ console.log(values) // [1, 2, 3, 6, 11, 12, 13] Compose Magnet URI extension (BEP53) range from all included values. ```js -const bep53Range = require('bep53-range') +import { compose } from 'bep53-range' const values = [1, 2, 3, 6, 11, 12, 13] -const range = bep53Range.compose(values) +const range = compose(values) console.log(range) // ['1-3', '6', '11-13'] ``` diff --git a/index.js b/index.js index 9ff87ed..35d574e 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,3 @@ -module.exports = parseRange -module.exports.parse = parseRange -module.exports.compose = composeRange - function composeRange (range) { return range .reduce((acc, cur, idx, arr) => { @@ -23,3 +19,10 @@ function parseRange (range) { return acc.concat(generateRange(...r)) }, []) } + +export default parseRange + +export { + parseRange as parse, + composeRange as compose +} diff --git a/package.json b/package.json index 6afc6ff..9e4659a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ { "name": "bep53-range", "description": "Magnet URI extension (BEP53) range implementation", + "type": "module", "version": "1.1.1", "author": { "name": "Julen Garcia Leunda", @@ -15,6 +16,12 @@ "standard": "*", "tape": "5.6.1" }, + "engines": { + "node": ">=12.20.0" + }, + "exports": { + "import": "./index.js" + }, "main": "index.js", "types": "index.d.ts", "repository": { diff --git a/test/compose.js b/test/compose.js index 6d0460f..07abc49 100644 --- a/test/compose.js +++ b/test/compose.js @@ -1,29 +1,29 @@ -const test = require('tape') -const bep53Range = require('..') +import test from 'tape' +import { compose } from '../index.js' test('compose: a number', t => { - const range = bep53Range.compose([1]) + const range = compose([1]) t.deepEqual(range, ['1']) t.end() }) test('compose: one range', t => { - const range = bep53Range.compose([1, 2, 3]) + const range = compose([1, 2, 3]) t.deepEqual(range, ['1-3']) t.end() }) test('compose: multiple ranges', t => { - const range = bep53Range.compose([1, 2, 3, 11, 12, 13]) + const range = compose([1, 2, 3, 11, 12, 13]) t.deepEqual(range, ['1-3', '11-13']) t.end() }) test('compose: multiple ranges between a number', t => { - const range = bep53Range.compose([1, 2, 3, 6, 11, 12, 13]) + const range = compose([1, 2, 3, 6, 11, 12, 13]) t.deepEqual(range, ['1-3', '6', '11-13']) t.end() diff --git a/test/parse.js b/test/parse.js index 2a3c628..7a6faf0 100644 --- a/test/parse.js +++ b/test/parse.js @@ -1,29 +1,29 @@ -const test = require('tape') -const bep53Range = require('..') +import test from 'tape' +import { parse } from '../index.js' test('parse: a number', t => { - const range = bep53Range.parse(['1']) + const range = parse(['1']) t.deepEqual(range, [1]) t.end() }) test('parse: one range', t => { - const range = bep53Range.parse(['1-3']) + const range = parse(['1-3']) t.deepEqual(range, [1, 2, 3]) t.end() }) test('parse: multiple ranges', t => { - const range = bep53Range.parse(['1-3', '11-13']) + const range = parse(['1-3', '11-13']) t.deepEqual(range, [1, 2, 3, 11, 12, 13]) t.end() }) test('parse: multiple ranges between a number', t => { - const range = bep53Range.parse(['1-3', '6', '11-13']) + const range = parse(['1-3', '6', '11-13']) t.deepEqual(range, [1, 2, 3, 6, 11, 12, 13]) t.end()