{"id":26403437,"url":"https://github.com/fossamagna/gas-entry-generator","last_synced_at":"2025-04-07T18:12:09.035Z","repository":{"id":38628524,"uuid":"73464333","full_name":"fossamagna/gas-entry-generator","owner":"fossamagna","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-22T02:34:09.000Z","size":1587,"stargazers_count":25,"open_issues_count":7,"forks_count":8,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-31T17:16:31.872Z","etag":null,"topics":["google-apps-script"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/fossamagna.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":"2016-11-11T09:31:17.000Z","updated_at":"2025-03-11T07:13:10.000Z","dependencies_parsed_at":"2024-01-22T15:25:55.831Z","dependency_job_id":"ee937e2c-9134-415a-ad9a-e1c9e138f22c","html_url":"https://github.com/fossamagna/gas-entry-generator","commit_stats":{"total_commits":198,"total_committers":11,"mean_commits":18.0,"dds":0.7272727272727273,"last_synced_commit":"99d22fab18db6a00bddfb7a1a5f15e13e2f86997"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fossamagna%2Fgas-entry-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fossamagna%2Fgas-entry-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fossamagna%2Fgas-entry-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fossamagna%2Fgas-entry-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fossamagna","download_url":"https://codeload.github.com/fossamagna/gas-entry-generator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247704571,"owners_count":20982298,"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"],"created_at":"2025-03-17T15:33:46.872Z","updated_at":"2025-04-07T18:12:08.994Z","avatar_url":"https://github.com/fossamagna.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gas-entry-generator [![NPM version][npm-image]][npm-url] [![Build Status][github-actions-image]][github-actions-url] [![Dependency Status][daviddm-image]][daviddm-url]  [![Coverage percentage][coveralls-image]][coveralls-url]\n\nTop level function generator for Google Apps Script.\n\n## About\n\nIn Google Apps Script, it must be top level function declaration that entry point called from [google.script.run](https://developers.google.com/apps-script/guides/html/reference/run).\n`gas-entry-generator` generate a top level function declaration statement, when it detect a function assignment expression to `global` object.\n\n## Installation\n\n```sh\n$ npm install gas-entry-generator --save-dev\n```\n\n## example\n\nfoo.js:\n```js\n/**\n * comment for foo function.\n */\nglobal.foo = function () {\n};\n```\n\ngenerate.js:\n```js\nconst fs = require('fs');\nconst { generate } = require('gas-entry-generator');\n\nconst fooSource = fs.readFileSync('foo.js', {encoding: 'utf8'});\nconst options = {\n  comment: true\n};\nconst output = generate(fooSource, options);\nconsole.log(output.entryPointFunctions);\n```\n\nConsole output:\n```js\n/**\n * comment for foo function.\n */\nfunction foo() {\n}\n```\n\nExecute to generate function as entry point.\n```sh\n$ node generate.js\n```\n\n## geranate global assignment expressions from exports.*\n\nfoo.ts:\n```ts\n/**\n * comment for foo function.\n */\nexports.foo = () =\u003e 'bar';\n```\n\ngenerate.js:\n```js\nconst fs = require('fs');\nconst { generate } = require('gas-entry-generator');\n\nconst fooSource = fs.readFileSync('foo.js', {encoding: 'utf8'});\nconst options = {\n  comment: true,\n  autoGlobalExports: true // Enable to detect exports.* to generate entry point functions.\n};\nconst output = generate(fooSource, options);\nconsole.log(output.entryPointFunctions);\nconsole.log('-----');\nconsole.log(output.globalAssignments);\n```\n\nConsole output:\n```\n/**\n * comment for foo function.\n */\nfunction foo() {\n}\n-----\nglobal.foo = exports.foo;\n```\n\n[npm-image]: https://badge.fury.io/js/gas-entry-generator.svg\n[npm-url]: https://npmjs.org/package/gas-entry-generator\n[github-actions-image]: https://github.com/fossamagna/gas-entry-generator/actions/workflows/test.yml/badge.svg?branch=master\n[github-actions-url]: https://github.com/fossamagna/gas-entry-generator/actions/workflows/test.yml?branch=master\n[daviddm-image]: https://david-dm.org/fossamagna/gas-entry-generator.svg\n[daviddm-url]: https://david-dm.org/fossamagna/gas-entry-generator\n[coveralls-image]: https://coveralls.io/repos/github/fossamagna/gas-entry-generator/badge.svg?branch=master\n[coveralls-url]: https://coveralls.io/github/fossamagna/gas-entry-generator?branch=master\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffossamagna%2Fgas-entry-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffossamagna%2Fgas-entry-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffossamagna%2Fgas-entry-generator/lists"}