Repolode
krzysztofzablocki

krzysztofzablocki/Sourcery

Gerador de código Swift baseado no SwiftSyntax que usa templates para criar boilerplate, como mocks e código Equatable e Codable.

Estrelas
8,031
Forks
633
Issues abertas
95
Último commit
há 10 dias

O que é?

Sourcery é um gerador de código Swift executado pela linha de comando. Ele analisa seus arquivos-fonte Swift com o SwiftSyntax da Apple e envia as informações de tipos resultantes para templates Stencil, que então geram novos arquivos Swift. Isso elimina código repetitivo, como mocks de protocolos, implementações de igualdade e hash, helpers para casos de enums, lenses e conformidades com Codable.

Um exemplo comum é gerar mocks: em vez de escrever manualmente uma classe mock para cada protocolo, você adiciona uma anotação como `extension MyProtocol: AutoMockable {}` e o Sourcery gera o mock. Como a saída é gerada novamente a partir do código-fonte, os mocks continuam sincronizados quando os membros dos protocolos mudam.

O Sourcery é executado como um binário instalado pelo Homebrew, CocoaPods, Mint ou Swift Package Manager, e também pode ser usado como um plugin de comando de pacote Swift ou um hook de pre-commit. Ele oferece um modo watch para gerar novamente o código quando os arquivos mudam e disponibiliza um arquivo de configuração para fontes, templates e argumentos.

Recursos principais

  • 01Gera mocks de protocolos com a anotação AutoMockable.
  • 02Gera implementações de Equatable, Hashable e Codable a partir de definições de tipos.
  • 03Permite criar templates Stencil personalizados para automatizar padrões arbitrários.
  • 04Oferece um modo watch que gera novamente o código quando as fontes ou os templates mudam.
  • 05Pode ser instalado pelo Homebrew, CocoaPods, Mint, SPM ou pre-commit.

Casos de uso

  • Gerar mocks e stubs consistentes para todos os protocolos de um projeto iOS.
  • Manter o código Equatable, Hashable ou Codable sincronizado conforme os tipos dos modelos mudam.
  • Criar templates de geração de código específicos do projeto para padrões de arquitetura repetitivos.
  • Automatizar telas de configurações ou outro código de UI derivado de declarações de tipos.

Início rápido

  1. 1

    Instale o binário do sourcery com o Homebrew

    brew install sourcery
  2. 2

    Execute o sourcery informando os caminhos das fontes, dos templates e da saída

    ./bin/sourcery --sources <sources path> --templates <templates path> --output <output path>

Antes de usar

  • Templates escritos em JS não são compatíveis ao compilar com o Swift Package Manager.
  • O plugin de comandos do Xcode só está disponível a partir do Xcode 14.

Em coleções

Tópicos

#swift#code-generation#metaprogramming#templates#ios#testing#boilerplate#codegen#codegenerator

Perguntas frequentes

O que é Sourcery?
Gerador de código Swift baseado no SwiftSyntax que usa templates para criar boilerplate, como mocks e código Equatable e Codable. Sourcery é um gerador de código Swift executado pela linha de comando. Ele analisa seus arquivos-fonte Swift com o SwiftSyntax da Apple e envia as informações de tipos resultantes para templates Stencil, que então geram novos arquivos Swift. Isso elimina código repetitivo, como mocks de protocolos, implementações de igualdade e hash, helpers para casos de enums, lenses e conformidades com Codable.
Sourcery é gratuito? Qual é a licença?
Sourcery é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
Sourcery ainda é mantido?
Manutenção ativa. O último commit de Sourcery foi em 28 de out. de 2026.
Para que posso usar Sourcery?
Gerar mocks e stubs consistentes para todos os protocolos de um projeto iOS. Manter o código Equatable, Hashable ou Codable sincronizado conforme os tipos dos modelos mudam. Criar templates de geração de código específicos do projeto para padrões de arquitetura repetitivos. Automatizar telas de configurações ou outro código de UI derivado de declarações de tipos.
Como instalar Sourcery?
Instale o binário do sourcery com o Homebrew: brew install sourcery Execute o sourcery informando os caminhos das fontes, dos templates e da saída: ./bin/sourcery --sources <sources path> --templates <templates path> --output <output path>
Onde consigo Sourcery?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/krzysztofzablocki/Sourcery

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados