FujoWebDev / FujoWebDev/fujocoded-plugins

Add option to preserve username case in zod-transform-socials (GitHub/Twitter/AO3)

Ouverte
#49 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
zod-transform-socials
Langage dominant
TypeScript
Étoiles
30
Forks
7
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

`zod-transform-socials` lower-cases the whole URL before matching, which means usernames are also lower-cased for services that preserve case. For example, `github.com/FujoWebDev/AO3.js` is reported as `fujowebdev/ao3.js`.

Lower-casing is needed for host detection (so `BSKY.APP` matches `bsky.app`), but it should not apply to the username (or at least, it should be an option not to apply it).

Among services affected:

- GitHub— org and repo names preserve case.
- Twitter/X — handle display preserves case.
- AO3 — usernames and pseuds preserve case.
- NPM is affected in that older package names could be uppercase/lowercase, but now they're all lowercase. With that said, the install is case sensitive.

This changes observable output, so it is a breaking change. We could mitigate it by adding a `preserveCase` setting and/or a `canonicalCase` option for known addresses that one may want to keep consistent. We could also consider exporting convenience methods like "`isSameProfile`".

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par localiser l’implémentation de zod-transform-socials et retracer l’endroit où l’URL complète est convertie en minuscules avant la mise en correspondance avec le service. Comparez le traitement nécessaire pour GitHub, Twitter/X, AO3 et NPM, puis déterminez si la modification doit utiliser preserveCase, canonicalCase ou les deux. La tâche est considérée comme terminée lorsque la détection de l’hôte reste insensible à la casse, tandis que les noms d’utilisateur et les chemins pris en charge conservent la casse prévue, et que la sortie observable ainsi que le comportement en cas de changement incompatible sont documentés.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
typescript
Domaine
tooling
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
48/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.