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()