String.is é um kit de ferramentas para desenvolvedores. Você pode ver isso em ação aqui.

String.is é uma ferramenta de conversão opinativa, com os seguintes objetivos:
String.is foi confirmado para trabalhar no Chrome, Safari, Firefox e Edge. O Internet Explorer não é suportado.
Instale dependências:
yarn installConfigurar ganchos git:
yarn husky installExecute o servidor de desenvolvimento:
yarn dev... e então abra http: // localhost: 3000 no seu navegador.
Para executar todas as verificações de linha, digitar cheques, testes e criar para a produção:
yarn allConstrua a imagem do Docker:
yarn docker-buildou
docker build -t string-is .... e então execute:
yarn docker-runou
docker run -p 3000:3000 string-is Como alternativa, você pode construir e executá-lo com docker-compose :
docker-compose up... ou até execute -o diretamente do Docker Hub:
docker run -p 3000:3000 daveperrett/string-is:latest Atualmente, as plataformas linux/arm64 e linux/amd64 são suportadas.
A pasta src/lib contém a maior parte da lógica de conversão e é pura datilografada, sem o conhecimento do React necessário.
src/lib/identities contém identificadores que pegam uma sequência de entrada e retornam o nível de confiança de que a entrada está em um formato específico. Por exemplo, JwtIdentifier retorna um número indicando o nível de confiança (entre 0 e 100) que uma determinada sequência de entrada é um token JWT.src/lib/inputs contém analisadores que carregam seqüências de caracteres de diferentes formatos. Por exemplo, o JsonInput analisa uma string json e retorna um objeto.src/lib/outputs pega dados analisados e os formam em um formato de saída específico. Por exemplo, JavaScriptOutput pega uma sequência JavaScript, formata -a de acordo com as opções de formatação fornecidas e retorna o resultado.src/lib/converters são pares de entrada → saída - a cola que executa uma conversão entre os formatos. Por exemplo, CsvToJsonConverter toma uma sequência CSV como entrada, alimenta -a no CsvInput para análise e tubula o resultado no JsonOutput para formatação.Para adicionar um novo conversor:
identity (em SRC/lib/identidades) para o formato do Formato. Nesse caso, estamos convertendo do texto sem formatação e já temos uma identidade plana, por isso não precisamos adicionar uma nova identidade. Uma identity deve exportar (a) uma função confidence que, dada uma sequência de entrada, retorna um número de 100 descrevendo a confiança de que a entrada fornecida corresponde à identidade e (b) uma matriz de converters com os quais a identidade pode ser usada.identity na etapa (2), exportá -la no SRC/lib/identities/index.ts.output (em SRC/lib/saídas) para o formato para . Uma saída deve exportar uma função output que, dada uma sequência de entrada (ou possivelmente objeto, dependendo da conversão que ocorre) e um objeto options , converterá a entrada na sequência de saída desejada.output na etapa (4), exportá -la no SRC/lib/saídas/index.ts.converter (em Src/lib/conversores) para o par input + output . Um conversor deve exportar (a) uma função operation que passa a sequência de entrada e um objeto options para a output apropriada e (b) um outputId , que define qual saída está sendo usada.converter na etapa (6), exportá -lo em SRC/lib/conversores/index.ts. Além disso, adicione entradas aos locais/pt/páginas-converter.json] para que a página de destino gerada automaticamente tenha o cabeçalho correto, o texto e o exemplo de introdução.outputId na etapa (6), adicione um componente de saída do React (em SRC/componentes/domínio/convert/saídas) para renderizar o novo tipo de saída. Se você estiver reutilizando um tipo de saída existente (por exemplo, convertendo para JSON ou YAML), poderá reutilizar um componente de saída existente aqui. Se as inputs , outputs , converters e componentes de reação apropriados estiverem em vigor e exportados corretamente, você poderá usar seu novo conversor, dada a sequência de entrada apropriada que aciona uma confidence diferente de zero.
Se você deseja estar 100% confiante de que sua privacidade está protegida, pode facilmente configurar uma instância de string.is para seu próprio uso pessoal ou organizacional.
A maneira mais rápida de implantar String.is é usar a plataforma vercel (é gratuita para uso não comercial). Confira a documentação do Next.JS de implantação para obter mais detalhes. Clique no botão Deploy abaixo para implantar este aplicativo com o Vercel:
Netlify e Heroku também são boas opções para hospedagem gratuita. Clique no botão Deploy abaixo para implantar este aplicativo com Heroku:
Infelizmente, o String.is atualmente não suporta compilações estáticas via next export (o que permitiria a hospedagem no por exemplo, S3), porque o recurso i18n que ele usa não é atualmente suportado para construções estáticas.
Defina a variável de ambiente NEXT_PUBLIC_BASE_PATH como o sub-caminho e construa o projeto antes de implantar. Esse valor deve ser definido no horário de construção e não pode ser alterado sem a reconstrução, pois o valor é inlinado nos feixes do lado do cliente.
Por exemplo, se você estiver implantando para https://tools.example.com/string-is , precisará definir NEXT_PUBLIC_BASE_PATH como /string-is . Você não precisa definir essa variável se estiver implantando para a raiz de um domínio.
Construa e corra com o Docker:
docker build -t string-is --build-arg NEXT_PUBLIC_BASE_PATH= " /string-is " .
docker run -p 3000:3000 string-is Ou construir e correr com docker-compose :
export NEXT_PUBLIC_BASE_PATH= " /string-is "
docker-compose up --build String.is suporta localização completa. Novos idiomas devem ser adicionados sob os locales/ pasta no formato JSON (consulte locales/en/ para um exemplo). O inglês é atualmente o único local fornecido, mas o suporte para novos idiomas é bem -vindo.
String.is inclui suporte para análises plausíveis, um serviço de análise sem biscoitos e sem privacidade. Para ativá -lo, defina uma variável de ambiente especificando o domínio:
NEXT_PUBLIC_ANALYTICS_DOMAIN=string.is
A análise é desativada por padrão, a menos que process.env.NODE_ENV === 'production' e um domínio NEXT_PUBLIC_ANALYTICS_DOMAIN está definido.
Depois de fazer suas alterações:
git checkout -b feature/add-my-new-convertergit push origin feature/add-my-new-converter@DaveMetrics
Veja a licença para obter detalhes.