{"id":18800503,"url":"https://github.com/lingui/codemods","last_synced_at":"2025-10-27T09:40:02.266Z","repository":{"id":38174027,"uuid":"147220124","full_name":"lingui/codemods","owner":"lingui","description":"Collection of codemods for LinguiJS","archived":false,"fork":false,"pushed_at":"2024-11-19T15:57:24.000Z","size":599,"stargazers_count":2,"open_issues_count":1,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-12T04:01:45.581Z","etag":null,"topics":["codemods","jscodeshift","lingui"],"latest_commit_sha":null,"homepage":"","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/lingui.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-03T15:01:46.000Z","updated_at":"2024-11-19T15:57:35.000Z","dependencies_parsed_at":"2023-02-06T06:01:58.474Z","dependency_job_id":null,"html_url":"https://github.com/lingui/codemods","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/lingui%2Fcodemods","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lingui%2Fcodemods/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lingui%2Fcodemods/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lingui%2Fcodemods/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lingui","download_url":"https://codeload.github.com/lingui/codemods/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248625524,"owners_count":21135515,"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":["codemods","jscodeshift","lingui"],"created_at":"2024-11-07T22:18:52.913Z","updated_at":"2025-10-27T09:39:57.221Z","avatar_url":"https://github.com/lingui.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003ch1\u003eLingui\u003csub\u003ejs\u003c/sub\u003e Codemods\u003c/h1\u003e\n\u003cimg src=\"https://github.com/lingui/codemods/workflows/Main%20CI/badge.svg\" /\u003e\n\u003ca href=\"https://www.npmjs.com/package/@lingui/codemods/v/latest\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@lingui/codemods/latest.svg\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/semantic-release/semantic-release\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\" /\u003e\n\u003c/a\u003e\n\nThis repository contains a collection of codemod scripts for use with [JSCodeshift](https://github.com/facebook/jscodeshift) that help update Lingui APIs.\n\n\u003chr /\u003e\n\n\u003c/div\u003e\n\n### Usage\n\n`npx @lingui/codemods \u003ctransform\u003e \u003cpath\u003e [...options]`\n\n- `transform` - name of transform, see available transforms below.\n- `path` - files or directory to transform\n- use the `--dry` option for a dry-run\n- use `--print` to print the output for comparison\n- use `--remove-unused-imports` to remove unused imports once finished the codemod\n\nThis will start an interactive wizard, and then run the specified transform.\n\n### Included Transforms\n\n#### `v2-to-v3`\n\nConverts some outdated standards from `lingui` version 2.x.x to new features and best practices introduced in `lingui` version 3.x.x\n\n```sh\nnpx @lingui/codemods v2-to-v3 \u003cpath\u003e\n```\n\n#### `split-macro-imports`\n\nConverts `@lingui/macro` imports to `@lingui/core/macro` and `@lingui/react/macro`.\n\n```sh\nnpx @lingui/codemods split-macro-imports \u003cpath\u003e\n```\n\nVisit the [Migration guide from 4.x to 5.x](https://lingui.dev/introduction) for more information.\n\n### jscodeshift options\n\nTo pass more options directly to jscodeshift, use `--jscodeshift=\"...\"`. For example:\n\n```sh\nnpx @lingui/codemods --jscodeshift=\"--run-in-band --verbose=2\"\n```\n\nSee all available options [here](https://github.com/facebook/jscodeshift#usage-cli).\n\n### Recast Options\n\nOptions to [recast](https://github.com/benjamn/recast)'s printer can be provided\nthrough jscodeshift's `printOptions` command line argument\n\n```sh\nnpx @lingui/codemods \u003ctransform\u003e \u003cpath\u003e --jscodeshift=\"--printOptions='{\\\"quote\\\":\\\"double\\\"}'\"\n```\n\n### Usage without params\n\nA CLI is built-in to help you migrate your codebase, will ask you some questions:\n\n```sh\n➜  project git:(master) npx @lingui/codemods\n? On which files or directory should the codemods be applied? for ex: ./src\n? Which dialect of JavaScript do you use? for ex: JavaScript | Typescript | JavaScript with Flow\n? Which transform would you like to apply? for ex: `v2-to-v3`\n```\n\n### License\n\n@lingui/codemods is [MIT licensed](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flingui%2Fcodemods","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flingui%2Fcodemods","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flingui%2Fcodemods/lists"}