11import { forwardRef } from 'react' ;
2- import { XMLParser , X2jOptionsOptional } from 'fast-xml-parser' ;
2+ import { XMLParser , X2jOptions } from 'fast-xml-parser' ;
33
44export interface IFileInfo {
55 name : string ;
@@ -11,13 +11,13 @@ export interface IFileInfo {
1111export interface XMLReaderProps extends Omit < React . InputHTMLAttributes < HTMLInputElement > , 'onError' > {
1212 strict ?: boolean ;
1313 encoding ?: string ;
14- parserOptions ?: X2jOptionsOptional ;
14+ parserOptions ?: X2jOptions ;
1515 onError ?: ( error : Error ) => void ;
1616 onFileLoaded : ( data : any , fileInfo : IFileInfo , originalFile : File , text : string ) => void ;
1717}
1818
1919const XMLReader = forwardRef < HTMLInputElement , XMLReaderProps > ( ( props , ref ) => {
20- const {
20+ const {
2121 accept = '.xml, text/xml' ,
2222 encoding = 'UTF-8' ,
2323 onError = ( ) => { } ,
@@ -29,33 +29,33 @@ const XMLReader = forwardRef<HTMLInputElement, XMLReaderProps>((props, ref) => {
2929 } = props ;
3030 const handleChangeFile = ( event : React . ChangeEvent < HTMLInputElement > ) => {
3131 onChange && onChange ( event ) ;
32- let reader : FileReader = new FileReader ( )
33- const files : FileList = event . target . files !
32+ let reader : FileReader = new FileReader ( ) ;
33+ const files : FileList = event . target . files ! ;
3434 if ( files . length > 0 ) {
3535 const fileInfo : IFileInfo = {
3636 name : files [ 0 ] . name ,
3737 size : files [ 0 ] . size ,
3838 type : files [ 0 ] . type ,
3939 modifiedAt : files [ 0 ] . lastModified ,
40- }
40+ } ;
4141
4242 if ( strict && accept . indexOf ( fileInfo . type ) <= 0 ) {
43- onError ( new Error ( `[strict mode] Accept type not respected: got '${ fileInfo . type } ' but not in '${ accept } '` ) )
44- return
43+ onError ( new Error ( `[strict mode] Accept type not respected: got '${ fileInfo . type } ' but not in '${ accept } '` ) ) ;
44+ return ;
4545 }
4646
4747 reader . onload = ( _event : Event ) => {
4848 const parser = new XMLParser ( parserOptions ) ;
4949 const xmlData = parser . parse ( reader . result as string ) ;
5050 onFileLoaded && onFileLoaded ( xmlData || { } , fileInfo , files [ 0 ] , reader . result as string ) ;
51- }
51+ } ;
5252
53- reader . readAsText ( files [ 0 ] , encoding )
53+ reader . readAsText ( files [ 0 ] , encoding ) ;
5454 }
55- }
55+ } ;
5656 return (
5757 < input type = "file" name = "w-xml-reader-input" { ...reset } onChange = { handleChangeFile } accept = { accept } ref = { ref } />
5858 ) ;
5959} ) ;
6060
61- export default XMLReader ;
61+ export default XMLReader ;
0 commit comments