{"id":22131963,"url":"https://github.com/seaofvoices/npmwally","last_synced_at":"2026-01-15T22:14:56.700Z","repository":{"id":257804942,"uuid":"865113665","full_name":"seaofvoices/npmwally","owner":"seaofvoices","description":"A command line utility to convert Luau npm packages to wally packages","archived":false,"fork":false,"pushed_at":"2024-10-02T15:10:39.000Z","size":32,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-29T16:44:17.367Z","etag":null,"topics":["luau","package-manager","roblox","tool"],"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/seaofvoices.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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},"funding":{"github":["jeparlefrancais"],"ko_fi":"seaofvoices"}},"created_at":"2024-09-30T01:59:39.000Z","updated_at":"2025-07-09T20:53:59.000Z","dependencies_parsed_at":"2024-12-01T18:38:42.567Z","dependency_job_id":null,"html_url":"https://github.com/seaofvoices/npmwally","commit_stats":null,"previous_names":["seaofvoices/npmwally"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/seaofvoices/npmwally","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seaofvoices%2Fnpmwally","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seaofvoices%2Fnpmwally/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seaofvoices%2Fnpmwally/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seaofvoices%2Fnpmwally/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seaofvoices","download_url":"https://codeload.github.com/seaofvoices/npmwally/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seaofvoices%2Fnpmwally/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28472624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T22:13:38.078Z","status":"ssl_error","status_checked_at":"2026-01-15T22:12:11.737Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["luau","package-manager","roblox","tool"],"created_at":"2024-12-01T18:38:40.213Z","updated_at":"2026-01-15T22:14:56.694Z","avatar_url":"https://github.com/seaofvoices.png","language":"JavaScript","funding_links":["https://github.com/sponsors/jeparlefrancais","https://ko-fi.com/seaofvoices"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n[![checks](https://github.com/seaofvoices/npmwally/actions/workflows/test.yml/badge.svg)](https://github.com/seaofvoices/npmwally/actions/workflows/test.yml)\n![version](https://img.shields.io/github/package-json/v/seaofvoices/npmwally)\n[![GitHub top language](https://img.shields.io/github/languages/top/seaofvoices/npmwally)](https://github.com/luau-lang/luau)\n![license](https://img.shields.io/npm/l/npmwally)\n![npm](https://img.shields.io/npm/dt/npmwally)\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/seaofvoices)\n\n\u003c/div\u003e\n\n# npmwally\n\n**npmwally** is a command-line tool that automates the conversion of a Lua/Luau npm package into a [Wally](https://github.com/UpliftGames/wally) package.\n\n## Features\n\n- **Package Detection:** Scans the `package.json` and identifies Lua/Luau dependencies.\n- **Dependency Translation:** Maps npm package names to their wally equivalents.\n- **Module Requires Conversion:** Runs darklua to convert the string/path requires into Roblox requires.\n- **Generate a Wally Package:** Generate a `wally.toml` and a `default.project.json`. Remove files as specified in the `.npmignore` configuration file.\n\n## Requirements\n\nWhen converting packages, **npmwally** will run [Rojo](https://github.com/rojo-rbx/rojo) and [darklua](https://github.com/seaofvoices/darklua). Make sure to have those installed.\n\n## Usage\n\nYou can install `npmwally` with npm or yarn:\n\n```bash\nnpm install npmwally --save-dev\n\nyarn add npmwally -D\n```\n\n### Convert a Package\n\nTo convert an npm package to a Wally package, use the `convert` command:\n\n```bash\nnpmwally convert --output \u003coutput-directory\u003e\n```\n\nFor more information about the available options, use the `--help` argument:\n\n```bash\nnpmwally convert --help\n```\n\n#### Example\n\n```bash\nnpmwally convert --use-find-first-child\n```\n\nThis command will:\n\n- convert the Lua/Luau code the current working directory to a Wally package in './wally`.\n- convert requires using `FindFirstChild` indexing.\n\n### Options\n\n- `--project \u003cproject\u003e`: The folder where the `package.json` file exists (default is the current directory).\n- `--output \u003coutput\u003e`: The folder where the Wally package will be generated (default is `wally`).\n- `--modules-folder \u003cmodule-folder\u003e`: The folder where npm packages are installed (default is `node_modules`).\n- `--translate-package \u003ctranslate-package\u003e`: A package name to translate from npm to Wally format (`npm-package=wally-package`).\n- `--copy \u003ccopy\u003e`: Additional files or directories to copy into the Wally package.\n- `--darklua-config \u003cdarklua-config\u003e`: Path to a custom Darklua configuration file.\n- `--use-find-first-child`: Use `FindFirstChild` instead of direct indexing in generated requires.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE.txt) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseaofvoices%2Fnpmwally","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseaofvoices%2Fnpmwally","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseaofvoices%2Fnpmwally/lists"}