@lvfarias/fl-cli
Version:
Flutter CLI
88 lines (75 loc) • 3.15 kB
JavaScript
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,
}