UNPKG

framework7-cli

Version:
94 lines (90 loc) 2.43 kB
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(); };