framework7-cli
Version:
Framework7 command line utility (CLI)
94 lines (90 loc) • 2.43 kB
JavaScript
const indent = require('../utils/indent');
const templateIf = require('../utils/template-if');
module.exports = (options) => {
const { type, framework, name, bundler, theming } = options;
const hasCordova = type.indexOf('cordova') >= 0;
const hasCapacitor = type.indexOf('capacitor') >= 0;
// prettier-ignore
return indent(
0,
`
name: '${name}', // App name
theme: 'auto', // Automatic theme detection
${templateIf(theming.customColor, () => `
colors: {
primary: '${theming.color}',
},
`)}
${templateIf(theming.darkMode, () => `
darkMode: true,
`)}
${templateIf(framework === 'core', () => `
el: '#app', // App root element
`)}
${templateIf(framework === 'core' && bundler, () => `
component: App, // App main component
`)}
// App store
store: store,
// App routes
routes: routes,
${templateIf(type.indexOf('pwa') >= 0 && !bundler, () => `
// Register service worker
serviceWorker: {
path: '/service-worker.js',
},
`)}
${templateIf(type.indexOf('pwa') >= 0 && bundler, () => `
// Register service worker (only on production build)
serviceWorker: process.env.NODE_ENV ==='production' ? {
path: '/service-worker.js',
} : {},
`)}
${templateIf(hasCapacitor, () => `
// Input settings
input: {
scrollIntoViewOnFocus: device.capacitor,
scrollIntoViewCentered: device.capacitor,
},
// Capacitor Statusbar settings
statusbar: {
iosOverlaysWebView: true,
androidOverlaysWebView: false,
},
${templateIf(framework === 'core',() => `
on: {
init: function () {
var f7 = this;
if (f7.device.capacitor) {
// Init capacitor APIs (see capacitor-app.js)
capacitorApp.init(f7);
}
},
},
`)}
`)}
${templateIf(hasCordova, () => `
// Input settings
input: {
scrollIntoViewOnFocus: device.cordova,
scrollIntoViewCentered: device.cordova,
},
// Cordova Statusbar settings
statusbar: {
iosOverlaysWebView: true,
androidOverlaysWebView: false,
},
${templateIf(framework === 'core', () => `
on: {
init: function () {
var f7 = this;
if (f7.device.cordova) {
// Init cordova APIs (see cordova-app.js)
cordovaApp.init(f7);
}
},
},`)}
`)}
`,
).trim();
};