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

wapitis

v2.1.40

Published

Outils permettant de créer et de gérer une web app - WebApp utiliTies pour typescript

Downloads

40

Readme

WebApp utiliTies est un set d'outils pour développer et compiler une application web avec ou sans client lourd. Il ne s'agit pas d'un framlework. Il ne contient pas de composants préexistants (cela sera l'objet d'un autre projet).

L'idée est de faciliter la mise en oeuvre de composants grâce aux web components et à la surcouche qui y est apportée, et de rendre leur compilation plus simple.

Afin de faciliter la compilation de cette application, des scripts en ligne de commande permettent très rapidement d'initialiser, de tester et de publier en production pour une sortie sur le Web ou dans une application packagée pour Windows, IOS ou Android.

-----------------------------------------------------

🠺 Technologies utilisées

Pour développer plus facilement et permettre une mise en place plus facile des composants, Wapitis utilise les webcomponents. Plus particulièrement une surcouche y est apportée ajoutant encore plus de simplicité.

Cette surcouche fonctionne un peu comme LitElement. Au lieu d'étendre HTMLElement, le composant créé étend une classe de base appelé Component permettant:

  • d'accéder simplement au cycle de vie du composant
  • d'appliquer un style
  • de créer des propriétés dynamiques ou non
  • de mettre à jour le contenu

Le langage utilisé est typescript, permettant un contrôle plus poussée des types et des classes et une aide à la saisie facilitée.

Pour mettre à jour le contenu, Wapitis se base sur lit-html qui vous permet d'écrire des modèles HTML en JavaScript à l'aide de template et d'expressions JavaScript intégrées. lit-html identifie les parties statiques et dynamiques de vos modèles afin qu'il puisse mettre à jour efficacement uniquement les parties modifiées.

En utilisant lit-html, Wapitis met à jour le contenu dans des shadow DOM et ajoute une API pour gérer les propriétés et les attributs. Il est alors possible de décider quelles propriétés seront observées et les éléments sont alors mis à jour de façon asynchrone seulement à l'endroit où les propriétés changent ou interagissent avec le contenu.

Une librairie de fonctions est également disponible afin de permettre d'accéder rapidement aux différents éléments du DOM ou du shadow DOM.

Afin de faciliter la diffusion, Wapitis utilise FuseBox pour compiler rapidement des versions de dev ou de prod. Ajoutons à cela l'utilisation d'electron pour concevoir des applications sous forme de client lourd installable et de Capacitor pour créer des applications mobiles sous Android ou IOS, le tout intégré de façon simple et facilement accessible.

L'utilisation des lignes de commandes permet ainsi d'accéder rapidement et facilement à toutes ces fonctions sans avoir besoin de configurer quoi que ce soit.

-----------------------------------------------------

🠺 Disclaimer

Il existe d'autres librairies plus connues ou plus puissantes comme React ou LitElement, alors pourquoi Wapitis ?

Premièrement, de mon côté, cela me permet un contrôle sur tous les élements composants cet outil, qu'il s'agisse de ce que je veux intégrer et de comment cela est codé. D'autre part cela assure que ce qui est inclus est utile.

Enfin il s'agit d'un outil complet de création de WebApp, icluant tout ce qui est nécessaire, avec simplicité.

Afin de gérer correctement l'affichage de lit-html et typescript, j'utilise pour ma part Visual Studio Code avec quelques plugins dont :

Lors de l'installation d'un executable via electron, windows a un avertissement lié à son application smart screen. Les seules solutions pour éviter cette avrtissement sont :

  • signer l'application (ce qui coute de l'argent)
  • ignorer cette alerte
  • désactiver smart screen ;)

TODO :

  • Gestion d'une liaison avec IndexedDB dans le Service Worker pour les données provenant d'une base de données

-----------------------------------------------------

🠺 Features

  • Générer une application web grâce à FuseBox
  • Générer une application electron
  • Intégration de Capacitor permettant de compiler une app android ou ios
  • Mise à jour asynchrone du DOM grâce à lit-html
  • Utilisation possible de jsx via l'import d'un fichier jsx.ts
  • Divers méthodes disponibles grâce à l'import du fichier log.ts, dom.ts, shadowDom.ts et utils.ts
  • Créer vos components et vos classes et générer votre application via des lignes de commande
  • Surcouche des web components à travers une classe de base permettant de simplifier la mise à jour de contenus et l'accessibilité au cycle de vie et aux différentes méthodes
  • Styler et surcharger les styles directement dans les composants
  • Utilisation de SVG pour gérer les icons
  • Pré-intégration d'un service-worker, permettant à la web app de fontionner hors ligne

-----------------------------------------------------

🠺 License

Licensed under MIT.