react-generate-comp
Version:
Generate React components in current execute directory by typing with CLI.
55 lines (51 loc) • 1.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.genUseState = exports.genComponents = void 0;
const bigSmallLetter_1 = require("./bigSmallLetter");
function generateReact(inputName = '', lang = 'Typescript') {
const [compNameUpper, _] = (0, bigSmallLetter_1.strToSmallAndBig)(inputName);
const demoCode = `${lang === 'Typescript' ? `type ${compNameUpper}Props = {\n data?: any;\n}\n` : ``}
function ${compNameUpper}({ data }${lang === 'Typescript' ? `: ${compNameUpper}Props` : ''}){
return (
<>
<h1>Hello ${compNameUpper}</h1>
</>
)
}
export default ${compNameUpper}
`;
return demoCode;
}
function generateReactNative(inputName = '', lang = 'Typescript') {
const [compNameUpper, _] = (0, bigSmallLetter_1.strToSmallAndBig)(inputName);
const demoCode = `import React from 'react';
import { Text } from 'react-native';
${lang === 'Typescript' ? `type ${compNameUpper}Props = {\n data?: any;\n}\n` : ``}
function ${compNameUpper}({ data }${lang === 'Typescript' ? `: ${compNameUpper}Props` : ''}){
return (
<>
<Text>Hello ${compNameUpper}</Text>
</>
)
}
export default ${compNameUpper}
`;
return demoCode;
}
function genComponents(inputName = '', lang = 'Typescript', isNative = false) {
return isNative
? generateReactNative(inputName, lang)
: generateReact(inputName, lang);
}
exports.genComponents = genComponents;
function genUseState(inputName = '', lang = 'Typescript') {
const [bigLetterStr, lowLetterStr] = (0, bigSmallLetter_1.strToSmallAndBig)(inputName);
const demoCode = `
const [ ${lowLetterStr}, set${bigLetterStr} ] = useState${lang === 'Typescript' ? '<any>' : ''}("");
useEffect( () => {
console.log(${lowLetterStr});
},[${lowLetterStr}]);
`;
return demoCode;
}
exports.genUseState = genUseState;