Acceso a los objetos de contexto para obtener detalles del proyecto - Amazon CodeCatalyst

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Acceso a los objetos de contexto para obtener detalles del proyecto

Como autor de un esquema, puede acceder al contexto del proyecto del esquema durante la síntesis para obtener información como los nombres del espacio y de los proyectos, o los archivos existentes en el repositorio de código fuente de un proyecto. También puede obtener detalles como la fase de resíntesis que está generando el esquema. Por ejemplo, puede acceder al contexto para saber si va a resintetizar para generar un paquete antecesor o un paquete propuesto. Luego, puede usar el contexto de código existente para transformar el código en su repositorio. Por ejemplo, puede escribir su propia estrategia de resíntesis para establecer estándares de código específicos. La estrategia se puede añadir al archivo blueprint.ts para los esquemas pequeños o se puede crear un archivo independiente para las estrategias.

En el siguiente ejemplo se muestra cómo encontrar archivos en el contexto de un proyecto, configurar un generador de flujos de trabajo y establecer una estrategia de resíntesis basada en esquemas para un archivo concreto:

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)); } }