Adicionar componentes de repositório e código-fonte a um esquema
Um repositório é usado pelo Amazon CodeCatalyst para armazenar código. O repositório usa um nome como entrada. A maioria dos componentes é armazenada em um repositório, como arquivos de código-fonte, fluxos de trabalho e outros componentes, como ambientes de desenvolvimento gerenciado (MDE). O componente do repositório de origem também exporta componentes usados para gerenciar arquivos e ativos estáticos. Os repositórios têm restrições de nome. Para ter mais informações, consulte Armazenamento e colaboração no código com repositórios de origem no CodeCatalyst.
const repository = new SourceRepository(this, { title: 'my-new-repository-title', });
Para importar os componentes de código-fonte e repositório de esquemas do Amazon CodeCatalyst
No arquivo blueprint.ts
, adicione:
import {...} from '@caws-blueprint-component/caws-source-repositories'
Tópicos
Adicionar um arquivo
Você pode gravar um arquivo de texto em um repositório com o constructo SourceFile
. A operação é um dos casos de uso mais comuns e usa um repositório, um caminho de arquivo e conteúdo de texto. Se o caminho do arquivo não existir em um repositório, o componente criará todas as pastas necessárias.
new SourceFile(repository, `path/to/my/file/in/repo/file.txt`, 'my file contents');
nota
Se você gravar dois arquivos no mesmo local no mesmo repositório, a implementação mais recente substituirá a anterior. Você pode usar o recurso para criar camadas de código gerado, o que é especialmente útil para estender o código que os esquemas personalizados podem ter gerado.
Adicionar um arquivo genérico
Você pode gravar bits arbitrários no repositório. Você pode ler de um buffer e usar o constructo File
.
new File(repository, `path/to/my/file/in/repo/file.img`, new Buffer(...)); new File(repository, `path/to/my/file/in/repo/new-img.img`, new StaticAsset('path/to/image.png').content());
Copiar arquivos
Você pode começar com o código gerado copiando e colando o código inicial e, depois, gerando mais código sobre essa base. Coloque o código dentro do diretório static-assets
e, depois, direcione esse código com o constructo StaticAsset
. Nesse caso, o caminho sempre começa na raiz do diretório static-assets
.
const starterCode = new StaticAsset('path/to/file/file.txt') const starterCodeText = new StaticAsset('path/to/file/file.txt').toString() const starterCodeRawContent = new StaticAsset('path/to/image/hello.png').content() const starterCodePath = new StaticAsset('path/to/image/hello.png').path() // starterCodePath is equal to 'path/to/image/hello.png'
Uma subclasse de StaticAsset
é SubstitutionAsset
. A subclasse funciona exatamente da mesma forma, mas, em vez disso, você pode executar uma substituição de mustache no arquivo. Isso pode ser útil para realizar a geração de estilos de copiar e substituir.
A substituição estática de ativos usa um mecanismo de modelos de mustache para renderizar os arquivos estáticos que são implantados no repositório de origem gerado. As regras de modelos de mustache são aplicadas durante a renderização, o que significa que todos os valores são codificados em HTML por padrão. Para renderizar HTML sem escape, use a sintaxe de mustache triplo {{{name}}}
. Para ter mais informações, consulte as regras de modelos de mustache
nota
Executar um substituto em arquivos que não são interpretáveis por texto pode produzir erros.
const starterCodeText = new SubstitionAsset('path/to/file/file.txt').subsitite({ 'my_variable': 'subbed value1', 'another_variable': 'subbed value2' })
Selecionar vários arquivos como destino
Os ativos estáticos oferecem suporte à segmentação global por meio de uma função estática em StaticAsset
e das subclasses chamadas findAll(...)
, o que retorna uma lista de ativos estáticos pré-carregados com caminhos, conteúdos e muito mais. Você pode encadear a lista com constructos File
para copiar e colar conteúdo no diretório static-assets
.
new File(repository, `path/to/my/file/in/repo/file.img`, new Buffer(...)); new File(repository, `path/to/my/file/in/repo/new-img.img`, new StaticAsset('path/to/image.png').content());
Criação de um novo repositório e adição de arquivos
Você pode usar um componente de repositório para criar um repositório em um projeto gerado. Depois, você pode adicionar arquivos ou fluxos de trabalho ao repositório criado.
import { SourceRepository } from '@amazon-codecatalyst/codecatalyst-source-repositories'; ... const repository = new SourceRepository(this, { title: 'myRepo' });
O exemplo a seguir mostra como adicionar arquivos e fluxos de trabalho a um repositório existente:
import { SourceFile } from '@amazon-codecatalyst/codecatalyst-source-repositories'; import { Workflow } from '@amazon-codecatalyst/codecatalyst-workflows'; ... new SourceFile(repository, 'README.md', 'This is the content of my readme'); new Workflow(this, repository, {/**...workflowDefinition...**/});
A combinação das duas partes do código gera um único repositório chamado myRepo
com um arquivo de origem README.md
e um fluxo de trabalho do CodeCatalyst na raiz.