{"id":19358067,"url":"https://github.com/charllyslima/ts-google-scripts","last_synced_at":"2026-05-15T17:33:25.121Z","repository":{"id":248305992,"uuid":"828331394","full_name":"charllyslima/ts-google-scripts","owner":"charllyslima","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-13T20:51:37.000Z","size":60,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-06T18:26:39.555Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/charllyslima.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":"2024-07-13T20:03:54.000Z","updated_at":"2024-07-13T20:51:40.000Z","dependencies_parsed_at":"2024-07-13T21:32:58.102Z","dependency_job_id":null,"html_url":"https://github.com/charllyslima/ts-google-scripts","commit_stats":null,"previous_names":["charllyslima/ts-google-scripts"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charllyslima%2Fts-google-scripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charllyslima%2Fts-google-scripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charllyslima%2Fts-google-scripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charllyslima%2Fts-google-scripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/charllyslima","download_url":"https://codeload.github.com/charllyslima/ts-google-scripts/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240474029,"owners_count":19807258,"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":[],"created_at":"2024-11-10T07:10:14.944Z","updated_at":"2026-05-15T17:33:20.099Z","avatar_url":"https://github.com/charllyslima.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TS Google Scripts\n\nEste repositório é um molde para utilizar TypeScript em operações com Google Scripts, permitindo gerenciar tudo pelo\nrepositório.\n\n## Pré-requisitos\n\n- Node\n- clasp\n\n## Comandos disponíveis\n\n### Limpeza\n\nRemove todos os arquivos JavaScript do diretório `dist`.\n\n```shell\nnpm run clean\n```\n\n### Construção\n\nLimpa o diretório dist e executa o rollup para construir o projeto.\n\n```shell\nnpm run build\n```\n\n### Login\n\nRealiza o login no Google Clasp.\n\n```shell\nnpm run login\n```\n\n### Publicação\n\nPublica o projeto usando o Google Clasp.\n\n```shell\nnpm run publish\n```\n\n## Como usar\n\n1. Clone o repositório:\n\n```shell\ngit clone https://github.com/seu-usuario/ts-gscripts.git\ncd ts-google-scripts\n```\n\n2. Instale as dependências:\n\n```shell\nnpm install\n```\n\n3. Realize o login com o Clasp:\n\n```shell\nnpm run login\n```\n4. Crie os arquivos de configuração necessários:\n\nApós o login, você precisa configurar o Clasp para o seu projeto. Isso criará o arquivo .clasp.json. Se você ainda não tem um projeto configurado, use:\n\n```shell\nclasp create --type standalone --title \"Nome do seu projeto\"\n```\n\nCaso já possua um código, execute o comando abaixo dentro da pasta `dist`.\n\n```shell\nclasp clone \u003cyour-script-id\u003e\n```\n\nApós isso mova o arquivo .clasp.json para a raiz do projeto.\n\nVocê também precisará de um arquivo `appsscript.json` no diretório `/dist`. Crie este arquivo manualmente ou copie o mesmo gerado na `/src` com o comando anterior com a seguinte estrutura mínima:\n\n```json\n{\n  \"timeZone\": \"America/Sao_Paulo\",\n  \"dependencies\": {},\n  \"exceptionLogging\": \"STACKDRIVER\"\n}\n\n```\n\n5.  Construa o projeto:\n\n```shell\nnpm run build\n```\n\n5. Publique o projeto:\n\n```shell\nnpm run publish\n```\n\n## Recomendações\n\nPara organizar melhor o seu código e facilitar a visibilidade no Google Scripts, recomendamos:\n\n1. Crie um arquivo main.ts dentro do diretório src:\n\n```shell\nsrc/main.ts\n```\n\n2. Baseie sua estrutura de código em classes:\n\nEstruture seu código em classes para modularidade e reutilização. Por exemplo:\n\n```typescript\n// src/enntities/MyClass.ts\nexport class MyClass {\n    public static myFunction() {\n        // Seu código aqui\n    }\n}\n```\n\n3. Defina as funções que deseja chamar diretamente no Google Scripts no arquivo main.ts:\n\n    Apenas as funções que você precisa agendar para execução (como em um cron job) devem ser definidas diretamente no main.ts:\n\n```typescript\n// src/main.ts\nimport { MyClass } from './MyClass';\n\nmyFunction = () =\u003e {\n    MyClass.myFunction();\n};\n```\nDesta forma, apenas as funções necessárias estarão visíveis no Google Scripts, facilitando a configuração e a manutenção dos cron jobs.\n\n4. Adapte a arquitetura do seu projeto conforme necessário:\n\nSinta-se livre para utilizar a arquitetura que desejar. Quando o comando build for executado, o código TypeScript será convertido para JavaScript e todos os arquivos resultantes serão movidos para a pasta dist. Isso permite que você organize seu código de forma modular e mantenha a base de código limpa e gerenciável:\n\n```shell\nsrc/\n├── main.ts\n├── Entities/MyClass.ts\n└── ...\n\n```\n\nApós a construção, a estrutura será adaptada para:\n\n```shell\ndist/\n├── main.js\n├── MyClass.js\n└── ...\n```\n\n## Licença\n\nEste projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharllyslima%2Fts-google-scripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcharllyslima%2Fts-google-scripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharllyslima%2Fts-google-scripts/lists"}