Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Zugreifen auf Kontextobjekte für Projektdetails
Als Blueprint-Autor können Sie während der Synthese auf den Kontext aus dem Blueprint-Projekt zugreifen, um Informationen wie Bereiche- und Projektnamen oder vorhandene Dateien im Quell-Repository eines Projekts abzurufen. Sie können auch Details wie die Phase der Resynthese abrufen, die der Blueprint generiert. Sie können beispielsweise auf den Kontext zugreifen, um zu erfahren, ob Sie eine Resynthese durchführen, um ein Ancestor-Bundle oder ein vorgeschlagenes Bundle zu generieren. Der vorhandene Codekontext kann dann verwendet werden, um Ihren Code in Ihrem Repository zu transformieren. Sie können beispielsweise Ihre eigene Resynthesestrategie schreiben, um spezifische Codestandards festzulegen. Die Strategie kann der blueprint.ts
Datei für kleine Blueprints hinzugefügt werden, oder Sie können eine separate Datei für Strategien erstellen.
Das folgende Beispiel zeigt, wie Sie Dateien im Kontext eines Projekts finden, einen Workflow-Builder einrichten und eine auf Blueprint basierende Resynthesestrategie für eine bestimmte Datei festlegen können:
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)); } }