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

pipe-mock

v2.0.0

Published

PipeMock é um componente de anotação e simulação de funções pipe-line.

Downloads

73

Readme

PipeMock

PipeMock é um componente de anotação e simulação de funções pipe-line.

Separando a palavra Pipe-Mock em duas partes, onde o Pipe (do inglês, cano ou tubo) representa as funções puras muito utilisadas no paradigma da programação funcional, e onde Mock (simulador ou falsificador) em desenvolvimento de software é considerado um objeto que simula o comportamento de outros objetos reais e sendo muito utilizado para testes e observação de comportamento dos mesmos.

Sendo utilizado de forma correta, o mesmo pode testar e simular completamente o fluxo de varias funções em pipeline aninhadas, cujas dependências foram previamente disponibilizadas por parâmetros seguindo o modelo de injeção de dependências.

Instalando

Use the package manager npm to install PipeMock.

npm i pipe-mock

Usabilidade

Podemos utilizar o mock de forma aleatória para vermos o resultado.

import { mock } from "pipe-mock";

// Simulando propriedades injetadas como dependência
const { props, otherProps } = mock();

// Simulando uma função maluca qualquer
const mockResult = props.fakeFuncion(
  props.fakeFunc2(
    props.foo, // valor fake
    props.bar, // valor fake
    [123, "abc"], // valor qualquer
    otherProps.fakeArray([true, false])
  )
);

// Obtendo o controlador do resultado
const $mock = mockResult.$mock;

// Obtendo os dados em JSON
console.log($mock.json());

Que imprimirá:

{
  ":type": "function",
  "path": "props.fakeFuncion",
  "props": [
    {
      ":type": "function",
      "path": "props.fakeFunc2",
      "props": [
        {
          ":type": "prop",
          "path": "props.foo"
        },
        {
          ":type": "prop",
          "path": "props.bar"
        },
        [123, "abc"],
        {
          ":type": "function",
          "path": "otherProps.fakeArray",
          "props": [[true, false]]
        }
      ]
    }
  ]
}

Utilizando mock para analisar funções puras:

// utilizando a biblioteca lodash como exemplo
import lodash from "lodash/fp";

// Função comum utilizada para mapear os valores de um array
// e convertê-los para upper-case
function arrayToUpper(props) {
  const { pipe, map, toUpper } = props;
  return pipe(map(toUpper));
}

const names = ["John Doe", "Mary Jane"];

const result = arrayToUpper(lodash)(names);

console.log(result);
// ["JOHN DOE", "MARY JANE"]

const mockResult = arrayToUpper(mock());

console.log(mockResult.$mock.json());

Que imprimirá:

{
  ":type": "function",
  "path": "pipe",
  "props": [
    {
      ":type": "function",
      "path": "map",
      "props": [
        {
          ":type": "prop",
          "path": "toUpper"
        }
      ]
    }
  ]
}

Contribuindo com o projeto

Solicitações pull são bem-vindas. Para mudanças importantes, abra um problema primeiro para discutir o que você gostaria de mudar.

Licença

MIT