Instascan: рд╢реВрдиреНрдп рдХреА рд╕рдВрдкрддреНрддрд┐ 'рд╕реНрд▓рд╛рдЗрд╕' рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛ (рд░рд┐рдПрдХреНрдЯ рдРрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 11 рдЬреВрди 2018  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: schmich/instascan

instascan рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИ:

рд▓реЗрдЦрди рддреНрд░реБрдЯрд┐: рдирд▓ рдХреА рд╕рдВрдкрддреНрддрд┐ 'рдЯреБрдХрдбрд╝рд╛' рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛
рдкрд╛рд░реНрд╕рдЬреЗрдПрд╕рдПрдлрдПрдирд╕реА
рдиреЛрдб_рдореЙрдбреНрдпреВрд▓/рдЗрдВрд╕реНрдЯрд╛рд╕реНрдХреИрди/src/zxing.js:4

рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреНрд░рд┐рдПрдЯ рд░рд┐рдПрдХреНрдЯ рдРрдк 2 рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рдЧрдП рд╣реИрдВред CRA2 рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрд▓реНрдлрд╛ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдпрдерд╛ рдмрд╣реБрдд рд╕реНрдерд┐рд░ рд╣реИ рдФрд░ instascan рдкрд╣рд▓реА рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦреА рд╣реИ рдЬреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рд╢рд╛рдпрдж рд╕рдорд╕реНрдпрд╛ instascan ред

рдореИрдВрдиреЗ рдореВрд▓ рд░реВрдк рд╕реЗ react-instascan (rubenspgcavalcante/react-instascan/issues/9) рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреА рд╕реВрдЪрдирд╛ рджреА рдереА, рд▓реЗрдХрд┐рди рд▓реЗрдЦрдХ рдиреЗ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдФрд░ рдорд╛рдирд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ instascan ред

рдореИрдВрдиреЗ рдПрдХ рднрдВрдбрд╛рд░ рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ:
https://github.com/lnhrdt/react-instascan-error

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП @karenjwap рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ред
рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ ZXing Java рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ C++ рдкреЛрд░реНрдЯ рдХреЗ Emscripten JavaScript рдмрд┐рд▓реНрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рд╡рд╛рд▓рд╛ рдирдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рдлрд┐рд░ рдЙрдирдХреЗ рддрд░реНрдХреЛрдВ, рд╢рд░реАрд░ рдФрд░ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд░реЗрдЧреЗрдХреНрд╕ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдирд╛рдорд╣реАрди рдлрд╝рдВрдХреНрд╢рди рдкрд╛рд╕ рд╣реЛрддреЗ рд╣реИрдВред

tldr рд╡реИрд╕реЗ рднреА, рдпрд╣рд╛рдБ рд╕рдорд╛рдзрд╛рди рд╣реИ:

sourceRegex рдмрд┐рдЯ рдХреЛ рдирд┐рдореНрди рд░реЗрдЧреЗрдХреНрд╕ рд╕реЗ рдмрджрд▓реЗрдВ:

/^function[^\(]*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/

рдпрд╛ рдмрд╕ рдПрдХ рдХрд╛рдВрдЯрд╛ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ:
https://github.com/CrowdReactive/instascan

рд╕рднреА 7 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдирдорд╕реНрддреЗ, рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдПред @lnhrdt рд╕реЗ create-react-app рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрджрд┐ рдЖрдк рд╕рдВрдкреВрд░реНрдг index.js рдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджреЗрддреЗ рд╣реИрдВ...

import {Camera} from "instascan";
Camera.getCameras().then(cameras => console.log(cameras));

...рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред
рдореИрдВрдиреЗ рдЬреЛ рджреЗрдЦрд╛ рд╡рд╣ рдХреЛрдб рдореЗрдВ рдЙрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЖрдВрддрд░рд┐рдХ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдореЗрдВ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдиреЛрдЯ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ zxing рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдорд┐рдирд┐рдлрд╛рдЗрдб) рд╕реАрдзреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИ рди рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ (рдХреНрдпрд╛ рдпрд╣ рдмрдВрдбрд▓ рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдЖрдИ рд╣реИ?)
рд╡реИрд╕реЗ рднреА рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж npm/рдпрд╛рд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрд╕ рдкреИрдХреЗрдЬ рдХреЛ рдЬреЛрдбрд╝ рджреЗрдВ рдФрд░ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ umd рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдореИрдВ

рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @rubenspgcavalcante!

рдореИрдВрдиреЗ react-instascan рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рд░реЗрдкреЛ рдХреЛ рдЕрднреА рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд░реВрдмреЗрдиреНрд╕ рдиреЗ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ, рдХреЗрд╡рд▓ instascan рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреНрд░реБрдЯрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

https://github.com/lnhrdt/react-instascan-error

@lnhrdt , рд╢рд╛рдпрдж рдпрд╣ рднреА рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ #121
рддреНрд░реБрдЯрд┐ рдЕрд▓рдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрднреА рднреА рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рдореЙрдбреНрдпреВрд▓ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╣реИ

рдЕрдЪреНрдЫреА рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ @rubenspgcavalcante , рд╕рдВрднрд╛рд╡рдирд╛ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред рдЗрдВрд╕реНрдЯрд╛рд╕реНрдХреИрди рд▓реЗрдЦрдХ рдиреЗ рдЕрднреА рддрдХ рдЙрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ рднрд╛рдЧ рдирд╣реАрдВ рд▓рд┐рдпрд╛ рд╣реИред @schmich рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рд╣реИ (рдЬреЛ #121 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИ)? рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рдпрд╣рд╛рдБ рд╕рд╣рд╛рдпрдХ рд╣реЛрдВрдЧреЗ!

рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рддреНрд░реБрдЯрд┐ рдЖрддреА рд╣реИред

zxing.js рдореЗрдВ, рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
var sourceRegex=/^function\s (([^)] ))\s {\s ([^ ] ?)[\s;] (?:return\s (. ?)[;\s] )?} $/;

рджреНрд╡рд╛рд░рд╛:
var sourceRegex=/^function\s \S (([^)] ))\s {\s ([^ ] ?)[\s;] (?:return\s (. ?)[;\s]* )?}$/;

рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

+1

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП @karenjwap рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ред
рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ ZXing Java рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ C++ рдкреЛрд░реНрдЯ рдХреЗ Emscripten JavaScript рдмрд┐рд▓реНрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рд╡рд╛рд▓рд╛ рдирдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рдлрд┐рд░ рдЙрдирдХреЗ рддрд░реНрдХреЛрдВ, рд╢рд░реАрд░ рдФрд░ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд░реЗрдЧреЗрдХреНрд╕ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдирд╛рдорд╣реАрди рдлрд╝рдВрдХреНрд╢рди рдкрд╛рд╕ рд╣реЛрддреЗ рд╣реИрдВред

tldr рд╡реИрд╕реЗ рднреА, рдпрд╣рд╛рдБ рд╕рдорд╛рдзрд╛рди рд╣реИ:

sourceRegex рдмрд┐рдЯ рдХреЛ рдирд┐рдореНрди рд░реЗрдЧреЗрдХреНрд╕ рд╕реЗ рдмрджрд▓реЗрдВ:

/^function[^\(]*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/

рдпрд╛ рдмрд╕ рдПрдХ рдХрд╛рдВрдЯрд╛ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ:
https://github.com/CrowdReactive/instascan

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

bm2112 picture bm2112  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

harshad5498 picture harshad5498  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

AL-Kateb picture AL-Kateb  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

deadmanwalking74 picture deadmanwalking74  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

igun997 picture igun997  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ