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

@enzodiazdev/lepp

v1.7.3

Published

Lottieexpress++ es una extension de Express hecha con y para typescript

Downloads

22

Readme

LEPP

Lottieexpress++ es una extension de Express hecha con y para typescript.

npm i @enzodiazdev/lepp

API Reference: https://github.com/enzodiazdev/lepp/wiki

Contribuir: CONTRIBUTING.md

Indice

FAQ

¿Por qué otra librería?

LEPP permite crear el servidor de express más común en apenas unas lineas de código, permitiendo que la estructura del proyecto se limite a un único archivo. Esto ofrece una especial ventaja a la hora de crear prototipos o proyectos de portfolio, pues permite dar mayor visibilidad a tu funcionalidad o a tu algoritmo sin perderte entre las lineas y archivos de un proyecto típico de express.

¿Qué se sacrifica?

Absolutamente nada. Seguís teniendo acceso a la instacia app de express, por ende podés seguir haciendo lo que siempre hiciste. LEPP no añade ninguna funcionalidad sin que ejecutes un método para ello.

¿Qué otras ventajas ofrece?

  • Typescript. Si eso no te convence, empeza por acá: https://www.typescriptlang.org/
  • Extensiones. Las extensiones son un conjunto de rutas, controladores básicamete, que se escriben utilizando decoradores.

¿No hay otra librería que haga esto?

Sí, e infinitamente mejores que ésta, pero tenés que aprenderte toda la librería de nuevo. Acá solo aprendés a añadir extensiones (muy fácil).

¿Está hecha para todos?

Solo para quienes conozcan express y typescript. O sea que sí.

¿Cuándo debería y cuando no debería utilizar LEPP?

Usalo cuando necesites mostrar tus algoritmos y funcionalidades, cuando necesites crear prototipos. No lo uses para proyectos profesionales porque no tiene mucho sentido, aunque nada te limita.

Empezar

Inicia un proyecto de npm usando typescript. También tengo un atajo para eso eh: https://github.com/enzodiazdev/lottiets

Instala la librería npm i @enzodiazdev/lepp

Copia y pega.

import Lepp from "@enzodiazdev/lepp";

const lepp = new Lepp(3000); //<- Le pasas el puerto.

lepp.use_helmet()
  .use_bodyparser()
  .use_morgan("tiny"); //<- Seteas algunos middlewares, los que estén disponibles.

lepp.use_default_routes(); //<- Usa tres rutas predefinidas: index, error 404 y error 500.

//lepp.add_extension(Extension); //<- Acá añadírías tus extensiones. ANTES de iniciar el server, como siempre.

lepp.run(); //<- Iniciás el servidor 

Ejecutá tu programa y entrá a http://localhost:3000.

Extensiones

Las extensiones son un conjunto de rutas. LEPP provee un par de decoradores de clases y métodos para crearlas.

  • Controller
  • Get, Put, Post, Update, Delete

Pasos para crear una extension

  • Importa los decoradores
  • Crea una clase con el nombre que quieras ponerle a tu extensión
  • Decora la clase con el decorador Controller(), si querés le pasas una ruta como parametro, para que todas las rutas que crees queden bajo esa.
  • La clase no necesita una funcion constructora para funcionar, solo requiere del decorador.
  • Crea un método y colocale el decorador del verbo que quieras, por ejemplo @Get(). Idealmente pasale como parametro una ruta para que tenga sentido crear rutas, ¿no?
  • Usa el método .add_extension(Extension) de tu instancia de Lepp, y pasale LA CLASE (no le pases una instacia), es decir la extension.
  • Lee el código de abajo para que quede más claro
import Lepp, {decorators} from "@enzodiazdev/lepp";

//destructuring
const {Controller, Get} = decorators;

//GET http://localhost:PORT/foo/bar
@Controller("/foo")
class Foo {
  @Get("/bar")
  public bar(req:Request, res:Response){
    res.send("bar!");
  }
}

lepp.add_extension(Foo);

Muy fácil, ¿no? También podés usar las extensiones de otros, y reutilizarlas en otros proyectos.

Extensiones recomendadas

  • Ninguna por el momento. Nota: Desde la 1.6.5, Lepp ya no provee exensiones, éstas se instalan como dependencias de npm

Middlewares

Estos son los middlewares predefinidos, por popularidad. Igual podés añadir todos los que quieras usando el método .use() Para añadir más middlewares predefinidos, por favor crea un pull request o deja un issue solicitandolo.

Ejemplos

Cuando vea que se pone un poco complicado de explicar, escribiré ejemplos, pero considero que es demasiado fácil de entender.


Licencia MIT. Metele a los issues por cualquier duda, idea o error que tengas. Ni lo dudes.