FujoWebDev / FujoWebDev/fujocoded-plugins
Add option to preserve username case in zod-transform-socials (GitHub/Twitter/AO3)
- 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