preview command with arguments, better snippet
This commit is contained in:
parent
b78c0e926f
commit
4726fe848b
6 changed files with 76 additions and 22 deletions
|
@ -3,18 +3,18 @@
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
bun install
|
bun
|
||||||
```
|
```
|
||||||
|
|
||||||
## To Build
|
## To Build
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
bun run index.js
|
bun index.ts
|
||||||
```
|
```
|
||||||
|
|
||||||
## To Live Preview
|
## To Live Preview
|
||||||
```bash
|
```bash
|
||||||
while sleep 1 ; do find . -name '*.ts' | entr bun index.ts ; done
|
bun --watch index.ts preview
|
||||||
```
|
```
|
||||||
|
|
||||||
## To Run Tests
|
## To Run Tests
|
||||||
|
|
BIN
bun.lockb
BIN
bun.lockb
Binary file not shown.
44
index.ts
44
index.ts
|
@ -1,20 +1,28 @@
|
||||||
import chalk from 'chalk'
|
#!/usr/bin/env node
|
||||||
import colors, { pit, text, darkTeal, darkOrange, lightOrange, darkPurple } from './src/palette'
|
import { Command } from 'commander'
|
||||||
import Color from './src/helpers/color'
|
import previewList from './src/preview/cli-list'
|
||||||
|
import previewSnippet from './src/preview/cli-snippet'
|
||||||
|
|
||||||
function log(color: Color) {
|
const program = new Command();
|
||||||
console.log(
|
|
||||||
chalk.hex(color.toHex()).bold('■ T'),
|
program
|
||||||
chalk.hex(text.toHex()).bold(color.name)
|
.name('verdigris')
|
||||||
)
|
.description('Mining up the very best Color Palette')
|
||||||
}
|
.version('0.0.1')
|
||||||
|
|
||||||
|
program
|
||||||
|
.command('preview')
|
||||||
|
.description('TODO')
|
||||||
|
.option('-v, --verbose', 'additional Logs')
|
||||||
|
.option('--no-list', 'do not show colors as a list')
|
||||||
|
.option('--no-snippet', 'do not a code snippet')
|
||||||
|
.action((options) => {
|
||||||
|
if (options.verbose) console.info('Previewing Color Palette')
|
||||||
|
if (options.verbose) console.info('List:')
|
||||||
|
if (options.list) previewList()
|
||||||
|
if (options.verbose) console.info('Code Example:')
|
||||||
|
if (options.snippet) previewSnippet()
|
||||||
|
});
|
||||||
|
|
||||||
|
program.parse();
|
||||||
|
|
||||||
colors.forEach(log)
|
|
||||||
console.log(
|
|
||||||
chalk
|
|
||||||
.bgHex(pit.toHex())
|
|
||||||
.hex(text.toHex())
|
|
||||||
.visible(
|
|
||||||
`${chalk.hex(darkTeal.toHex()).visible('const')} ${chalk.hex(darkOrange.toHex()).visible('myFunc')} ${chalk.hex(lightOrange.toHex()).visible('=')} (isAwesome: boolean) => return 'yep'`
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
|
@ -5,7 +5,8 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/bun": "latest",
|
"@types/bun": "latest",
|
||||||
"chalk": "^5.6.2",
|
"chalk": "^5.6.2",
|
||||||
"color-convert": "^3.1.2"
|
"color-convert": "^3.1.2",
|
||||||
|
"commander": "^14.0.1"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"typescript": "^5.0.0"
|
"typescript": "^5.0.0"
|
||||||
|
|
12
src/preview/cli-list.ts
Normal file
12
src/preview/cli-list.ts
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
import chalk from 'chalk'
|
||||||
|
import colors, { text } from '../palette'
|
||||||
|
import Color from '../helpers/color'
|
||||||
|
|
||||||
|
export function log(color: Color) {
|
||||||
|
console.log(
|
||||||
|
chalk.hex(color.toHex()).bold('■ T'),
|
||||||
|
chalk.hex(text.toHex()).bold(color.name)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default () => colors.forEach(log)
|
33
src/preview/cli-snippet.ts
Normal file
33
src/preview/cli-snippet.ts
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
import chalk from 'chalk'
|
||||||
|
import { pit, text, darkTeal, darkOrange, lightOrange, darkPurple, lightPurple, darkBlue, darkGreen, stope } from '../palette'
|
||||||
|
|
||||||
|
const bg = chalk.bgHex(pit.toHex()).hex(text.toHex())
|
||||||
|
const chalkDefinition = chalk.hex(darkTeal.toHex())
|
||||||
|
const chalkVariable = chalk.hex(darkOrange.toHex())
|
||||||
|
const chalkAssignments = chalk.hex(lightOrange.toHex())
|
||||||
|
const chalkParenthesis = chalk.hex(darkPurple.toHex())
|
||||||
|
const chalkParameter = chalk.hex(lightPurple.toHex())
|
||||||
|
const chalkType = chalk.hex(darkBlue.toHex())
|
||||||
|
const chalkReturn = chalk.hex(darkGreen.toHex())
|
||||||
|
const chalkComment = chalk.italic.hex(stope.toHex())
|
||||||
|
|
||||||
|
export default () => {
|
||||||
|
console.log(
|
||||||
|
bg(`
|
||||||
|
${chalkDefinition('const')}
|
||||||
|
${chalkVariable('myFunc')}
|
||||||
|
${chalkAssignments('=')}
|
||||||
|
${chalkParenthesis('\(')}
|
||||||
|
${chalkParameter('isAwesome')}
|
||||||
|
:
|
||||||
|
${chalkType('boolean')}
|
||||||
|
${chalkParenthesis('\)')}
|
||||||
|
:
|
||||||
|
${chalkType('string')}
|
||||||
|
${chalkAssignments('=>')}
|
||||||
|
${chalkReturn('return')}
|
||||||
|
'yep!'
|
||||||
|
${chalkComment('# cool!')}
|
||||||
|
`).split('\n').join('')
|
||||||
|
)
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue