Skip to content

Commit

Permalink
Require Node.js 12.20 and move to ESM
Browse files Browse the repository at this point in the history
  • Loading branch information
sindresorhus committed Oct 17, 2021
1 parent 63c08f6 commit 0d1a068
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 25 deletions.
6 changes: 2 additions & 4 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,10 @@ jobs:
fail-fast: false
matrix:
node-version:
- 14
- 12
- 10
- 16
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: npm install
Expand Down
6 changes: 2 additions & 4 deletions index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Non-semver versions and prereleases are ignored.
@example
```
import latestSemver = require('latest-semver');
import latestSemver from 'latest-semver';
latestSemver([
'v1.8.0-alpha.1',
Expand All @@ -22,6 +22,4 @@ latestSemver([
//=> undefined
```
*/
declare function latestSemver(versions: readonly string[]): string | undefined;

export = latestSemver;
export default function latestSemver(versions: readonly string[]): string | undefined;
7 changes: 4 additions & 3 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
'use strict';
const toSemver = require('to-semver');
import toSemver from 'to-semver';

module.exports = versions => toSemver(versions, {includePrereleases: false})[0];
export default function latestSemver(versions) {
return toSemver(versions, {includePrereleases: false})[0];
}
4 changes: 2 additions & 2 deletions index.test-d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {expectType} from 'tsd';
import latestSemver = require('.');
import latestSemver from './index.js';

expectType<string | undefined>(
latestSemver(['v1.8.0-alpha.1', 'v1.3.16', 'v1.7.0', 'v1.6.9'])
latestSemver(['v1.8.0-alpha.1', 'v1.3.16', 'v1.7.0', 'v1.6.9']),
);
12 changes: 7 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@
"email": "sindresorhus@gmail.com",
"url": "https://sindresorhus.com"
},
"type": "module",
"exports": "./index.js",
"engines": {
"node": ">=10"
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"scripts": {
"test": "xo && ava && tsd"
Expand All @@ -36,11 +38,11 @@
"tags"
],
"dependencies": {
"to-semver": "^3.0.0"
"to-semver": "^4.0.0"
},
"devDependencies": {
"ava": "^2.4.0",
"tsd": "^0.13.1",
"xo": "^0.32.1"
"ava": "^3.15.0",
"tsd": "^0.18.0",
"xo": "^0.45.0"
}
}
8 changes: 4 additions & 4 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@

> Get the latest stable [semver](https://semver.org) version from an array of versions
Can be useful when you have an unsorted list of versions, like Git tags, and want to get the semantically latest version.
This can be useful when you have an unsorted list of versions, like Git tags, and want to get the semantically latest version.

## Install

```
$ npm install latest-semver
```sh
npm install latest-semver
```

## Usage

```js
const latestSemver = require('latest-semver');
import latestSemver from 'latest-semver';

latestSemver([
'v1.8.0-alpha.1',
Expand Down
6 changes: 3 additions & 3 deletions test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import test from 'ava';
import latestSemver from '.';
import latestSemver from './index.js';

test('main', t => {
const versions = [
Expand All @@ -8,7 +8,7 @@ test('main', t => {
'v1.6.9',
'v1.6.8',
'v1.3.15',
'v1.6.7'
'v1.6.7',
];

t.is(latestSemver(versions), '1.7.0');
Expand All @@ -23,7 +23,7 @@ test('handles prerelease versions', t => {
const versions = [
'1.2.3-alpha.3',
'1.2.0',
'1.0.0'
'1.0.0',
];

t.is(latestSemver(versions), '1.2.0');
Expand Down

0 comments on commit 0d1a068

Please sign in to comment.