{"id":16229743,"url":"https://github.com/twocaretcat/NoBS","last_synced_at":"2026-04-27T20:32:33.798Z","repository":{"id":93593044,"uuid":"442910203","full_name":"jerboa88/NoBS","owner":"jerboa88","description":"A dead simple build task runner for Node.js","archived":false,"fork":false,"pushed_at":"2024-07-29T04:26:46.000Z","size":14,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-01T22:01:35.488Z","etag":null,"topics":["build-automation","build-tool","javascript","node-module","nodejs","task-runner","task-scheduler"],"latest_commit_sha":null,"homepage":"https://johng.io/p/no-bs","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/jerboa88.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2021-12-29T22:57:55.000Z","updated_at":"2024-07-29T04:26:49.000Z","dependencies_parsed_at":"2024-11-04T04:40:34.356Z","dependency_job_id":"b57c6157-a78d-4191-a9d2-bb8ef18d0996","html_url":"https://github.com/jerboa88/NoBS","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/jerboa88%2FNoBS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerboa88%2FNoBS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerboa88%2FNoBS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerboa88%2FNoBS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jerboa88","download_url":"https://codeload.github.com/jerboa88/NoBS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247785920,"owners_count":20995642,"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":["build-automation","build-tool","javascript","node-module","nodejs","task-runner","task-scheduler"],"created_at":"2024-10-10T12:59:06.016Z","updated_at":"2026-04-27T20:32:33.791Z","avatar_url":"https://github.com/jerboa88.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- Project Header --\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ch1 class=\"projectName\"\u003eNoBS - Node Build Script\u003c/h1\u003e\n\n  \u003cp class=\"projectBadges info\"\u003e\n    \u003cimg src=\"https://johng.io/badges/category/Library.svg\" alt=\"Project category\" title=\"Project category\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/languages/top/twocaretcat/NoBS.svg\" alt=\"Language\" title=\"Language\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/repo-size/twocaretcat/NoBS.svg\" alt=\"Repository size\" title=\"Repository size\"\u003e\n    \u003ca href=\"LICENSE\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/license/twocaretcat/NoBS.svg\" alt=\"Project license\" title=\"Project license\"/\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n  \u003cp class=\"projectBadges status\"\u003e\n    \u003ca href=\"https://unmaintained.tech/\"\u003e\n\t\t\u003cimg src=\"https://unmaintained.tech/badge.svg\" alt=\"No Maintenance Intended\" title=\"No Maintenance Intended\"/\u003e\n\t\u003c/a\u003e\n \t\u003cimg src=\"https://img.shields.io/badge/Experimental-%E2%9A%A0%EF%B8%8E-ca8a04.svg\" alt=\"Experimental\" title=\"Experimental\"/\u003e\n  \u003c/p\u003e\n\n  \u003cp class=\"projectDesc\"\u003e\n    A dead simple build task runner for Node.js.\n  \u003c/p\u003e\n\n  \u003cbr/\u003e\n\u003c/div\u003e\n\n\n\u003e [!IMPORTANT]\n\u003e I've marked this project as [UNMAINTAINED](https://unmaintained.tech/) because it hasn't seen an update in a while. You can still fork/download/use this project at your own risk, but I won't be able to provide support or updates.\n\n\u003e [!WARNING]\n\u003e This is currently an experimental project or proof-of-concept. It may contain bugs or incomplete features, and is not intended for production use. Breaking changes may be made at any time. I would recommend [Gulp] as a more powerful, fleshed out alternative.\n\n\n## 👋 About\nAutomate your build process by scheduling build tasks to be run either sequentially or concurrently using a simple array-based config object.\n\n\n## 📦 Installation\nInstall with `npm install git+https://github.com/twocaretcat/NoBS.git` for the latest version. The project is not on NPM at this time.\n\n\n## 🕹️ Usage\n\n1. Import the module with:\n```Javascript\nconst NoBS = require('NoBS');\n```\n\n2. Create an array of tasks:\n```Javascript\nconst taskList = [\n\t[taskA1, taskA2],\n\t[taskB1],\n\t[taskC1, taskC2, taskC3]\n];\n```\n\n**Tasks** are simply functions which return a promise. Tasks are contained in **stages**, which are the sub-arrays shown here.\nEvery task in a stage will be started at the same time, and once all tasks in a stage are complete, the next stage will start.\nNote that this cannot be nested any further.\n\n3. (Optional) Define additional options:\n```Javascript\nconst options = {\n\ttaskSuccessCallback: taskSuccessCallback,\n\ttaskErrorCallback: taskErrorCallback,\n\tdebug: true\n}\n```\n\nAny of these properties can be left out if not required.\n\n`taskSuccessCallback` and `taskErrorCallback` are callback functions that are fired each time a task completes or fails, respectively. They should each accept three arguments:\n- `taskName`: The function name of a task\n- `result/error`: The value passed to `resolve()` or `reject()` when a task finishes. Since you write the task functions, this can be whatever you want\n- `stageHasError`: Whether an error has been encountered while running any tasks in this stage. We will wait for all tasks in a stage to complete even if there is an error, so this can be used to filter out duplicate error messages, for example\n\n`debug` controls whether debug messages are printed to the console.\n\n\n3. Create a NoBS object with:\n```Javascript\nconst noBS = new NoBS(taskList, options);\n```\n\nNote that `options` is not required here.\n\n4. Run tasks with NoBS:\n```Javascript\nnoBS.run()\n\t.then(result =\u003e console.log('Done'))\n\t.catch(error =\u003e console.error(`Error: ${error}`));\n```\n\n---\n\nPlease see [test.js](test.js) for a complete example.\n\n\n## 🤝 Contributing\nThis is an experimental project but input is welcome :).\n\n\n## 🧾 License\nThis project is licensed under the MIT License. See [LICENSE](LICENSE) for details.\n\n\n## 🖇️ Related\n**[Gulp]**: A toolkit to automate \u0026 enhance your workflow. Write individual, focused tasks and compose them into larger operations, providing you with speed and accuracy while reducing repetition.\n\n\n## 💕 Funding\n\nFind this project useful? [Sponsoring me](https://johng.io/funding) will help me cover costs and **_commit_** more time to open-source.\n\nIf you can't donate but still want to contribute, don't worry. There are many other ways to help out, like:\n\n- 📢 reporting (submitting feature requests \u0026 bug reports)\n- 👨‍💻 coding (implementing features \u0026 fixing bugs)\n- 📝 writing (documenting \u0026 translating)\n- 💬 spreading the word\n- ⭐ starring the project\n\nI appreciate the support!\n\n[Gulp]: https://gulpjs.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwocaretcat%2FNoBS","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftwocaretcat%2FNoBS","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwocaretcat%2FNoBS/lists"}