From 4726fe848b656e19642b7f5573794f34d02a9c1b Mon Sep 17 00:00:00 2001 From: Ava Gaiety W Date: Thu, 18 Sep 2025 19:22:04 -0600 Subject: [PATCH] preview command with arguments, better snippet --- README.md | 6 ++--- bun.lockb | Bin 4515 -> 4863 bytes index.ts | 44 ++++++++++++++++++++++--------------- package.json | 3 ++- src/preview/cli-list.ts | 12 ++++++++++ src/preview/cli-snippet.ts | 33 ++++++++++++++++++++++++++++ 6 files changed, 76 insertions(+), 22 deletions(-) create mode 100644 src/preview/cli-list.ts create mode 100644 src/preview/cli-snippet.ts diff --git a/README.md b/README.md index b87ecb5..40afc2d 100644 --- a/README.md +++ b/README.md @@ -3,18 +3,18 @@ ## Setup ```bash -bun install +bun ``` ## To Build ```bash -bun run index.js +bun index.ts ``` ## To Live Preview ```bash -while sleep 1 ; do find . -name '*.ts' | entr bun index.ts ; done +bun --watch index.ts preview ``` ## To Run Tests diff --git a/bun.lockb b/bun.lockb index a98e11a36adc584e60cad35fc25ba0b48b49eea9..5fed2ff51eca5bd0b656bc69a3f68a3788a84088 100755 GIT binary patch delta 874 zcma)4T}YEr7(VCw_HFyzcQzTwoO2Xuql|s~QS)c&23^G}6@`)HvYaf7Iq?UyAiSuH z{-E&^&LD_>q#H{!qiKm((M4i)(JzG1O+*(#VcCWD9=}cMt{2XE-simU^K#C4-HA}U5Y`}+rmd%MUD0v?xu(Zj z5Z;?wPRr#O3t-F)3E2a^)JS_^mm_P^c9eq&SuhK)n#48OR7h`U6&l zpim}2t=Pa-Vvx>3Mhs91+I2QN7AAVWp>aetG2jxwjZx0Zk4Zm7%Kf);Eto zHQx!}I{WhO;Dv9nUn&G9g{cS!r3e`H44xp9K-Nd#5we6nObw7hcFe%QX$Vspx(yL1 zG%{F3W}3DeZ4{Qp!s!ZmmjDYoU*7d>7au6lZE7f5Ti1-glD~L48&((;DK7YGQd~Mb z=3gb@;$LONg^lB#C)LL(;OT)DY0(x|UO^{PHH36$As6dcU%$W2ws({{-i_@% delta 721 zcma)4O-LJ25Pt7%HoKe6Zt5SJh>D8A3Z`{M2n1ZOF$VY!5{! z7zZH-#e*mw#au*0MG+MA;KiGsN>%jGYoVw!n+P8LVD@|8+izxf=Do*;mHN5R+ku&j z$%^H*+wgTdp=D-P%NM>M97Y3Wcf;Y}_QhVbq=-4tGx3_9emyVpPmQtZDqI@KDP#}w zhs0oN2-hVA9pH?SFNy4>_ah^t6Q4h_KGaxjx;k@Sp81>QO>n|({slB)^G%2fTl{7) zE869HG)CZ;i10DcB%5zQRI(wdp7p|k?C7v>mcpdBsm5vG;V};q)XYu6_r?pmUaOAg zLVeLZ6b$O0X3~L2L`aY=Xi+BFBn%o4jgC^u`Z6_JNLw^u*a$+_==YG-K?*8Of93Nv zn7aRT_Otk|PVknH6|yYG`k>47^CTqAR$dKDrr&de_leMGVox1dXx{feFoaC^=SR5h Vl&8&yUNdjfi=fljoxAeYN>AY-dUyZ; diff --git a/index.ts b/index.ts index a454417..541ceff 100644 --- a/index.ts +++ b/index.ts @@ -1,20 +1,28 @@ -import chalk from 'chalk' -import colors, { pit, text, darkTeal, darkOrange, lightOrange, darkPurple } from './src/palette' -import Color from './src/helpers/color' +#!/usr/bin/env node +import { Command } from 'commander' +import previewList from './src/preview/cli-list' +import previewSnippet from './src/preview/cli-snippet' -function log(color: Color) { - console.log( - chalk.hex(color.toHex()).bold('■ T'), - chalk.hex(text.toHex()).bold(color.name) - ) -} +const program = new Command(); + +program + .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'` - ) -) diff --git a/package.json b/package.json index 7d0bf0c..b168dca 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "devDependencies": { "@types/bun": "latest", "chalk": "^5.6.2", - "color-convert": "^3.1.2" + "color-convert": "^3.1.2", + "commander": "^14.0.1" }, "peerDependencies": { "typescript": "^5.0.0" diff --git a/src/preview/cli-list.ts b/src/preview/cli-list.ts new file mode 100644 index 0000000..f355308 --- /dev/null +++ b/src/preview/cli-list.ts @@ -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) diff --git a/src/preview/cli-snippet.ts b/src/preview/cli-snippet.ts new file mode 100644 index 0000000..28755a6 --- /dev/null +++ b/src/preview/cli-snippet.ts @@ -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('') + ) +}