webdetta

0.1.152 • Public • Published

Webdetta — web application building blocks

Developed by Fedot Kriutchenko.
The library contains a list of 100+ useful functions that accelerated and simplified my work on the last 30+ web-development projects.


Backstory:
The creation of this library was inspired by the frameorc project — a collaborative effort that began in 2015 during a scientific and practical conference in which I participated.

Over the course of more than eight years, we — Michael Lazarev, Anton Baranov, Daniil Terlyakhin, Elnur Yusifov and Fedot Kriutchenko — worked together, exchanging ideas.
The goal was to develop a methodology that would allow a single developer to operate at the speed and efficiency of a multi-person team.
Some of these ideas were eventually published to the frameorc GitHub.

In recent years,
I’ve been polishing and refining these ideas, applying them in practice and preserving the results, in the form of this library.


The library is in active development and is being improved day by day.
Every function in each published module has been used in dozens of real-world production projects.

Modules list

Feature modules

> webdetta/i18n
Internationalization toolkit for translating UI texts.

> webdetta/reactivity
Reactive variables and effects library. Inspired by SolidJS.

> webdetta/realdom
Lightweight DOM wrapper designed for building Single Page Applications.
Works best in combination with the webdetta/reactivity module.

> webdetta/router
History and hash router library for Single Page Applications.

> webdetta/rpc
Remote Procedure Call library for realtime APIs.
Uses msgpackr for encoding and WebSockets as a transport layer.

> webdetta/sdk Deprecated, will be rewritten soon.
Code generation tool for exposing server-defined functions to the client.

> webdetta/server Deprecated, will be removed soon.
ExpressJS wrapper for easier server creation.

> webdetta/state Unfinished, more functions will be added.
State persistency for client and server.

> webdetta/subprocess
child_process syntax sugar — spawns OS processes as promises, allowing for cleaner code.

> webdetta/vcss
Virtual CSS library for generating UI styles at runtime.

> webdetta/vdom Deprecated, will be removed soon, use webdetta/realdom instead
Snabbdom-based Virtual DOM library.

> webdetta/webcomp
Functions for creating Web Components.
Useful for integrating existing web apps with third-party teams that don't use our libraries.


Common modules

A collection of common modules not attributable to any specific submodule.
These modules are used by many of the other modules throught the webdetta library.

> webdetta/common/browserenv
Detection of browser environment type at runtime.

> webdetta/common/builder
Implements expressive, chainable syntax using the builder pattern.

> webdetta/common/context
A flexible way of handling scoped variables.

> webdetta/common/debug
Library debugging module.

> webdetta/common/dom
DOM-specific functions.

> webdetta/common/errors
Functions for handling global uncaught exceptions.

> webdetta/common/jsenv
JavaScript runtime environment detection: browser, node, webworker, jsdom, deno, bun.

> webdetta/common/utils
General-purpose utilities for throttling, memoization, error handling, data formatting and more.


Configuration modules

These modules do not export anything, so just import the module itself for it to take effect.

> webdetta/config/enable-debug
Enables webdetta library debugging/inspection features.
Must not be used in production.

> webdetta/config/enable-http-modules
Enables NodeJS http(s) imports.

> webdetta/config/enable-websockets-node
Enables NodeJS websocket client support.

> webdetta/config/handle-uncaught-errors
Automatically handles global uncaught errors and logs them to console.
Prevents a NodeJS process from exiting on an unhandled promise rejection.


Third party systems integrations

> webdetta/telegram/server
Server-side module for authorizing Telegram Mini Apps users.

> webdetta/telegram/tma
Client-side syntax sugar for the Telegram Web App library.

Readme

Keywords

none

Package Sidebar

Install

npm i webdetta

Weekly Downloads

241

Version

0.1.152

License

MIT

Unpacked Size

163 kB

Total Files

75

Last publish

Collaborators

  • fodya