{"id":16015009,"url":"https://github.com/louismazel/poc-cli","last_synced_at":"2026-02-06T02:01:31.097Z","repository":{"id":227690916,"uuid":"772155958","full_name":"LouisMazel/poc-cli","owner":"LouisMazel","description":"Testing","archived":false,"fork":false,"pushed_at":"2024-06-11T06:04:05.000Z","size":718,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-02T08:28:38.063Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/LouisMazel.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-14T16:33:38.000Z","updated_at":"2024-03-14T18:33:11.000Z","dependencies_parsed_at":"2024-03-14T18:19:29.451Z","dependency_job_id":"fce8f6b4-3438-42ae-a5e8-3158d263fd5e","html_url":"https://github.com/LouisMazel/poc-cli","commit_stats":{"total_commits":24,"total_committers":1,"mean_commits":24.0,"dds":0.0,"last_synced_commit":"104e9a5e06df5c39827ba69397d53baa1d43a5cf"},"previous_names":["louismazel/poc-cli"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/LouisMazel/poc-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LouisMazel%2Fpoc-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LouisMazel%2Fpoc-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LouisMazel%2Fpoc-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LouisMazel%2Fpoc-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LouisMazel","download_url":"https://codeload.github.com/LouisMazel/poc-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LouisMazel%2Fpoc-cli/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265313070,"owners_count":23745185,"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":[],"created_at":"2024-10-08T15:05:52.404Z","updated_at":"2026-02-06T02:01:26.072Z","avatar_url":"https://github.com/LouisMazel.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003eADEO-CLI\u003c/h1\u003e\n\n\u003ch2\u003eTable of Contents\u003c/h2\u003e\n\n- [Pre-requisites](#pre-requisites)\n- [Installation](#installation)\n- [Usage](#usage)\n  - [Run the built CLI](#run-the-built-cli)\n  - [Run CLI with Typescript (development)](#run-cli-with-typescript-development)\n- [Commands](#commands)\n  - [Filtering database by animal name pattern](#filtering-database-by-animal-name-pattern)\n  - [Count](#count)\n- [Development](#development)\n  - [Run the CLI](#run-the-cli)\n  - [Build](#build)\n  - [Lint and format code](#lint-and-format-code)\n  - [Test](#test)\n- [Release new version](#release-new-version)\n- [Code and commit quality](#code-and-commit-quality)\n  - [Dependencies](#dependencies)\n  - [Hooks](#hooks)\n  - [Tools](#tools)\n- [Continuous Integration](#continuous-integration)\n\n## Pre-requisites\n\n- Node.js 21.0.0 or higher\n- PNPM 8.0.0 or higher\n\n## Installation\n\nInstall the dependencies, run:\n\n```bash\npnpm install\n```\n\n## Usage\n\n### Run the built CLI\n\n```bash\npnpm start [--filter=ry] [--count]\n# or node dist/cli.mjs [--filter=ry] [--count]\n```\n\n### Run CLI with Typescript (development)\n\n```bash\npnpm dev [--filter=ry] [--count]\n```\n\n## Commands\n\n### Filtering database by animal name pattern\n\nUse the flag `--filter={pattern}` to filter the database by animal names that match the pattern.\n\n```bash\n# command:\n\nnode dist/cli.mjs --filter=ry\n\n# output:\n\nResults:\n\n[\n  {\n    name: 'Uzuzozne',\n    people: [\n      {\n        name: 'Lillie Abbott',\n        animals: [\n          {\n            name: 'John Dory'\n          }\n        ]\n      }\n    ]\n  },\n  {\n    name: 'Satanwi',\n    people: [\n      {\n        name: 'Anthony Bruno',\n        animals: [\n          {\n            name: 'Oryx'\n          }\n        ]\n      }\n    ]\n  }\n]\n```\n\n### Count\n\nUse the flag `--count` to count the number in each country and the number of animals each person has.\n\n```bash\n# command:\n\nnode dist/cli.mjs --count\n\n# output:\n\nResults:\n\n[ { name: 'Dillauti [5]',\n    people:\n     [ { name: 'Winifred Graham [6]',\n         animals:\n          [ { name: 'Anoa' },\n            { name: 'Duck' },\n            { name: 'Narwhal' },\n            { name: 'Badger' },\n            { name: 'Cobra' },\n            { name: 'Crow' } ] },\n       { name: 'Blanche Viciani [8]',\n         animals:\n          [ { name: 'Barbet' },\n            { name: 'Rhea' },\n            { name: 'Snakes' },\n            { name: 'Antelope' },\n            { name: 'Echidna' },\n            { name: 'Crow' },\n            { name: 'Guinea Fowl' },\n            { name: 'Deer Mouse' } ] },\n      ...\n...\n]\n```\n\n## Development\n\n### Run the CLI\n\nTo run the CLI with Typescript, run:\n\n```bash\npnpm dev [--filter=ry] [--count]\n```\n\n### Build\n\n\u003e Unbuild is used to build the project.\n\nTo build the project, run:\n\n```bash\npnpm build\n```\n\n### Lint and format code\n\n\u003e ESLint is used to lint the code.\n\nTo lint the code, run:\n\n```bash\npnpm lint\n```\n\nTo format the code with prettier, run:\n\n```bash\npnpm format\n```\n\n### Test\n\n\u003e Vitest is used to run the tests.\n\nTo run the tests, run:\n\n```bash\npnpm test\n```\n\nTo run the tests with coverage, run:\n\n```bash\npnpm test:coverage\n```\n\nThen, open the file `coverage/index.html` in your browser.\n\n## Release new version\n\n\u003e Use lerna and changelogen\n\nTo release a new version, run:\n\n```bash\npnpm release\n```\n\nThis command will:\n\n- Bump the version in the `package.json` file according to the conventional commits and the semver rules\n- Create a new tag in the repository\n- Push the new tag to the repository\n- Generate a new release in the CHANGELONG.md file\n- Publish this release in the repository\n\n## Code and commit quality\n\n### Dependencies\n\n- The dependabot is used to keep the dependencies up to date (open pull requests to update the dependencies).\n\n### Hooks\n\n\u003e Handle with Husky\n\nOn each commit, the following hooks are executed:\n\n- Run typescript to check for errors\n- Format the code\n- Lint the code\n- Lint the commit message format with commitlint\n\n### Tools\n\n- Prettier is used to format the code.\n- ESLint is used to lint the code.\n- Commitlint and husky are used to enforce the commit message format.\n\n## Continuous Integration\n\n\u003e Use Github Actions\n\nOn each pull request to the \"main\" branch, the following actions are executed and should pass to be merged:\n\n- Run the tests\n- Lint the code\n- Build the app to check for errors\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flouismazel%2Fpoc-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flouismazel%2Fpoc-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flouismazel%2Fpoc-cli/lists"}