UNPKG

generator-svalter

Version:

Generator to help you create and manage svelte/sapper application

93 lines (73 loc) 2.84 kB
'use strict'; module.exports = class Configurator { saveConfigurationsFromInputs(generator) { generator.config.set('project-type', this._getProjectType(generator)); generator.config.set('project-name', this._getProjectName(generator)); generator.config.set('support-preprocessors', this._getSupportPreprocessors(generator)); generator.config.set('css-reset', this._getCSSReset(generator)); } _getProjectType(generator) { if (generator.options.svelte) { return 'svelte'; } if (generator.options.sapper) { return 'sapper'; } if (generator.options.library) { return 'library'; } return generator.answers['project-type']; } _getProjectName(generator) { if (generator.options.appname) { return generator.options.appname; } return generator.answers['project-name']; } _getSupportTypeScript(generator) { if (generator.options.typescript != null) { return generator.options.typescript; } return generator.answers['support-typescript']; } _getSupportPreprocessors(generator) { const answs = generator.answers['support-preprocessors']; const options = generator.options; const supported = []; if (options['typescript'] === true || (answs != null && answs.includes('typescript'))) { supported.push('typescript'); } if (options['sass'] === true || (answs != null && answs.includes('sass'))) { supported.push('sass'); } if (options['style-separation'] === true || (answs != null && answs.includes('style-separation'))) { supported.push('style-separation'); } if (options['script-separation'] === true || (answs != null && answs.includes('script-separation'))) { supported.push('script-separation'); } return supported; } _getCSSReset(generator) { if (!this._supportsCssReset(generator)) { return 'none'; } let opt = generator.options['css-reset']; if (opt != null) { opt = opt.toLowerCase(); if (opt === 'meyer_reset' || opt === 'normalize' || opt === 'sanitize') { return opt; } return 'none'; } return generator.answers['css-reset']; } _supportsCssReset(generator) { return ( generator.options['sapper'] === true || generator.options['svelte'] === true || 'sapper' === generator.answers['project-type'] || 'svelte' === generator.answers['project-type'] ); } };