{"id":16721272,"url":"https://github.com/khalyomede/fang-starter-plugin","last_synced_at":"2025-08-24T09:19:38.608Z","repository":{"id":44213449,"uuid":"234185295","full_name":"khalyomede/fang-starter-plugin","owner":"khalyomede","description":"Starter project to get started creating a plugin for Fang quickly.","archived":false,"fork":false,"pushed_at":"2023-01-05T05:13:53.000Z","size":1456,"stargazers_count":0,"open_issues_count":14,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-15T03:47:37.733Z","etag":null,"topics":["fang","plugin","starter"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/khalyomede.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-01-15T22:22:41.000Z","updated_at":"2020-01-18T09:58:32.000Z","dependencies_parsed_at":"2023-02-03T12:01:30.240Z","dependency_job_id":null,"html_url":"https://github.com/khalyomede/fang-starter-plugin","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khalyomede%2Ffang-starter-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khalyomede%2Ffang-starter-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khalyomede%2Ffang-starter-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khalyomede%2Ffang-starter-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/khalyomede","download_url":"https://codeload.github.com/khalyomede/fang-starter-plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243727411,"owners_count":20337991,"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":["fang","plugin","starter"],"created_at":"2024-10-12T22:29:37.385Z","updated_at":"2025-03-15T12:23:39.711Z","avatar_url":"https://github.com/khalyomede.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fang-starter-plugin\n\nStarter project to get started creating a plugin for Fang quickly.\n\n## Summary\n\n- [About](#about)\n- [Features](#features)\n- [Installation](#installation)\n- [Examples](#examples)\n\n## About\n\nThis project is meant to be cloned and tweaked as needed. It is built to offer your a good starter, without worrying about installing and configuring dependencies. For most of the usage you will not have to change a lot in the core of this project. However, if this is the case, just do not hesitate to create an issue, I will be glad to try to help as I can.\n\nHappy coding!\n\n## Features\n\n- Support for Typescript, and generates declaration files\n- Lint your files at build time using TSLint\n- Contains a test command that will also run a coverage test\n- Contains a mutation command (in case you are interested)\n- Configured with `peerDependencies` on `\"@fang/core\": \"0.*\"`\n- Configured to contain the required `keywords` in the `package.json` to get your plugin displayed in the website documentation (website coming soon)\n- Contains a build command to produce an ES5, transpiled, ready to use version of your plugin (which contains your Typescript declaration files)\n- Contains a command to publish patch, features and breaking changes using `np`\n\n## Installation\n\nHere is a todolist of what you need to do to well appropriate yourself this repository.\n\n1. Clone the project: `git clone https://github.com/khalyomede/fang-starter-plugin YOUR-PLUGIN-NAME`\n2. Go to your repository, and remove the `.git repository`: `cd YOUR-PLUGIN-NAME \u0026\u0026 rm -rf .git`\n3. Initialize git: `git init`\n4. Install the dependencies\n   - Using NPM: `npm install`\n   - Using Yarn: `yarn install`\n5. Add the origin of your repository: `git remote add origin https://github.com/USERNAME/YOUR-PLUGIN-NAME.git`\n6. Change the following key values in the `package.json`\n   - name\n   - description\n   - repository\n   - author\n7. Add some keywords in the key `keywords` of the `package.json` (but **keep** the keyword `fang-plugin`)\n8. Change the description of your `README.md`\n9. Add a `LICENSE` file\n10. In the `CHANGELOG.md` file, remove everything below the `Unreleased` title\n11. Profit\n\n## Examples\n\n- [1. Transpile and build files](1-transpile-and-build-files)\n- [2. Add some test, and run them](2-add-some-test-and-run-them)\n- [3. Run the mutation tests](3-run-the-mutation-tests)\n- [4. Publish changes](4-publish-changes)\n\n### 1. Transpile and build files\n\nRun this command in your command line.\n\n```bash\nnpm run build\n```\n\n### 2. Add some test, and run them\n\nAll the tests are located in the `test` folder. You can organize your tests in subfolders. Check the existing file for an example.\n\nAll the tests use `mocha` and `chai`.\n\nOnce you are happy with your tests, you can check if they pass using this command.\n\n```bash\nnpm run test\n```\n\n### 3. Run the mutation tests\n\nIf you are comfortable with the concept of mutations in your tests, or you are curious to see if your tests are not producing mutations, you can run this command to check your mutation score.\n\n```bash\nnpm run mutate\n```\n\n### 4. Publish changes\n\nYou first need to have published your project before trying to use this command. If you did not published your project yet, use this command.\n\n```bash\nnpm publish\n```\n\nThis will push your repository in the NPM package registry so others people will be able to require your package in their project.\n\nDo not forget to create a `v0.1.0` tag and publishing it to your repository so people can easily browse your package history by tag.\n\nOnce you have published your project, and you add some changes you want to publish, use this command.\n\n```bash\nnpm run release\n```\n\nThis will prompt you what kind of change you want to apply, and will handle all the rest, which is:\n\n- testing a last time your project\n- checking if you have remaining changes to push or not\n- creating the tag (according to your choice) in your github repository, as well as publishing this tag\n- publishing the new version on NPM\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhalyomede%2Ffang-starter-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkhalyomede%2Ffang-starter-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhalyomede%2Ffang-starter-plugin/lists"}