Acessando objetos de contexto para obter detalhes do projeto - Amazon CodeCatalyst

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Acessando objetos de contexto para obter detalhes do projeto

Como autor do blueprint, você pode acessar o contexto do projeto do blueprint durante a síntese para obter informações como espaço e nomes de projetos, ou arquivos existentes no repositório de origem de um projeto. Você também pode obter detalhes como a fase de ressíntese que o projeto está gerando. Por exemplo, você pode acessar o contexto para saber se está ressintetizando para gerar um pacote ancestral ou um pacote proposto. O contexto de código existente pode então ser usado para transformar seu código em seu repositório. Por exemplo, você pode escrever sua própria estratégia de ressíntese para definir padrões de código específicos. A estratégia pode ser adicionada ao blueprint.ts arquivo para pequenos esquemas, ou você pode criar um arquivo separado para estratégias.

O exemplo a seguir mostra como você pode encontrar arquivos no contexto de um projeto, definir um criador de fluxo de trabalho e definir uma estratégia de ressíntese fornecida por um modelo para um arquivo específico:

const contextFiles = this.context.project.src.findAll({ fileGlobs: ['**/package.json'], }); // const workflows = this.context.project.src.findAll({ // fileGlobs: ['**/.codecatalyst/**.yaml'], // }); const security = new WorkflowBuilder(this, { Name: 'security-workflow', }); new Workflow(this, repo, security.getDefinition()); repo.setResynthStrategies([ { identifier: 'force-security', globs: ['**/.codecatalyst/security-workflow.yaml'], strategy: MergeStrategies.alwaysUpdate, }, ]); for (const contextFile of contextFiles) { const packageObject = JSON.parse(contextFile.buffer.toString()); new SourceFile(internalRepo, contextFile.path, JSON.stringify({ ...packageObject, }, null, 2)); } }