UNPKG

@lvfarias/fl-cli

Version:
88 lines (75 loc) 3.15 kB
const exec = require('child_process').exec; function generateMain(name, content, path = [], filename = 'main') { return new Promise((resolve, reject) => { const appName = path[0]; const names = String(appName).split('_'); const appNames = []; for (const i in names) { if (names.hasOwnProperty(i)) { const word = names[i]; appNames.push(String(word[0]).toUpperCase() + '' + String(word).split('').slice(1).join('')); } } const realAppName = appNames.join(' '); let realContent = content; realContent = realContent.split('{CLASS_NAME}').join(name); realContent = realContent.split('{APP_NAME}').join(appName); realContent = realContent.split('{REAL_APP_NAME}').join(realAppName); exec(`echo "${realContent}" > ${path.join('/')}/${filename}.dart`, (err, stdout) => { if (err) reject(`error on generate main: ${name}`); setTimeout(() => { resolve(); }, 2000); }); }); } function generatePage(name, content, path = [], filename = 'page') { return new Promise((resolve, reject) => { const appName = path[0]; const pageTitle = String(name[0]).toLocaleUpperCase() + '' + String(name).split('').slice(1).join(''); let realContent = content; realContent = realContent.split('{APP_NAME}').join(appName); realContent = realContent.split('{PATH_NAME}').join(name.toLowerCase()); realContent = realContent.split('{PAGE_TITLE}').join(pageTitle); exec(`echo "${realContent}" > ${path.join('/')}/${filename}.dart`, (err, stdout) => { if (err) reject(`error on generate page ${name}`); setTimeout(() => { resolve(); }, 2000); }); }); } function generateStyle(name, content, path = [], filename = 'style') { return new Promise((resolve, reject) => { const appName = path[0]; let realContent = content; realContent = realContent.split('{APP_NAME}').join(appName); realContent = realContent.split('{CLASS_NAME}').join(name); exec(`echo "${realContent}" > ${path.join('/')}/${filename}.dart`, (err, stdout) => { if (err) reject(`error on generate page ${name}`); setTimeout(() => { resolve(); }, 2000); }); }); } function generateRoute(name, content, path = [], filename = 'route') { return new Promise((resolve, reject) => { const appName = path[0]; let realContent = content; realContent = realContent.split('{CLASS_NAME}').join(name); realContent = realContent.split('{APP_NAME}').join(appName); exec(`echo "${realContent}" > ${path.join('/')}/${filename}.dart`, (err, stdout) => { if (err) reject(`error on generate page ${name}`); setTimeout(() => { resolve(); }, 2000); }); }); } module.exports = { main: generateMain, page: generatePage, style: generateStyle, route: generateRoute, }