Skip to content

Commit

Permalink
feat(cli): add node version check
Browse files Browse the repository at this point in the history
See #70 and #71.
  • Loading branch information
simonhaenisch committed Apr 18, 2020
1 parent 3467d38 commit be72a7d
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 5 deletions.
42 changes: 38 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,15 @@
"listr": "0.14.3",
"marked": "0.8.2",
"puppeteer": ">=2.0.0",
"semver": "7.3.2",
"serve-handler": "6.1.2"
},
"devDependencies": {
"@types/highlight.js": "9.12.3",
"@types/listr": "0.14.2",
"@types/marked": "0.7.4",
"@types/puppeteer": "2.0.1",
"@types/semver": "7.1.0",
"@types/serve-handler": "6.1.0",
"ava": "3.7.0",
"husky": "4.2.5",
Expand Down
8 changes: 7 additions & 1 deletion src/cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@ import getPort from 'get-port';
import getStdin from 'get-stdin';
import Listr from 'listr';
import path from 'path';
import { PackageJson } from '.';
import { Config, defaultConfig } from './lib/config';
import { help } from './lib/help';
import { setProcessAndTermTitle } from './lib/helpers';
import { convertMdToPdf } from './lib/md-to-pdf';
import { closeServer, serveDirectory } from './lib/serve-dir';
import { validateNodeVersion } from './lib/validate-node-version';

// --
// Configure CLI Arguments
Expand Down Expand Up @@ -59,8 +61,12 @@ main(cliFlags, defaultConfig).catch((error) => {
async function main(args: typeof cliFlags, config: Config) {
setProcessAndTermTitle('md-to-pdf');

if (!validateNodeVersion()) {
throw new Error('Please use a Node.js version that satisfies the version specified in the engines field.');
}

if (args['--version']) {
return console.log((require('../package') as { version: string }).version);
return console.log((require('../package') as PackageJson).version);
}

if (args['--help']) {
Expand Down
7 changes: 7 additions & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,10 @@ export const mdToPdf = async (input: { path: string } | { content: string }, con
};

export default mdToPdf;

export interface PackageJson {
engines: {
node: string;
};
version: string;
}
6 changes: 6 additions & 0 deletions src/lib/validate-node-version.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import semver from 'semver';
import { PackageJson } from '..';

const pkg: PackageJson = require('../../package');

export const validateNodeVersion = () => semver.satisfies(process.versions.node, pkg.engines.node);

0 comments on commit be72a7d

Please sign in to comment.