feat: option to inject code verbatim
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 30/100
- Tipo de issue
- Funcionalidade
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- javascript
- Domínio
- tooling
Direção de pesquisa
Comece revisando o código de serialização do pacote para entender como os valores de objetos JavaScript são convertidos atualmente e onde as strings de função são reescritas. Decida como o valor proposto verbatim deve ser representado e detectado e, em seguida, verifique se o código injetado permanece inalterado enquanto os valores comuns mantêm o comportamento de serialização existente.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- JavaScript
- Estrelas
- 2.9k
- Forks
- 214
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de yahoo/serialize-javascript
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 72/100
yahoo/serialize-javascript#230 ·
-
Ad java scriptAberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 20/100
yahoo/serialize-javascript#212 · 1 comentário ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
yahoo/serialize-javascript#208 · 10 comentários · 25 reações ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
yahoo/serialize-javascript#195 ·
-
Serialize regexp to literalAberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
yahoo/serialize-javascript#182 ·
Todas as issues de yahoo/serialize-javascript
Issues semelhantes
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
-
[quality] Nothing keeps docs/skills/manifest.md in sync with docs/skills/*.mdTalvez já em andamento @hivecommons-hive assumiu hoje. Abertaagent/quality hive/covered-by-pr hive/hosted-available-lke648397-260827-5n31 quality testing
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
apache/rocketmq-dashboard#6610 ·
Mantenedores costumam responder em até 3 dias
-
documentation
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 95/100
githubnext/gh-aw-workshop#4535 ·
Mantenedores costumam responder em até 1 dia
-
Global update drops overrideAccess, so Local API updateGlobal fails filterOptions validation (3.90 regression)Talvez já em andamento @PINYOPATTANAWASANPORN assumiu hoje. Abertaarea: core Bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
payloadcms/payload#18674 · 1 comentário ·
Mantenedores costumam responder em até 1 dia