{"id":21423495,"url":"https://github.com/theonethread/falkor-plugin-example","last_synced_at":"2025-06-29T06:06:53.946Z","repository":{"id":41294589,"uuid":"415330456","full_name":"theonethread/falkor-plugin-example","owner":"theonethread","description":"Example Falkor Commander plugin demonstrating framework capabilities","archived":false,"fork":false,"pushed_at":"2023-06-21T15:40:16.000Z","size":259,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-03-16T20:27:18.044Z","etag":null,"topics":["example","falkor","plugin","task"],"latest_commit_sha":null,"homepage":"https://falkor.world","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theonethread.png","metadata":{"funding":{"ko_fi":"falkor_framework","custom":"https://www.linkedin.com/in/barnabas-bucsy"},"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-09T14:22:27.000Z","updated_at":"2022-11-05T14:23:14.000Z","dependencies_parsed_at":"2024-11-22T22:03:06.222Z","dependency_job_id":null,"html_url":"https://github.com/theonethread/falkor-plugin-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/theonethread/falkor-plugin-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theonethread%2Ffalkor-plugin-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theonethread%2Ffalkor-plugin-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theonethread%2Ffalkor-plugin-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theonethread%2Ffalkor-plugin-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theonethread","download_url":"https://codeload.github.com/theonethread/falkor-plugin-example/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theonethread%2Ffalkor-plugin-example/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262545033,"owners_count":23326660,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["example","falkor","plugin","task"],"created_at":"2024-11-22T21:16:33.827Z","updated_at":"2025-06-29T06:06:53.929Z","avatar_url":"https://github.com/theonethread.png","language":"TypeScript","readme":"# **Falkor Plugin Example**\n\nExample [`@falkor/falkor-commander`](https://www.npmjs.com/package/@falkor/falkor-commander \"Visit\") plugin to demonstrate framework capabilities, and to serve as boilerplate for personal projects.\n\n## **Usage**\n\nClone the repository's **master** branch and compile `falkor-plugin-example`:\n\n```\n$ git clone --branch master git@github.com:theonethread/falkor-plugin-example.git\n$ cd falkor-plugin-example\n$ npm install\n$ npm run [ debug | release ]\n```\n\n\u003e _**NOTE:** The `master` branch holds compatible version with already released packages, while the `develop` branch holds a version currently developed along with latest unreleased sources of packages._\n\nThe [`@falkor/falkor-commander`](https://www.npmjs.com/package/@falkor/falkor-commander \"Visit\") module is an optional dependency of plugins, it is not necessary to install it during development, but as a development feature one can test their work-in-progress projects running it from the root of a directory that is a `@falkor-plugin` under development:\n\n```\n$ npm install --no-save \"@falkor/falkor-commander\"\n$ npm start\n```\n\n\u003e _**NOTE:** Since `npm` v7 optional dependencies will also be installed when running `npm install`._\n\n\u003e _**NOTE:** To pass arguments to a local installation of `falkor-commander` one has to use the double dash POSIX separator twice (since first occurrence will be consumed by `npm` itself while parsing arguments) to pass extra positional arguments to be treated as buffered answers:_\n\n```\n$ npm start -- \u003coptions\u003e... \u003cbuffered-tasks\u003e... -- \u003cbuffered-answers\u003e...\n```\n\n### **Configuration**\n\nThe [`@falkor/falkor-library`](https://www.npmjs.com/package/@falkor/falkor-library \"Visit\") looks for shared configurations in the Current Working Directory from where `falkor-commander` was executed (files could be named `.falkorrc`, `.ops.json`, `.ops.jsonc`, `falkor.json`, or `falkor.jsonc` - whichever is found first).\n\nTo see all available settings, and example plugin customizations check out the big [`.ops.jsonc`](https://github.com/theonethread/falkor-plugin-example/blob/develop/.ops.jsonc \"Open\") file provided as an example.\n\n## **Demonstration**\n\nHave a look at our first [video](https://www.youtube.com/watch?v=Spny53X3I7M \"Visit\") demonstrating the above workflow:\n\n[![Demonstration Video](https://img.youtube.com/vi/Spny53X3I7M/mqdefault.jpg)](https://www.youtube.com/watch?v=Spny53X3I7M \"Visit\")\n\n## **Plugin Requirements**\n\n- Plugins should comply to [`@falkor/falkor-bundler`](https://www.npmjs.com/package/@falkor/falkor-bundler \"Visit\") requirements.\n- Valid plugins' default exports should be one single -, or an array of `falkor.Task` instance(s).\n- Currently `falkor-commander` searches for plugins under the `@falkor` scope by default (with module resolution similar to Node.js').\n  - This can be customized running `falkor-commander` with the `-s` or `--scope` argument.\n- Valid plugins' `package.json` must contain the keyword `@falkor-plugin` by default.\n  - This can be customized running `falkor-commander` with the `-k` or `--keyword` argument.\n\n\u003e _**SEE:** [`package.json`](https://github.com/theonethread/falkor-plugin-example/blob/develop/package.json \"Open\") and [`index.ts`](https://github.com/theonethread/falkor-plugin-example/blob/develop/src/index.ts \"Open\") for further reference._\n\n## **Further Development**\n\nThe project uses the [`@falkor/falkor-bundler`](https://www.npmjs.com/package/@falkor/falkor-bundler \"Visit\") module to compile sources. To clone the repository and compile `falkor-plugin-example` one can use the commands:\n\n```\n$ git clone --branch develop git@github.com:theonethread/falkor-plugin-example.git\n$ cd falkor-plugin-example\n$ npm install\n$ npm run [ debug | release ]\n```\n\n\u003e _**SEE:** `\"scripts\"` entry in [`package.json`](https://github.com/theonethread/falkor-plugin-example/blob/master/package.json \"Open\") for further reference._\n\n\u003e _**NOTE:** Compiling the `develop` sources might need locally linked `develop` versions of downstream modules:_\n\u003e\n\u003e - _[`@falkor/falkor-commander`](https://github.com/theonethread/falkor-commander/tree/develop \"Visit\")_\n\u003e - _[`@falkor/falkor-library`](https://github.com/theonethread/falkor-library/tree/develop \"Visit\")_\n\u003e - _[`@falkor/falkor-bundler`](https://github.com/theonethread/falkor-bundler/tree/develop \"Visit\")_\n\u003e\n\u003e _**SEE:** [`npm-link`](https://docs.npmjs.com/cli/v7/commands/npm-link \"Visit\") for further reference._\n\n### **Linting**\n\nThe project uses [`prettier`](https://www.npmjs.com/package/prettier \"Visit\") for code formatting and [`cspell`](https://www.npmjs.com/package/cspell \"Visit\") 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:\n\n```\n$ npm run lint\n```\n\n\u003e _**SEE:** [`.prettierrc.cjs`](https://github.com/theonethread/falkor-plugin-example/blob/develop/.prettierrc.cjs \"Open\") and [`cspell.config.cjs`](https://github.com/theonethread/falkor-plugin-example/blob/develop/cspell.config.cjs \"Open\") for further reference._\n\n- To fix formatting issues run `$ npx prettier --write \u003cpath-to-file\u003e`. 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**.\n- 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.config.cjs` accordingly.\n\n### **Versioning and Branching Strategy**\n\nRelease 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](https://www.npmjs.com/package/@falkor/falkor-plugin-example \"Visit\").\n\nThe 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.\n\nThe `feature/*` branches usually hold ideas and POC code, these will only be merged into `develop` once their impact measured and quality meets release requirements.\n\n\u003e _The project uses [SemVer](https://semver.org \"Visit\"), `git` tags are prefixed with a `v` character._\n\n### **GitHub Actions**\n\nThe workflow can be found [here](https://github.com/theonethread/falkor-plugin-example/blob/develop/.github/workflows \"Open\").\n\n#### **Continuous Integration**\n\nAutomatic builds are achieved via GitHub actions, CI will make nightly builds of the `develop` branch (using Ubuntu image).\n\n### **Security**\n\nThe project uses [CodeQL](https://codeql.github.com \"Visit\") and [Snyk](https://snyk.io \"Visit\") to ensure standard security.\n\n\u003e _The **Falkor Framework** supports a healthy and ubiquitous Internet Immune System enabled by security research, reporting, and disclosure. Check out our [Vulnerability Disclosure Policy](https://github.com/theonethread/falkor-plugin-example/security/policy \"Open\") - based on [disclose.io](https://disclose.io \"Visit\")'s best practices._\n\n### **Free and Open Source**\n\nThe latest sources can always be found on [GitHub](https://github.com/theonethread/falkor-plugin-example \"Visit\").\n\n#### **Getting Involved**\n\nWe 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](https://github.com/theonethread/.github/blob/master/.github/contributing.md \"Open\") for a quick heads-up!\n\n#### **License**\n\n[MIT](https://github.com/theonethread/falkor-plugin-example/blob/master/license.txt \"Open\")\n\n##\n\n---\n\n_©2020-2023 Barnabas Bucsy - All rights reserved._\n","funding_links":["https://ko-fi.com/falkor_framework","https://www.linkedin.com/in/barnabas-bucsy"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheonethread%2Ffalkor-plugin-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheonethread%2Ffalkor-plugin-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheonethread%2Ffalkor-plugin-example/lists"}