yahoo / yahoo/serialize-javascript
feat: option to inject code verbatim
Nessuno ha ancora preso questa issue.
- Lingua principale
- JavaScript
- Stelle
- 2.9k
- Fork
- 215
- Merge medio
- 1g 12h
- PR unite (30g)
- 2
Descrizione
It would be handy for a use case I have for this package to support a feature that could inject code verbatim if it appears in a JavaScript object.
To implement, we could use (A) a special object constructor, (B) a special property on a string, or (C) a tagged template literal returning some special value, which would allow us to detect such cases in the serialization code.
A:
const object = {
customCode: serialize.verbatim('window.navigator.userAgent')
};
B:
const customCode = 'window.navigator.userAgent';
customCode.verbatim = true;
const object = {
customCode
};
C:
const customCode = serialize.verbatim`window.navigator.userAgent`;
const object = {
customCode
};
I tried a hack similar to https://github.com/yahoo/serialize-javascript/issues/32#issuecomment-350184098 using a function as a value and overriding its toString method, but it didn't work since I can't include ( in the code without it being rewritten as part of the function serialization.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia esaminando il codice di serializzazione del package per capire come vengono attualmente convertiti i valori degli oggetti JavaScript e dove vengono riscritte le stringhe delle funzioni. Decidi come rappresentare e rilevare il valore proposto verbatim, quindi verifica che il codice iniettato rimanga invariato mentre i valori ordinari mantengono il comportamento di serializzazione esistente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- javascript
- Ambito
- tooling
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 30/100