

A Amazon não CodeCatalyst está mais aberta a novos clientes. Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Como migrar do CodeCatalyst](migration.md).

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á.

# Acesso a objetos de contexto para saber detalhes do projeto
<a name="context-objects-lm"></a>

Como autor do esquema, você pode acessar o contexto do projeto do esquema durante a síntese para ter informações, como espaço e nomes de projetos, ou arquivos existentes no repositório de origem de um projeto. Você também pode saber detalhes, como a fase de ressíntese que o esquema 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 ser usado para transformar o 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 arquivo `blueprint.ts` 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 esquema 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));
    }
  }
```