npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

abstract-ci-worker

v1.0.0

Published

Abstract CI Worker

Downloads

1

Readme

Introdução

O Abstract CI Worker é um módulo Node.js que é responsável por fazer o build dos componentes visuais (widgets) e publicá-los nos repositórios de recursos compilados.

abstract-ci.png Nesta imagem, o Abstract CI Worker é o componente que fica entre o Source Code Repository e o Compiled Assets Repository

Instruções

Invocar via linha de comando:

node .\bin\cli.js --workdir /projects/thea-repos/workspaces/thea.core

onde: --workdir /projects/thea-repos/workspaces/thea.core é o local onde está o projeto com o código-fonte que deverá ser compilado e publicado

Compiled Assets Repository

O Compiled Assets Repository (referenciado neste documento como CAR) é o repositório onde os componentes compilados são primariamente publicados.

Este repositório, inicialmente seria um repositório GIT. Porém, por questões de segurança e complexidade, foi decidido que, na primeira versão ele será simplemente uma tabela em um banco postgresql. Um App será criado e disponibilizará uma API para que seja feito o upload dos componentes compilados.

O Abstract CI Worker tem o objetivo de pegar o código-fonte de um widget (ou lib front) compilar, gerando os assets de produção e de dev e, publicá-los no CAR. A publicação em ambientes de dev, tst, prod, store, etc. Será feita por outro Aplicativo que será desenvolvido no futuro. processo-ci.png


Detalhes do funcionamento:

Nesta seção será detalhado o funcionamento do abstract-ci

O abstract-ci funciona basicamente, compilando o código-fonte de um componente visual, comprimindo e subindo para o CAR.

Funcionamento geral

O seguinte diagrama descreve o funcionamento geral: abstract-ci.png


A seguir, a documentação detalhada do código:

Documentação do código-fonte

Importações

O código faz as seguintes importações de módulos Node.js:

const abstractCI = require("../index");
const utl = require("../lib/utils");
const package = require("../package.json");
const fs = require("fs");
const path = require("path");
global.stdout = require('../lib/STDOut').initialize({unformated:true});
const artifactPublisher = require('../lib/ArtifactPublisher');
  • abstractCI é um módulo que contém a implementação principal do Abstract CI Worker;
  • utl é um módulo com funções utilitárias;
  • package é um objeto JSON que contém informações sobre o pacote do Node.js em execução;
  • fs é um módulo que fornece uma API para interagir com o sistema de arquivos;
  • path é um módulo que fornece ferramentas para trabalhar com caminhos de arquivos e diretórios;
  • global.stdout é um objeto que contém a implementação da saída padrão usada pelo Abstract CI Worker;
  • artifactPublisher é um módulo que contém a implementação da publicação de artefatos do Abstract CI Worker.

Função exitWithError

A função exitWithError é uma função auxiliar que é usada para imprimir uma mensagem de erro na saída padrão e sair do processo com um código de erro (-1). A função recebe um objeto error como parâmetro, que contém informações sobre o erro.

Função openManifest

A função openManifest é uma função assíncrona que é responsável por abrir o arquivo de manifesto thea-compose.json e devolver o objeto JSON correspondente. A função recebe um parâmetro workDir que indica o diretório em que o arquivo de manifesto está localizado. Se o arquivo não for encontrado, a função rejeita a promessa com um objeto Error. Se o arquivo for encontrado, a função lê o arquivo e devolve o objeto JSON correspondente na promessa resolvida.

Função publishArtifacts

A função publishArtifacts é uma função assíncrona que é responsável por publicar os artefatos gerados pela execução do Abstract CI Worker em um determinado ambiente. A função recebe dois parâmetros: environment que indica o ambiente de destino e manifest que contém as informações do manifesto. A função verifica se as informações de publicação para o ambiente de destino estão definidas no manifesto. Se estiverem, a função inicia o processo de publicação de artefatos, caso contrário, a função rejeita a promessa com um objeto Error.

Função start

A função start é a função principal do módulo que é responsável por iniciar o processo de execução do Abstract CI Worker. A função imprime uma mensagem de informação com a versão do pacote na saída padrão. Em seguida, a função obtém o diretório de trabalho e o ambiente de destino a partir dos argumentos de linha de comando usando o módulo utl. A função chama a função openManifest para abrir o arquivo de manifesto thea-compose.json. Se a função openManifest for resolvida com sucesso, a função inicia a execução do Abstract CI Worker chamando a função abstractCI.getTaskRunner com os parâmetros taskRunner, que contém o nome do executor de tarefas definido no manifesto, e manifest, que contém as informações do manifesto. A função abstractCI.getTaskRunner retorna um objeto que implementa a interface TaskRunner, que é responsável por executar as tarefas definidas no manifesto. A função startTask é chamada no objeto TaskRunner para iniciar a execução das tarefas. Se a execução das tarefas for bem-sucedida, a função chama a função publishArtifacts para publicar os artefatos gerados. Se a publicação for bem-sucedida, a função chama a função process.exit para encerrar o processo com código de sucesso (0). Se ocorrer algum erro durante a execução do Abstract CI Worker, a função exitWithError é chamada para imprimir uma mensagem de erro na saída padrão e encerrar o processo com um código de erro (-1).

Função principal

A função principal start é chamada ao final do código para iniciar a execução do Abstract CI Worker.