// let fs = require('fs');
// let path = require('path');
// var reactDocs = require('react-docgen');

// // let TEXT = fs.readFileSync('../../node_modules/native-base/src/basic/Button.js');

// // var componentInfo = reactDocs.parse(TEXT);
// // console.log("NativeBaseCI", componentInfo);







// //joining path of directory 
// const directoryPath = "../../node_modules/native-base/src/basic/";
// //passsing directoryPath and callback function
// fs.readdir(directoryPath, function (err, files) {
//     //handling error
//     if (err) {
//         return console.log('Unable to scan directory: ' + err);
//     }
    
//     let Infos = [];

//     //listing all files using forEach
//     files.forEach(function (file, index) {
//         // Do whatever you want to do with the file
//         if(!file.endsWith('.js') || file.includes('.android') || file.includes('.ios')) return;
//         console.log("No. " + index +" : ", file);
        
//         let content = fs.readFileSync(directoryPath + file);
//         try{
//         	let info = reactDocs.parse(content);
//         	info.componentName = file.replace('.js', '');
//         	Infos.push(info);
//     	} catch(e) {
//     		console.log("Error");
//     		console.log(e);
//     	}
//     });

//     let fileText = generateFile(Infos);
//     fs.writeFileSync('./index.js', fileText);
// });


// function generateFile(Infos) {
// 	    let headers = `
// import React from 'react';
// import Types from '../../lib/Types';
// import Module from '../../lib/Module';\n`;

//     let IM = [],
//     	EX = [],
//     	PROPS = [],
//     	Names = [];
//     Infos.forEach((info) => {
//        	let { im, ex, props} = createClass(info);
//        	Names.push(info.componentName);
//     	IM.push(im);
//     	EX.push(ex);
//     	PROPS.push(props);
//     })
//     return headers + "\n\n" + 
//     IM.join('\n')  + "\n\n" +
//     EX.join('\n')  + "\n\n" +
//     PROPS.join('\n')+"\n\n" +
//     `export default { \n\t${Names.join(',\n\t')} \n}`;
// }

// function createClass(item) {
// 	let name = item.componentName;
// 	let props = generatePropsText(item.props);
// 	let s = `export class ${name} extends Module {
// 	constructor(props) {
// 		super(props);
// 	}
// 	display() {
// 		return <${name+'Ctor'} {...this.props} />
// 	}
// }`;
// 	let propsText = `${name}.Inputs = ${props}`;

// 	return {
// 		im: `import { ${name} as ${name+'Ctor'} } from 'native-base';`,
// 		ex: s,
// 		props: propsText
// 	}
// }

// function generatePropsText(props) {
// 	let Props = [];
// 	for(var name in props) {
// 		let p = props[name];
// 		let validator;
// 		switch(p.type && p.type.name) {
// 			case 'number':
// 				validator = "new Types.Real()"
// 				break;
// 			case 'string':
// 				validator = "new Types.Text()"
// 				break;
// 			case 'bool':
// 				validator = "new Types.Bool()"
// 				break;
// 			default: 
// 				console.log("Style type for ", name , p.type);
// 				continue;
// 				break;
// 		}
// 		if(p.required) validator += ".require()"
// 		if(p.defaultValue) validator += `.default(${p.defaultValue.value})`
// 		let s = `${name}: ${validator}`;
// 		Props.push(s);
// 	}
// 	return `{
// 	${Props.join(',\n\t')}
// }`;
// }