diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c1870cf..441975c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -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 diff --git a/index.d.ts b/index.d.ts index df018a4..1906916 100644 --- a/index.d.ts +++ b/index.d.ts @@ -8,8 +8,8 @@ By default, the name of the current operating system is returned. @example ``` -import * as os fron 'os'; -import osName = require('os-name'); +import os from 'node:os'; +import osName from 'os-name'; // On a macOS Sierra system @@ -29,7 +29,5 @@ osName('win32', '6.3.9600'); //=> 'Windows 8.1' ``` */ -declare function osName(): string; -declare function osName(platform: NodeJS.Platform, release: string): string; - -export = osName; +export default function osName(): string; +export default function osName(platform: NodeJS.Platform, release: string): string; diff --git a/index.js b/index.js index 6e25f86..ec4a55f 100644 --- a/index.js +++ b/index.js @@ -1,9 +1,8 @@ -'use strict'; -const os = require('os'); -const macosRelease = require('macos-release'); -const winRelease = require('windows-release'); +import os from 'node:os'; +import macosRelease from 'macos-release'; +import windowsRelease from 'windows-release'; -const osName = (platform, release) => { +export default function osName(platform, release) { if (!platform && release) { throw new Error('You can\'t specify a `release` without specifying `platform`'); } @@ -40,11 +39,9 @@ const osName = (platform, release) => { release = os.release(); } - id = release ? winRelease(release) : ''; + id = release ? windowsRelease(release) : ''; return 'Windows' + (id ? ' ' + id : ''); } return platform; -}; - -module.exports = osName; +} diff --git a/index.test-d.ts b/index.test-d.ts index dfa1e71..5973384 100644 --- a/index.test-d.ts +++ b/index.test-d.ts @@ -1,9 +1,9 @@ +import os from 'node:os'; import {expectType} from 'tsd'; -import * as os from 'os'; -import osName = require('.'); +import osName from './index.js'; expectType(osName()); -expectType(osName(os.platform(), os.release())); +expectType(osName(os.platform(), os.release())); // eslint-disable-line @typescript-eslint/no-unsafe-member-access expectType(osName('darwin', '14.0.0')); expectType(osName('linux', '3.13.0-24-generic')); expectType(osName('win32', '6.3.9600')); diff --git a/package.json b/package.json index d68b29a..50a1086 100644 --- a/package.json +++ b/package.json @@ -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" @@ -34,13 +36,13 @@ "linux" ], "dependencies": { - "macos-release": "^2.5.0", - "windows-release": "^4.0.0" + "macos-release": "^3.0.0", + "windows-release": "^5.0.0" }, "devDependencies": { - "@types/node": "^14.6.2", - "ava": "^2.4.0", - "tsd": "^0.13.1", - "xo": "^0.33.0" + "@types/node": "^16.6.0", + "ava": "^3.15.0", + "tsd": "^0.17.0", + "xo": "^0.44.0" } } diff --git a/readme.md b/readme.md index 4aabe9d..965c532 100644 --- a/readme.md +++ b/readme.md @@ -14,8 +14,8 @@ $ npm install os-name ## Usage ```js -const os = require('os'); -const osName = require('os-name'); +import os from 'node:os'; +import osName from 'os-name'; // On a macOS Sierra system diff --git a/test.js b/test.js index 87fcada..21981d1 100644 --- a/test.js +++ b/test.js @@ -1,6 +1,6 @@ -import os from 'os'; +import os from 'node:os'; import test from 'ava'; -import osName from '.'; +import osName from './index.js'; test('main', t => { t.true(osName().length > 0);