Version 3.1.0 is not working in React-Native when is not in debugging mode or when is generating release
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 45/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- javascript, react-native
- Domínio
- mobile
Direção de pesquisa
Comece reproduzindo o erro relatado em um build de release do React-Native com serialize-javascript 3.1.0 e, em seguida, compare seu comportamento com o da versão 3.0.0. Rastreie a origem do erro na geração de números aleatórios seguros e confirme o resultado com uma execução do React-Native sem depuração; considera-se concluído quando a serialização funciona sem o depurador.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Hello, I'm using serialize-javascript in React-Native instead of JSON.stringify function. The version 3.1.0 is not working in React-Native when the debugger is off or in the release apk (because there is no debugger).
The issue is:
Error: Secure random number generation is not supported by this browser. Use Chrome, Firefox or Internet Explorer 11.
Reproduce:
- In React-Native project install with npm, npx or yarn the package serialize-javascript.
- Create a serialize function:
import serializeJs from 'serialize-javascript';
...
const clearArrayUndefinedValues = (array) => {
try {
if (!Array.isArray(array))
throw new Error('Invalid argument. Must be an array.');
const filteredArr = array.reduce((arr, current) => {
if (typeof current === 'object' && current !== null) {
if (Array.isArray(current))
return [...arr, clearArrayUndefinedValues(current)];
// eslint-disable-next-line no-use-before-define
return [...arr, clearObjectUndefinedValues(current)];
} else if (current !== undefined) return [...arr, current];
return arr;
}, []);
return filteredArr;
} catch (error) {
console.log(
'##\t Error log in clearArrayUndefinedValues on app/shared/utils.js ->',
error
);
return null;
}
};
const clearObjectUndefinedValues = (object) => {
try {
if (typeof object !== 'object')
throw new Error('Invalid argument. Must be an object.');
if (object === null) throw new Error('Invalid argument. Must not be null.');
const filtered = Object.keys(object).reduce((obj, key) => {
const { [key]: current } = object;
if (typeof current === 'object' && current !== null) {
if (Array.isArray(current))
return { ...obj, [key]: clearArrayUndefinedValues(current) };
return { ...obj, [key]: clearObjectUndefinedValues(current) };
} else if (current !== undefined) return { ...obj, [key]: current };
return obj;
}, {});
return filtered;
} catch (error) {
console.log(
'##\t Error log in clearObjectUndefinedValues on app/shared/utils.js ->',
error
);
return null;
}
};
export const serialize = (object) => {
try {
if (typeof object !== 'object')
throw new Error('Invalid argument. Must be an object.');
if (object === null) throw new Error('Invalid argument. Must not be null.');
if (Array.isArray(object))
return serializeJs(clearArrayUndefinedValues(object));
return serializeJs(clearObjectUndefinedValues(object));
} catch (error) {
console.log('##\t Error log in serialize on app/shared/utils.js ->', error);
return null;
}
};
- Use a serialize function in any place of your code:
import { serialize } from '../shared/utils';
...
const JSONToObject = serialize(data);
My set is:
MacOs 10.15.5
i7 2.2Ghz
16GB
Running app in simulators:
iPhone 11 os 13.5
Pixel 3 os Android API 29.
Chrome version:
83.0.4103.61 64 bits
The previous version (3.0.0) working well. There are a prevision/way to fix this to work without debugger?
- 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
-
[dsh-plugin.org | dsh-plugin-hub] plugin distribution incomplete: yjh051108/dsh-routing-suiteAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 71/100
yjh051108/dsh-routing-suite#227 ·
-
needs-triage release-watch
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 76/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
dusk-network/exu#17 ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
jspreadsheet/ce#1809 ·
-
documentation
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 91/100
githubnext/gh-aw-workshop#4458 ·
Mantenedores costumam responder em até 1 dia