npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@falkor/falkor-commander

v1.3.2

Published

Falkor operations commander

Downloads

17

Readme

Falkor Operations Commander

Npm Keywords   Npm Package   Node Version   Build   Security   Activity   Falkor Bundler   Falkor Library   Snyk Vulnerabilities   License

The falkor-commander project is a standalone npm command-line application written in strict ES6 TypeScript. It is a plugin based task runner / -sequencer using the @falkor/falkor-library to make everyday devops tasks more approachable, friendly, and secure in the terminal for non-technical people.

Installation

Install the package globally, so it's available in your PATH:

$ npm install --global @falkor/falkor-commander

Usage

There is an up-to-date testing repository at falkor-plugin-example to demonstrate framework capabilities, which you can use to test features, or as a boilerplate for your own task sequence.

Command Line Interface

Usage:

falkor-commander [(--scope <scope>) | (--path <path>)] [(--keyword <keyword>)] [(--registry <registry>)] [<tasks>...] [(-- <answers>...)]
falkor-commander [(-s <scope>) | (-p <path>)] [(-k <keyword>)] [(-r <registry>)] [<tasks>...] [(-- <answers>...)]
falkor-commander (-v | --version | -h | --help)

Options:

  • -v or --version: Show version and exit
  • -h or --help: Show help and exit
  • -s <scope> or --scope <scope>: The scope to look for plugins under node_modules (default: @falkor)
  • -p <path> or --path <path>: Explicit directory to look for plugins in (overrides scope setting)
  • -k <keyword> or --keyword <keyword>: The keyword to look for in plugin candidates' package.json (default: @falkor-plugin)
  • -r <registry> or --registry <registry>: Registry to use when searching for plugins at fresh install (default: https://registry.npmjs.org)
  • <tasks>...: Treat all positional arguments as buffered task IDs
  • -- <answers>...: Treat all positional arguments after double dash as buffered input

Task Specific Options:

It is possible to forward command line arguments to individual tasks exposed by plugins. To compose such option, one has to use the task's escaped ID (spaces replaced with dashes, all lowercase) after double dash, so eg. Example Task becomes --example-task.

The value of such an option is similar to command line options, only using # instead of -, so building on the previous example eg.:

--example-task "##debug #V #a10 ##key key-value positional-value ## extra-value"

This will be parsed by minimist after transformation, and passed to the specific task's run method as:

const argv = {
    debug: true,
    V: true,
    a: 10,
    key: "key-value"
    _: ["positional-value"],
    "--": ["extra-value"]
}

If for some reason the # character is reserved in your workflow, it can be substituted with an other special character starting the value with the ":<special-char> " sequence:

--example-task ":$ $$debug $V $a10 $$key key-value positional-value $$ extra-value"

Further Development

The project uses the @falkor/falkor-bundler module to compile sources. To clone the repository and compile falkor-commander one can use the commands:

$ git clone --branch develop [email protected]:theonethread/falkor-commander.git
$ cd falkor-commander
$ npm install
$ npm run [ debug | release ]

SEE: "scripts" entry in package.json for further reference.

NOTE: Compiling the develop sources might need locally linked develop versions of downstream modules:

SEE: npm-link for further reference.

Man Page

By default the falkor-commander project ships with a pre-compiled man page when installed on Unix-like operating systems. The manual was created by converting the file man/man.md.

To recompile the manual, make sure that Pandoc is installed, and present in the PATH, then run:

$ npm run man

Linting

The project uses prettier for code formatting and cspell to avoid general typos in both sources and documentation - it is advised to install these packages as extensions in your IDE to prevent CI errors beforehand. To lint the project run:

$ npm run lint

SEE: .prettierrc and .cspell.json for further reference.

  • To fix formatting issues run $ npx prettier --write <path-to-file>. This will overwrite the file with the default formatting applied locally, so then you can review the changes in git and ensure those did not affect production artifacts.
  • To fix spelling errors run $ npx cspell lint --wordsOnly --unique --gitignore --exclude .git ** .* for details, and either make the fixes in the sources listed, add cspell favored comments, or extend the project-wide .cspell.json accordingly.

Versioning and Branching Strategy

Release sources can be found on the master branch, this one always points to the latest tagged release. Previous sources of releases can be found using git version tags (or browsing GitHub releases). Released packages can be found on npmjs.

The repository's main branch is develop (due to technical reasons), this holds all developments that are already decided to be included in the next release. Usually this branch is ahead of master one patch version (but based on upcoming features to include this can become minor, or major), so prepared external links may yet be broken.

The feature/* branches usually hold ideas and POC code, these will only be merged into develop once their impact measured and quality meets release requirements.

The project uses SemVer, git tags are prefixed with a v character.

GitHub Actions

The workflows can be found here.

Continuous Integration

Automatic builds are achieved via GitHub actions, CI will make nightly builds of the develop branch (using Ubuntu image), and test master when there is a pull request, or commit on it (using Ubuntu - Win - MacOS image matrix).

Security

The project uses CodeQL and Snyk to ensure standard security.

The Falkor Framework supports a healthy and ubiquitous Internet Immune System enabled by security research, reporting, and disclosure. Check out our Vulnerability Disclosure Policy - based on disclose.io's best practices.

Free and Open Source

The latest sources can always be found on GitHub.

Getting Involved

We believe - and we hope you do too - that learning how to code, how to think, and how to contribute to free- and open source software can empower the next generation of coders and creators. We value first time contributors just the same as rock stars of the OSS world, so if you're interested in getting involved, just head over to our Contribution Guidelines for a quick heads-up!

License

MIT

©2020-2022 Barnabas Bucsy - All rights reserved.