summaryrefslogtreecommitdiff
path: root/src/command.js
diff options
context:
space:
mode:
authorLeo Goetz <dev@leogtz.de>2025-11-08 18:55:03 +0100
committerLeo Goetz <dev@leogtz.de>2025-11-08 18:55:03 +0100
commit16a0e9a9d2c24af28142ed3420ef6cb373c454f7 (patch)
treeb948472cea12b505ae3f2cc04b66801207ebc6aa /src/command.js
parent91a6ac10e416dcf2c29b6e37e3dfe19672eb0f84 (diff)
started making the command and json db
Diffstat (limited to 'src/command.js')
-rw-r--r--src/command.js71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/command.js b/src/command.js
new file mode 100644
index 0000000..20a23b2
--- /dev/null
+++ b/src/command.js
@@ -0,0 +1,71 @@
+import yargs from "yargs";
+import { hideBin } from "yargs/helpers";
+
+yargs(hideBin(process.argv))
+ .command(
+ "new <note>",
+ "create a new note",
+ (yargs) => {
+ return yargs.positional("note", {
+ type: "string",
+ description: "The content of the note to create",
+ });
+ },
+ (argv) => {
+ console.log(argv.note);
+ },
+ )
+ .option("tags", {
+ alias: "t",
+ type: "string",
+ description: "tags to add to the note",
+ })
+ .command(
+ "all",
+ "get all notes",
+ () => {},
+ async (argv) => {},
+ )
+ .command(
+ "find <filter>",
+ "get matching notes",
+ (yargs) => {
+ return yargs.positional("filter", {
+ describe:
+ "The search term to filter notes by, will be applied to note.content",
+ type: "string",
+ });
+ },
+ async (argv) => {},
+ )
+ .command(
+ "remove <id>",
+ "remove a note by id",
+ (yargs) => {
+ return yargs.positional("id", {
+ type: "number",
+ description: "The id of the note you want to remove",
+ });
+ },
+ async (argv) => {},
+ )
+ .command(
+ "web [port]",
+ "launch website to see notes",
+ (yargs) => {
+ return yargs.positional("port", {
+ describe: "port to bind on",
+ default: 5000,
+ type: "number",
+ });
+ },
+ async (argv) => {},
+ )
+ .command(
+ "clean",
+ "remove all notes",
+ () => {},
+ async (argv) => {},
+ )
+ .demandCommand(1)
+ .parse();