{"id":17251074,"url":"https://github.com/dstcruz/purescript-gas-template","last_synced_at":"2025-04-12T12:06:36.511Z","repository":{"id":42700584,"uuid":"212644541","full_name":"dstcruz/purescript-gas-template","owner":"dstcruz","description":"A template to get started using Purescript with Google Apps Script","archived":false,"fork":false,"pushed_at":"2023-03-02T21:15:04.000Z","size":859,"stargazers_count":7,"open_issues_count":7,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T06:44:06.929Z","etag":null,"topics":["google-apps-script","purescript"],"latest_commit_sha":null,"homepage":null,"language":"Dhall","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/dstcruz.png","metadata":{"files":{"readme":"Readme.org","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":"2019-10-03T17:58:58.000Z","updated_at":"2022-08-01T10:12:04.000Z","dependencies_parsed_at":"2024-12-04T03:41:08.475Z","dependency_job_id":"8a684663-b2f6-454e-9e5d-1b6f16adc84a","html_url":"https://github.com/dstcruz/purescript-gas-template","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/dstcruz%2Fpurescript-gas-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dstcruz%2Fpurescript-gas-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dstcruz%2Fpurescript-gas-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dstcruz%2Fpurescript-gas-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dstcruz","download_url":"https://codeload.github.com/dstcruz/purescript-gas-template/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248565060,"owners_count":21125415,"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":["google-apps-script","purescript"],"created_at":"2024-10-15T06:50:16.752Z","updated_at":"2025-04-12T12:06:36.494Z","avatar_url":"https://github.com/dstcruz.png","language":"Dhall","funding_links":[],"categories":[],"sub_categories":[],"readme":"* Purescript-GAS-Template \n\nA minimal template to get you jump-started using [[https://developers.google.com/apps-script][Google Apps Script]] with [[https://www.purescript.org][Purescript]].\n\nSee ~src/App/Sample.purs~ for the simplest of interactions. Once you build and\npublish this code to your spreadsheet (see Publish below), you will be able to:\n\n - In a cell, put the formula ~=HELLO(\"world\")~ to see \"Hello wold\" returned by your purescript code.\n\n - See a new menu called \"FromPurescript\", with 2 entries which make a toast appear with a message.\n\n** Environment\n\nIf you have Nix, you can run the ~nix-shell~ with the dependencies already in place.\n   \n** Init\n\n To init, follow standand npm/yarn procedure:\n\n #+BEGIN_SRC shell\n yarn install\n #+END_SRC\n\n** Build\n\n See ~package.json~ for build, clean, publish scripts.\n\n** Publish\n\n This package uses [[https://developers.google.com/apps-script/guides/clasp][google's clasp]] to upload the script to google servers. You will\n need to first login in order to be able to execute the ~clasp push~ command run by\n the ~publish~ script. Login in is as simple as \n\n #+BEGIN_SRC shell\n npx clasp login\n #+END_SRC\n\n You will also need to create a Spreadsheet, open \"Tools \u003e Script Editor\", name\n the script, and capture the ~scriptId~ from the Script Editor's \"View \u003e Project properties\"\n menu. Insert that value into ~.clasp.json~.\n\n** Building notes\n\n As a first step, we build the purescript code with ~spago~. Once that is done,\n we call ~webpack~ to bundle things up with our ~index.js~ file as the entry\n point. Since google doesn't understand plain, modern, javascript, ~webpack~\n transpiles (via ~babel~), and then uses the [[https://github.com/fossamagna/gas-webpack-plugin][gas-webpack-plugin]] to massage\n the javascript into code that google's app engine likes. ~GAS~ expects that all declarations be top-level,\n so this plugin detects expressions assigned to ~global~ and generates a top-level declaration for it. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdstcruz%2Fpurescript-gas-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdstcruz%2Fpurescript-gas-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdstcruz%2Fpurescript-gas-template/lists"}