Coder Social home page Coder Social logo

chenasraf / massarg Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 0.0 2.63 MB

Command and argument parser on steroids - JS/TS

Home Page: https://npmjs.com/package/massarg

License: MIT License

TypeScript 74.17% JavaScript 25.83%
typescript command-line cli shell javascript parser args

massarg's Introduction

Hi ๐Ÿ‘‹, I'm Chen Asraf ๐Ÿ‡ฎ๐Ÿ‡ฑ

I make fully fledged, production-ready systems for start-ups and businesses. Also apps & others as hobbies :)

Contact me for availability at [email protected]


I do my best to create useful programs, apps, and tools; and support open source. If you are feeling incredibly generous and want to help sustain my projects, please consider donating :) I will really appreciate it!

Buy Me a Coffee at ko-fi.com

A little about me

  • ๐Ÿ’ป In my personal time, I'm working on Dungeon Paper, a free Android/iOS app for Dungeon World players and DMs
  • ๐Ÿฅ‹ Check out my repositories for some more of my open source projects
  • ๐Ÿ’ญ My dream is to make my own game development studio, and make a successful and fun game - my passion project ๐ŸŽฎ
  • ๐Ÿ’ช๐Ÿผ Iโ€™m proficient in TypeScript, React, Flutter/Dart, and I love trying out new technologies and languages.
  • ๐Ÿ‘Œ๐Ÿผ I'm also familiar with Python, Vue, and fiddle with Ruby, Node.js, and many others
  • ๐Ÿ‘ฏ Iโ€™m looking to collaborate on cool open source projects :)

Projects

Because you can only have 6 pins.

NPM
  • Simple Scaffold - Generate any file structure - from single components to entire app boilerplates, with a single command.
  • Massarg - Flexible, powerful, and simple command/argument parser for CLI applications
Dart/Flutter
Apps
  • Dungeon Paper - A Dungeon World character sheet app written with Flutter
  • Mudblock - An MUD client for mobile & desktop
Packages
  • Script Runner - Run all your project-related scripts in a portable, simple config.
  • Unaconfig - Load your user's config files for your package easily, from multiple sources & formats. Like cosmiconfig, but for Dart!
  • CTelnet - A simple Telnet client for Dart/Flutter, parse incoming and outgoing data easily and quickly.
  • btool - Generic build helper tools for Flutter/Dart such as manipulating version, package name or application ID
  • Wheel Spinner - A simple Flutter widget for updating a number using a pitch bender-like spinner
Neovim
  • text-transform.nvim - Common text transformers for nvim - switch between camelCase, PascalCase, snake_case, and more!

Rust

  • tblf - Turns any CLI output lines into tables.
Go
  • GI Gen - Gitignore generator for any type of project

GitHub Stats

chenasraf ย ย ย  chenasraf

Find me elsewhere:

chenasraf casrafy chenasraf 280143 chenasraf casraf

I mostly use:

typescript javascript react html5 css3 firebase flutter git figma jest jekyll postman linux

I sometimes use:

vuejs vuetify mongodb docker postgresql mysql redis unreal unity blender nextjs

massarg's People

Contributors

chenasraf avatar dependabot[bot] avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

massarg's Issues

Slice argv

process.argv is usually sliced from 2, we already allow to override it

Better `required` error message

Current:

{option} is required, but was not defined for {command}

Desired:

Option: `{option}` is required, but was not defined for command: `{command}`. Try using`--{option} {value}`

Before version 1.0

  • Tests
  • Take nameless args (multi/one)
  • Add "required" option (should work properly with commands option, so will only be required if using the same command
  • Add "array" option for multiples
  • Add default value to help text (with option to disable)
  • automation
  • Add example lines

v2.0

This is a master issue for tracking the 2.0 rewrite.

I plan to completely refactor everything and many interfaces will break. This is a significant update.

However, it comes to address several issues:

  • Default option parsing is inconsistent
  • Flags and arrays validation problems
  • Overcomplicated code base with many patches to include new unplanned functionality
  • It's not easy to code split & define groups or subcommands

The main tasks are listed below:

  • Refactor main interfaces
    • Creation
    • Main
    • Subcommands
    • Options
    • Flags
    • Help
    • Example lines
    • Help
  • Allow composition of commands & options in a hierarchy
  • Remove bool options, introduce flags with negation instead
  • Improve type inference and safety
  • Easier & better assertions
  • More control over help display & formatting
  • Re-write tests and make sure to cover many cases

Bug fixes:

  • Type mismatches for child args - need better inference

The automated release is failing ๐Ÿšจ

๐Ÿšจ The automated release from the pre branch failed. ๐Ÿšจ

I recommend you give this issue a high priority, so other packages depending on you can benefit from your bug fixes and new features again.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. Iโ€™m sure you can fix this ๐Ÿ’ช.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the pre branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here are some links that can help you:

If those donโ€™t help, or if this issue is reporting something you think isnโ€™t right, you can always ask the humans behind semantic-release.


Missing package.json file.

A package.json file at the root of your project is required to release on npm.

Please follow the npm guideline to create a valid package.json file.


Good luck with your project โœจ

Your semantic-release bot ๐Ÿ“ฆ๐Ÿš€

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.