@enjin/ionic1
Version:
A comprehensive build system for Ionic 1 apps by Madness Labs as part of the Madness Enjin
56 lines (53 loc) • 2.22 kB
JavaScript
const renderToFile = require('../renderToFile');
const capFirstLetter = require('../capFirstLetter');
const stateExists = require('../stateExists');
const addController = require('./controller');
const addRoute = require('./route');
const addResolver = require('./resolver');
module.exports = function(params, callback) {
if (stateExists(params.name)) {
console.log(`${params.name} state already exists!`);
callback();
return false;
}
var data = {name: params.name};
renderToFile(
`${global.enjin.tmplDir}pug/page.pug`,
data,
`${global.enjin.html.srcDir}page/${params.name}.pug`,
function(pugFile) {
renderToFile(
`${global.enjin.tmplDir}scss/page.scss`,
data,
`${global.enjin.css.srcDir}page/${params.name}.scss`,
function(scssFile) {
addController({
name: params.name,
dir: 'page',
dependencies: params.resolves
}, () => {
addRoute({
name: params.name,
url: '/'+params.name,
template: 'html/page/'+params.name+'.html',
controller: capFirstLetter(params.name)+'Controller',
resolver: params.resolves || global.enjin.lazyLoad ? capFirstLetter(params.name)+'Resolver' : false
}, () => {
if (params.resolves || global.enjin.lazyLoad) {
addResolver({
type: 'page',
name: params.name,
resolves: params.resolves
}, callback);
} else {
if (callback && typeof callback === 'function') {
callback();
}
}
});
});
}
);
}
);
};