diff --git a/package.json b/package.json index ab88d76d..6467b84b 100644 --- a/package.json +++ b/package.json @@ -47,11 +47,11 @@ "jest-expect-message": "^1.0.2", "lint-staged": "^8.1.7", "np": "^5.0.1", + "snyk": "^1.250.0", "ts-jest": "^24.0.2", "ts-node": "^8.1.0", "tsconfig-paths": "^3.8.0", - "typewriter": "^7.0.0-33", - "snyk": "^1.250.0" + "typewriter": "^7.0.0-33" }, "dependencies": { "@hapi/joi": "^15.1.1", @@ -72,6 +72,7 @@ "node-machine-id": "^1.1.12", "prettier": "^1.17.0", "react": "^16.9.0", + "semver": "^6.3.0", "sort-keys": "^3.0.0", "typescript": "^3.4.5", "yargs": "^13.2.2" diff --git a/src/cli/commands/version.tsx b/src/cli/commands/version.tsx index 69fd641f..b129eff4 100644 --- a/src/cli/commands/version.tsx +++ b/src/cli/commands/version.tsx @@ -4,6 +4,7 @@ import { version as typewriterVersion } from '../../../package.json' import latest from 'latest-version' import { StandardProps } from '../index' import { ErrorContext } from './error' +import semver from 'semver' export const Version: React.FC = () => { const [isLoading, setIsLoading] = useState(true) @@ -14,7 +15,16 @@ export const Version: React.FC = () => { useEffect(() => { async function effect() { try { - const latestVersion = await latest('typewriter', { version: 'next' }) + let options: latest.Options = {} + + // If the user is on a pre-release, check if there's a new pre-release. + // Otherwise, only compare against stable versions. + const prerelease = semver.prerelease(typewriterVersion) + if (prerelease && prerelease.length > 0) { + options = { version: 'next' } + } + + const latestVersion = await latest('typewriter', options) setLatestVersion(latestVersion) } catch (error) { // If we can't access NPM, then ignore this version check. diff --git a/yarn.lock b/yarn.lock index 9949c0dd..0805c79b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6122,7 +6122,7 @@ semver@^5.0.3, semver@^5.1.0, semver@^5.5.0, semver@^5.5.1: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.2.0: +semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==