{"id":16227208,"url":"https://github.com/tanepiper/watchmaker-js","last_synced_at":"2026-04-26T22:31:54.322Z","repository":{"id":138205195,"uuid":"341989609","full_name":"tanepiper/watchmaker-js","owner":"tanepiper","description":null,"archived":false,"fork":false,"pushed_at":"2021-02-27T18:13:31.000Z","size":540,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-08T04:29:13.624Z","etag":null,"topics":["banglejs","javascript","typescript","watchos"],"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/tanepiper.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-24T18:03:23.000Z","updated_at":"2021-02-27T18:13:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"fab762fc-4726-4643-bcc5-5ec20e4d0edf","html_url":"https://github.com/tanepiper/watchmaker-js","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tanepiper/watchmaker-js","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tanepiper%2Fwatchmaker-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tanepiper%2Fwatchmaker-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tanepiper%2Fwatchmaker-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tanepiper%2Fwatchmaker-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tanepiper","download_url":"https://codeload.github.com/tanepiper/watchmaker-js/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tanepiper%2Fwatchmaker-js/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32315711,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T21:09:39.134Z","status":"ssl_error","status_checked_at":"2026-04-26T21:09:21.240Z","response_time":129,"last_error":"SSL_read: 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":["banglejs","javascript","typescript","watchos"],"created_at":"2024-10-10T12:51:55.589Z","updated_at":"2026-04-26T22:31:54.295Z","avatar_url":"https://github.com/tanepiper.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WatchmakerJS\n\n\u003cdiv style='text-align: center'\u003e\n\n![](logo-mid.png)\n\n\u003c/div\u003e\n\nHelpful libraries for creating [BangleJS](https://banglejs.com/) applications.\n\n**This is in early development and subject to change**\n\n## Watchmaker\n\nTo build the library type `nx build watchmaker-js` to build the library. Currently this outputs a UMD and ESM build,\nthe best option is to use `watchmaker-js.umd.js`.\n\nCopy this file to your BangleApp's `modules` folder and rename `watchmaker-js.min.js` This can now be imported in any apps:\n\n`const watchMaker = require('watchmaker-js)'`\n\n### Lug - Routable Apps\n\nThe main feature of WatchmakerJS is `lug` - a small API for creating applications that are routable. Each route is a screen or screens\nthat link the application together. It also has functions to loading/saving settings (and loading global settings) and dealing with\nyour application text and data content.\n\n## Moods App\n\nThe Moods App is an example BangleJS application built using Watchmaker - to build run `nx build app-wmaker` - this will\nagain create a folder in `dist`. This also copies the assets to the folder.\n\nCopy these files to the BangleApp's `apps` folder under `moods` and add the following to `apps.js`\n\n```json\n  {\n    \"id\": \"moods\",\n    \"name\": \"Mood Tracker\",\n    \"shortName\": \"Moods\",\n    \"icon\": \"moods-icon.png\",\n    \"version\": \"0.1\",\n    \"description\": \"A mood tracker for your day\",\n    \"tags\": \"tool\",\n    \"interface\": \"interface.html\",\n    \"allow_emulator\":true,\n    \"storage\": [\n      {\"name\":\"moods.app.js\",\"url\":\"moods.js\"},\n      {\"name\":\"moods.text.json\",\"url\":\"moods.text.json\"},\n      {\"name\":\"moods.img\",\"url\":\"moods-icon.js\",\"evaluate\":true},\n      {\"name\":\"moods.heart.img\",\"url\":\"heart.js\",\"evaluate\":true}\n    ]\n  },\n```\n\nThe app should now appear in your apps list. When you upload it will compile the app and include `watchmaker-js` as a dependency.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftanepiper%2Fwatchmaker-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftanepiper%2Fwatchmaker-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftanepiper%2Fwatchmaker-js/lists"}