1
mirror of https://github.com/jakejarvis/jakejarvis.git synced 2025-04-26 18:08:27 -04:00

try compiling CLI to one dependency-free file

This commit is contained in:
Jake Jarvis 2021-08-07 20:17:37 -04:00
parent 48775edbba
commit 9d488db184
Signed by: jake
GPG Key ID: 2B0C9CF251E69A39
5 changed files with 1954 additions and 430 deletions

1
cli/.gitignore vendored
View File

@ -1 +1,2 @@
node_modules/ node_modules/
dist/

View File

@ -1,12 +1,20 @@
#!/usr/bin/env node
'use strict'; 'use strict';
const meow = require('meow');
const React = require('react'); const React = require('react');
const {Box, Text} = require('ink'); const {render, Box, Text} = require('ink');
const BigText = require('ink-big-text'); const BigText = require('ink-big-text');
const Gradient = require('ink-gradient'); const Gradient = require('ink-gradient');
const SelectInput = require('ink-select-input').default; const SelectInput = require('ink-select-input').default;
const open = require('open'); const open = require('open');
meow(`
Usage
$ npx @jakejarvis/cli
`);
const handleSelect = item => { const handleSelect = item => {
if (item.url) { if (item.url) {
open(item.url); open(item.url);
@ -62,7 +70,7 @@ const items = createItems([
} }
]); ]);
const menu = () => ( const Menu = () => (
<Box flexDirection="column"> <Box flexDirection="column">
<Gradient name="pastel"> <Gradient name="pastel">
<BigText text="Jake Jarvis"/> <BigText text="Jake Jarvis"/>
@ -74,4 +82,4 @@ const menu = () => (
</Box> </Box>
); );
module.exports = menu; render(<Menu />);

View File

@ -22,29 +22,42 @@
"node": "^12 || ^14 || >=16" "node": "^12 || ^14 || >=16"
}, },
"files": [ "files": [
"src/*" "dist/index.js"
], ],
"bin": { "bin": {
"jakejarvis": "./src/cli.js" "jakejarvis": "./dist/index.js"
}, },
"scripts": { "scripts": {
"cli": "node ./src/cli.js", "clean": "rimraf dist",
"test": "eslint ./src/*.js" "compile": "babel index.js -o dist/babel.js && ncc build dist/babel.js -o dist && rimraf dist/babel.js",
"run": "yarn compile && node dist/index.js",
"test": "eslint ./src/*.js",
"prepublishOnly": "yarn clean && yarn compile"
}, },
"dependencies": { "dependencies": {},
"import-jsx": "^4.0.0", "devDependencies": {
"ink": "^3.0.8", "@babel/cli": "^7.14.8",
"@babel/core": "^7.15.0",
"@babel/preset-env": "^7.15.0",
"@babel/preset-react": "^7.14.5",
"@vercel/ncc": "^0.29.0",
"eslint": "^7.32.0",
"eslint-plugin-react": "^7.24.0",
"eslint-plugin-react-hooks": "^4.2.0",
"ink": "^3.0.9",
"ink-big-text": "^1.2.0", "ink-big-text": "^1.2.0",
"ink-gradient": "^2.0.0", "ink-gradient": "^2.0.0",
"ink-select-input": "^4.2.0", "ink-select-input": "^4.2.0",
"meow": "^9.0.0", "meow": "^9.0.0",
"open": "^8.2.0", "open": "^8.2.1",
"react": "^16.x" "react": "^16.x",
"rimraf": "^3.0.2"
}, },
"devDependencies": { "babel": {
"eslint": "^7.27.0", "presets": [
"eslint-plugin-react": "^7.24.0", "@babel/preset-env",
"eslint-plugin-react-hooks": "^4.2.0" "@babel/preset-react"
]
}, },
"eslintConfig": { "eslintConfig": {
"extends": [ "extends": [

View File

@ -1,17 +0,0 @@
#!/usr/bin/env node
'use strict';
const meow = require('meow');
const importJsx = require('import-jsx');
const React = require('react');
const {render} = require('ink');
const menu = importJsx('./menu');
meow(`
Usage
$ npx @jakejarvis/cli
`);
render(React.createElement(menu));

File diff suppressed because it is too large Load Diff