@adartem/adlib-utils
v0.1.0
Published
Utilitaires transverses pour AdLib (DOM, parsing d'attributs, helpers, types).
Maintainers
Readme
@adartem/adlib-utils
@adartem/adlib-utils regroupe les utilitaires transverses de la plateforme AdLib.
Ce package fournit des helpers purs et réutilisables, sans dépendance au runtime, au loader ou au navigateur global.
👉 Il n’initialise rien, ne charge rien et n’expose aucune API globale.
🎯 Rôle et périmètre
- Utilitaires DOM
- Guards et helpers de typage
- Parsing et normalisation d’attributs
- Helpers d’environnement (browser / server)
- Fonctions sans effet de bord
❌ Pas de runtime
❌ Pas de loader
❌ Pas d’accès à window.AdLibAttributes
📦 Modules disponibles
La structure exacte peut évoluer, mais le périmètre reste strictement utilitaire.
attributes/
Helpers liés aux attributs HTML ad-*.
- Détection de clés de module (
ad-*) - Normalisation (
ad-*/data-ad-*)
import {
isModuleKey,
normalizeAttributeName,
} from '@adartem/adlib-utils';
isModuleKey('ad-click'); // true
normalizeAttributeName('data-ad-click'); // 'ad-click'dom/
Helpers DOM génériques.
Scan DOM
Collecte des modules déclarés dans un arbre DOM :
import { collectModuleKeysFromDOM } from '@adartem/adlib-utils';
const keys = collectModuleKeysFromDOM(document);
// → ['ad-click', ...]Guards DOM
Helpers de type-safe access :
import { hasQuerySelectorAll } from '@adartem/adlib-utils';
if (hasQuerySelectorAll(root)) {
root.querySelectorAll('*');
}env/
Détection de l’environnement d’exécution.
import { isBrowser, isServer } from '@adartem/adlib-utils';
if (isBrowser()) {
// code navigateur
}guards/
Guards génériques pour sécuriser les accès dynamiques :
- Évite l’usage de
any - Centralise les raffinements de types
- Utilisé massivement par le runtime et le core
strings/, parse/ (selon contenu)
Helpers purs pour :
- Parsing d’options
- Normalisation de chaînes
- Lecture et interprétation d’attributs
Garanties :
- Synchrones
- Sans état
- Sans dépendance externe
🧩 Principes de conception
- Pure functions autant que possible
- Aucun effet de bord
- Réutilisable côté runtime, modules, tests ou tooling
- Compatible navigateur et Node.js
- TypeScript strict
(noImplicitAny,exactOptionalPropertyTypes, etc.)
🧪 Tests & build
pnpm -r --filter @adartem/adlib-utils build
pnpm -r typecheck📦 Distribution
- Package ESM
- Import direct via bundler ou Node.js
- Pas de bundle CDN autonome
(utilisé indirectement par les autres packages)
🪪 Licence
MIT © ADARTEM
