{"id":19336929,"url":"https://github.com/aweiu/wow-shell","last_synced_at":"2026-05-17T10:31:12.266Z","repository":{"id":57399433,"uuid":"457465983","full_name":"aweiu/wow-shell","owner":"aweiu","description":"shell command, it will be resolved when something is hit, and support the output of colored logs","archived":false,"fork":false,"pushed_at":"2022-02-10T07:21:34.000Z","size":109,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-06T22:48:01.785Z","etag":null,"topics":["exec","monorepo","promise","pshell","shell","spawn"],"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/aweiu.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2022-02-09T17:44:09.000Z","updated_at":"2022-03-19T00:55:31.000Z","dependencies_parsed_at":"2022-09-06T01:20:24.398Z","dependency_job_id":null,"html_url":"https://github.com/aweiu/wow-shell","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aweiu%2Fwow-shell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aweiu%2Fwow-shell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aweiu%2Fwow-shell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aweiu%2Fwow-shell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aweiu","download_url":"https://codeload.github.com/aweiu/wow-shell/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240441955,"owners_count":19801793,"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":["exec","monorepo","promise","pshell","shell","spawn"],"created_at":"2024-11-10T03:12:56.843Z","updated_at":"2026-05-17T10:31:07.199Z","avatar_url":"https://github.com/aweiu.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## wow-shell\n\nShell command, it will be resolved when something is hit, and support the output of colored logs.\n\nIt is very suitable for writing your monorepo development service!\n\n### Install\n\n```\nnpm install wow-shell\n```\n\n### Example1\n\n```javascript\nimport shell from \"wow-shell\";\n\n// when stdout data includes 「Listening on port」, the shell promise will be resolved\nshell(\"node ./packages/server/src/index.js\", {\n  resolveKeyWords: \"Listening on port\",\n}).then((matchedMsg) =\u003e {\n  console.log(\"matchedMsg:\", matchedMsg);\n\n  // run vite after the server runs successfully\n  shell(\"vite ./packages/webapp\");\n});\n```\n\nThe output in console:\n\n```\nserver Listening on port 3000\nmatchedMsg: server Listening on port 3000\n\nvite v2.x.x dev server running at:\n\n\u003e Local: http://localhost:xxxx/\n\u003e Network: use `--host` to expose\n\nready in xms.\n```\n\n### Example2\n\n```javascript\nimport shell from \"wow-shell\";\n\n// If the resolvekeywords parameter is not passed in, the shell promise will be resolved when the child process closed\nshell(\"ping google.com\").then(() =\u003e console.log(\"ping completed!\"));\n```\n\nThe output in console:\n\n```\nPING google.com (x.x.x.x): x data bytes\nx bytes from x.x.x.x: icmp_seq=0 ttl=x time=x ms\nx bytes from x.x.x.x: icmp_seq=0 ttl=x time=x ms\nx bytes from x.x.x.x: icmp_seq=0 ttl=x time=x ms\n\n--- google.com ping statistics ---\n3 packets transmitted, 3 packets received, 0.0% packet loss\nround-trip min/avg/max/stddev = x/x/x/x ms\nping completed!\n```\n\n### API\n\nshell(command: string, options: Omit\u003c[SpawnOptionsWithoutStdio](http://nodejs.cn/api/child_process.html#child_processspawncommand-args-options), 'shell' | 'stdio'\u003e \u0026 { resolveKeyWords?: string; })\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faweiu%2Fwow-shell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faweiu%2Fwow-shell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faweiu%2Fwow-shell/lists"}