{"id":15662797,"url":"https://github.com/mikfreedman/testable-apps-script","last_synced_at":"2025-07-26T07:11:52.061Z","repository":{"id":36991522,"uuid":"303016183","full_name":"mikfreedman/testable-apps-script","owner":"mikfreedman","description":"Developing code for Google Apps Script can be fun, but not being able to test things or use a regular javascript pipeline can be quite annoying, here's a great template to get started!","archived":false,"fork":false,"pushed_at":"2022-07-29T12:47:54.000Z","size":1491,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T03:43:51.868Z","etag":null,"topics":["appscript","clasp","google-apps-script","jest"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","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/mikfreedman.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}},"created_at":"2020-10-11T00:53:27.000Z","updated_at":"2022-07-28T18:49:36.000Z","dependencies_parsed_at":"2022-08-26T17:42:17.423Z","dependency_job_id":null,"html_url":"https://github.com/mikfreedman/testable-apps-script","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/mikfreedman/testable-apps-script","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikfreedman%2Ftestable-apps-script","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikfreedman%2Ftestable-apps-script/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikfreedman%2Ftestable-apps-script/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikfreedman%2Ftestable-apps-script/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mikfreedman","download_url":"https://codeload.github.com/mikfreedman/testable-apps-script/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikfreedman%2Ftestable-apps-script/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267133958,"owners_count":24040789,"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","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["appscript","clasp","google-apps-script","jest"],"created_at":"2024-10-03T13:34:34.227Z","updated_at":"2025-07-26T07:11:51.995Z","avatar_url":"https://github.com/mikfreedman.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# testable-apps-script\n\n![test](https://github.com/mikfreedman/testable-apps-script/actions/workflows/test.yml/badge.svg)\n\nDeveloping code for [Google Apps Script](https://developers.google.com/apps-script) can be fun, but not being able to test things or use a regular javascript pipeline can be quite annoying.\n\nThis project uses a combination of \n\n* [Webpack](https://webpack.js.org/)\n* [Google Clasp](https://github.com/google/clasp)\n* [Jest](https://jestjs.io/)\n\nTo create a workable javascript pipeline for your [V8 Apps Script](https://developers.google.com/apps-script/guides/v8-runtime) project.\n\n## Installation\n\nFirst, enable the Google Apps Script API: https://script.google.com/home/usersettings\n\n```bash\nnpm install\n\nnpm run clasp login # Setup clasp for pushing code to google\n```\n\nCreate a `.clasp.json` in the root of the project that looks like this\n\n```json\n{\n  \"scriptId\": \"[script id from url]\",\n  \"rootDir\": \"dist/\"\n}\n```\nThen, update the [Apps Script Manifest](https://developers.google.com/apps-script/concepts/manifests) located here: [src/appsscript.json](src/appsscript.json)\n\n\n## Development\n[src/addon.js](src/addon.js) is the main entrypoint of the application, add your code there!\n\nBe sure to add functions that you want Google Apps Script to see to the global variable created at the top of the file.\n\n```javascript\nglobal.newFunction = function() {\n    console.log(\"newFunction\")\n}\n```\n\n## Testing\n\n```bash\nnpm test\n```\n\n## Deploy\n\n``` bash\nnpm run deploy\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikfreedman%2Ftestable-apps-script","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmikfreedman%2Ftestable-apps-script","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikfreedman%2Ftestable-apps-script/lists"}