{"id":25356471,"url":"https://github.com/therakeshpurohit/jsxtsxscanner","last_synced_at":"2026-04-30T11:31:50.020Z","repository":{"id":57286639,"uuid":"325708721","full_name":"TheRakeshPurohit/jsxtsxscanner","owner":"TheRakeshPurohit","description":"Scans your JS, JSx, TS, TSx files for duplication of code and helps you write non repetitive code","archived":false,"fork":false,"pushed_at":"2023-11-26T07:25:28.000Z","size":29,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T11:18:26.974Z","etag":null,"topics":["code","duplicate","javascript","js","jsx","npm","scanner","ts","tsx","typescript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/TheRakeshPurohit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":["therakeshpurohit"]}},"created_at":"2020-12-31T03:55:19.000Z","updated_at":"2023-11-26T07:25:32.000Z","dependencies_parsed_at":"2024-10-30T01:32:17.697Z","dependency_job_id":null,"html_url":"https://github.com/TheRakeshPurohit/jsxtsxscanner","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheRakeshPurohit%2Fjsxtsxscanner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheRakeshPurohit%2Fjsxtsxscanner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheRakeshPurohit%2Fjsxtsxscanner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheRakeshPurohit%2Fjsxtsxscanner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheRakeshPurohit","download_url":"https://codeload.github.com/TheRakeshPurohit/jsxtsxscanner/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247963802,"owners_count":21025086,"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":["code","duplicate","javascript","js","jsx","npm","scanner","ts","tsx","typescript"],"created_at":"2025-02-14T20:47:10.365Z","updated_at":"2025-10-14T04:09:03.417Z","avatar_url":"https://github.com/TheRakeshPurohit.png","language":"JavaScript","funding_links":["https://github.com/sponsors/therakeshpurohit"],"categories":[],"sub_categories":[],"readme":"# JSxTSxScanner\n\nScans similar block of code in your JS, JSX, TS \u0026 TSX files. Requires Node.js\n6.0+. It supports ES6 \u0026 JSX\n\n[![Build Status](https://travis-ci.org/TheRakeshPurohit/jsxtsxscanner.svg?branch=main)](https://travis-ci.org/TheRakeshPurohit/jsxtsxscanner)\n\n* [Overview](#overview)\n* [Installation](#installation)\n* [Usage](#usage)\n\n## Overview\n\nWhile Working on a project, we might have done copy pasting the code or may be unknowingly repeating the same structural code in our project. Here\n\nIt might be a block of code or may be single lines of codes being repeated cross the files.\n\nThis package is inspired by true post-production bug. It leads us to the unique, well structured code with nonrepetitive LOC or blocks.\n\nHere we have used ASTs. AST stands for Abstract Syntax Tree. Each compiler or parser generates your source code into ASTs before , e.g. BlockStatement, VariableDeclaration,\nObjectExpression, etc. By default, it searches nodes with matching identifiers\nand literals for copy-paste code of block.\n\nThe tool accepts a list of paths to parse and prints any found matches. Any\ndirectories among the paths are walked recursively, and only `.js`, `.jsx`, `.ts` , `.tsx`\nfiles are analyzed. Any `node_modules` folders are also\nignored.\n\n## Installation\n\nIt can be installed via `npm` using:\n\n``` bash\nnpm install -g jsxtsxscanner\n```\n\n## Usage\n\n``` bash\njsxtsxscanner \u003cpaths ...\u003e\n```\n\nScans similar block of code in your JS, JSX, TS \u0026 TSX files\nExample use: jsxtsxscanner ./path/to/src\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftherakeshpurohit%2Fjsxtsxscanner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftherakeshpurohit%2Fjsxtsxscanner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftherakeshpurohit%2Fjsxtsxscanner/lists"}