{"id":16712964,"url":"https://github.com/gabrielcsapo/onwithit","last_synced_at":"2025-07-11T05:04:44.897Z","repository":{"id":57144101,"uuid":"118186353","full_name":"gabrielcsapo/onwithit","owner":"gabrielcsapo","description":"🚀 a threaded progression logger","archived":false,"fork":false,"pushed_at":"2018-01-22T19:54:05.000Z","size":890,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-07T05:52:07.961Z","etag":null,"topics":["javascript","logger","threaded","utility"],"latest_commit_sha":null,"homepage":"https://gabrielcsapo.github.io/onwithit","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gabrielcsapo.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-01-19T22:35:36.000Z","updated_at":"2021-05-03T04:04:58.000Z","dependencies_parsed_at":"2022-09-05T12:31:28.443Z","dependency_job_id":null,"html_url":"https://github.com/gabrielcsapo/onwithit","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/gabrielcsapo/onwithit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielcsapo%2Fonwithit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielcsapo%2Fonwithit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielcsapo%2Fonwithit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielcsapo%2Fonwithit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gabrielcsapo","download_url":"https://codeload.github.com/gabrielcsapo/onwithit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielcsapo%2Fonwithit/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264734736,"owners_count":23655726,"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":["javascript","logger","threaded","utility"],"created_at":"2024-10-12T20:44:57.308Z","updated_at":"2025-07-11T05:04:44.882Z","avatar_url":"https://github.com/gabrielcsapo.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# onwithit\n\n\u003e 🚀 a threaded progression logger\n\nThe purpose of `onwithit` is to be able to make logging to the stdout threaded. The current logging approach is dependent on the main thread which will make updating animations or text being displayed to the user seem stalled. The simplest of all animations is a loading or spinner animation that the user could encounter during a long running task.\n\n[![Build Status](https://travis-ci.org/gabrielcsapo/onwithit.svg?branch=master)](https://travis-ci.org/gabrielcsapo/onwithit)\n[![Dependency Status](https://starbuck.gabrielcsapo.com/badge/github/gabrielcsapo/onwithit/status.svg)](https://starbuck.gabrielcsapo.com/github/gabrielcsapo/onwithit)\n[![devDependency Status](https://starbuck.gabrielcsapo.com/badge/github/gabrielcsapo/onwithit/dev-status.svg)](https://starbuck.gabrielcsapo.com/github/gabrielcsapo/onwithit#info=devDependencies)\n[![Coverage Status](https://lcov-server.gabrielcsapo.com/badge/github%2Ecom/gabrielcsapo/onwithit.svg)](https://lcov-server.gabrielcsapo.com/coverage/github%2Ecom/gabrielcsapo/onwithit)\n[![npm](https://img.shields.io/npm/dt/onwithit.svg?maxAge=2592000)]()\n[![npm](https://img.shields.io/npm/dm/onwithit.svg?maxAge=2592000)]()\n\n## Installation\n\n```\nnpm install onwithit --save\n```\n\n## Usage\n\n```js\nfunction wait(time) {\n  var now = Date.now();\n  while(Date.now() \u003c now + time){}\n}\nconst OnWithIt = require('onwithit');\n\nconst program = new OnWithIt(\"Building something cool\").start();\nwait(500);\nprogram.text = \"Building phase 1\";\nwait(500);\nprogram.info(\"Phase 1 built\");\nprogram.text = \"Building phase 2\";\nwait(500);\nprogram.success(\"Phase 2 built\");\nprogram.stop();\n```\n\n## Thanks\n\nThe interface for `onwithit` has taken cues from the greats, [ora](https://github.com/sindresorhus/ora) is a great library and has been used in a ton of my projects.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielcsapo%2Fonwithit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabrielcsapo%2Fonwithit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielcsapo%2Fonwithit/lists"}