From 8b433c6a31b58e3a7e09ef151db8617bb566ef27 Mon Sep 17 00:00:00 2001 From: Dexter Marks-Barber Date: Sun, 13 Sep 2020 21:43:52 +0100 Subject: [PATCH 1/3] Add --future flag to CLI --- __tests__/cli.test.js | 11 +++++++++++ src/cli/commands/init.js | 29 ++++++++++++++++++++++++++--- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/__tests__/cli.test.js b/__tests__/cli.test.js index 099c9017c9d4..e6602f45bd58 100644 --- a/__tests__/cli.test.js +++ b/__tests__/cli.test.js @@ -4,6 +4,7 @@ import cli from '../src/cli/main' import * as constants from '../src/constants' import * as utils from '../src/cli/utils' import runInTempDirectory from '../jest/runInTempDirectory' +import featureFlags from '../src/featureFlags' describe('cli', () => { const inputCssPath = path.resolve(__dirname, 'fixtures/tailwind-input.css') @@ -94,5 +95,15 @@ describe('cli', () => { expect(process.stdout.write.mock.calls[0][0]).not.toContain('-ms-input-placeholder') }) }) + + it('creates a Tailwind config file with future flags', () => { + return runInTempDirectory(() => { + return cli(['init']).then(() => { + featureFlags.future.forEach(flag => { + expect(utils.readFile(constants.defaultConfigFile)).toContain(`${flag}: true`) + }) + }) + }) + }) }) }) diff --git a/src/cli/commands/init.js b/src/cli/commands/init.js index e85c7c6947f6..b253fabc8944 100644 --- a/src/cli/commands/init.js +++ b/src/cli/commands/init.js @@ -17,11 +17,16 @@ export const options = [ usage: '-p', description: 'Generate postcss.config.js file.', }, + { + usage: '--future', + description: 'Add enable future flags within simple config stub', + }, ] export const optionMap = { full: ['full'], postcss: ['p'], + future: ['future'], } /** @@ -35,15 +40,33 @@ export function run(cliParams, cliOptions) { return new Promise(resolve => { utils.header() - const full = cliOptions.full const file = cliParams[0] || constants.defaultConfigFile const simplePath = utils.getSimplePath(file) utils.exists(file) && utils.die(colors.file(simplePath), 'already exists.') - const stubFile = full ? constants.defaultConfigStubFile : constants.simpleConfigStubFile + const stubFile = cliOptions.full + ? constants.defaultConfigStubFile + : constants.simpleConfigStubFile + + if (!cliOptions.future) { + utils.copyFile(stubFile, file) + } else { + const config = require(stubFile) + const { future: flags } = require('../../featureFlags').default - utils.copyFile(stubFile, file) + flags.forEach(flag => { + config.future[flag] = true + }) + + utils.writeFile( + file, + `module.exports = ${JSON.stringify(config, null, 2).replace(/"([^"]+)":/g, '$1:')}\n` + ) + utils.footer() + resolve() + return + } utils.log() utils.log(emoji.yes, 'Created Tailwind config file:', colors.file(simplePath)) From b53caa8bdb0776a9b0447af68b109bac46c7d164 Mon Sep 17 00:00:00 2001 From: Dexter Marks-Barber Date: Sun, 13 Sep 2020 21:48:17 +0100 Subject: [PATCH 2/3] Remove early exit --- src/cli/commands/init.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/cli/commands/init.js b/src/cli/commands/init.js index b253fabc8944..3fbee95f8cfd 100644 --- a/src/cli/commands/init.js +++ b/src/cli/commands/init.js @@ -63,9 +63,6 @@ export function run(cliParams, cliOptions) { file, `module.exports = ${JSON.stringify(config, null, 2).replace(/"([^"]+)":/g, '$1:')}\n` ) - utils.footer() - resolve() - return } utils.log() From f95a0b47ac412f19991d9905999f5bc7e39de0b1 Mon Sep 17 00:00:00 2001 From: Dexter Marks-Barber Date: Tue, 15 Sep 2020 09:53:27 +0100 Subject: [PATCH 3/3] Always add future flags but commented out - Update replace regex - Remove future CLI flag - Update tests --- __tests__/cli.test.js | 8 +++----- src/cli/commands/init.js | 27 +++++++++------------------ stubs/defaultConfig.stub.js | 5 +---- stubs/simpleConfig.stub.js | 5 +---- 4 files changed, 14 insertions(+), 31 deletions(-) diff --git a/__tests__/cli.test.js b/__tests__/cli.test.js index e6602f45bd58..96c2fd9a11f7 100644 --- a/__tests__/cli.test.js +++ b/__tests__/cli.test.js @@ -9,8 +9,6 @@ import featureFlags from '../src/featureFlags' describe('cli', () => { const inputCssPath = path.resolve(__dirname, 'fixtures/tailwind-input.css') const customConfigPath = path.resolve(__dirname, 'fixtures/custom-config.js') - const defaultConfigFixture = utils.readFile(constants.defaultConfigStubFile) - const simpleConfigFixture = utils.readFile(constants.simpleConfigStubFile) const defaultPostCssConfigFixture = utils.readFile(constants.defaultPostCssConfigStubFile) beforeEach(() => { @@ -22,7 +20,7 @@ describe('cli', () => { it('creates a Tailwind config file', () => { return runInTempDirectory(() => { return cli(['init']).then(() => { - expect(utils.readFile(constants.defaultConfigFile)).toEqual(simpleConfigFixture) + expect(utils.exists(constants.defaultConfigFile)).toEqual(true) }) }) }) @@ -30,7 +28,7 @@ describe('cli', () => { it('creates a Tailwind config file and a postcss.config.js file', () => { return runInTempDirectory(() => { return cli(['init', '-p']).then(() => { - expect(utils.readFile(constants.defaultConfigFile)).toEqual(simpleConfigFixture) + expect(utils.exists(constants.defaultConfigFile)).toEqual(true) expect(utils.readFile(constants.defaultPostCssConfigFile)).toEqual( defaultPostCssConfigFixture ) @@ -41,7 +39,7 @@ describe('cli', () => { it('creates a full Tailwind config file', () => { return runInTempDirectory(() => { return cli(['init', '--full']).then(() => { - expect(utils.readFile(constants.defaultConfigFile)).toEqual(defaultConfigFixture) + expect(utils.exists(constants.defaultConfigFile)).toEqual(true) }) }) }) diff --git a/src/cli/commands/init.js b/src/cli/commands/init.js index 3fbee95f8cfd..b4332f2d5806 100644 --- a/src/cli/commands/init.js +++ b/src/cli/commands/init.js @@ -17,16 +17,11 @@ export const options = [ usage: '-p', description: 'Generate postcss.config.js file.', }, - { - usage: '--future', - description: 'Add enable future flags within simple config stub', - }, ] export const optionMap = { full: ['full'], postcss: ['p'], - future: ['future'], } /** @@ -49,21 +44,17 @@ export function run(cliParams, cliOptions) { ? constants.defaultConfigStubFile : constants.simpleConfigStubFile - if (!cliOptions.future) { - utils.copyFile(stubFile, file) - } else { - const config = require(stubFile) - const { future: flags } = require('../../featureFlags').default + const config = require(stubFile) + const { future: flags } = require('../../featureFlags').default - flags.forEach(flag => { - config.future[flag] = true - }) + flags.forEach(flag => { + config.future[`// ${flag}`] = true + }) - utils.writeFile( - file, - `module.exports = ${JSON.stringify(config, null, 2).replace(/"([^"]+)":/g, '$1:')}\n` - ) - } + utils.writeFile( + file, + `module.exports = ${JSON.stringify(config, null, 2).replace(/"([^-_\d"]+)":/g, '$1:')}\n` + ) utils.log() utils.log(emoji.yes, 'Created Tailwind config file:', colors.file(simplePath)) diff --git a/stubs/defaultConfig.stub.js b/stubs/defaultConfig.stub.js index 6ce6e2066d45..d4f7cae2e517 100644 --- a/stubs/defaultConfig.stub.js +++ b/stubs/defaultConfig.stub.js @@ -1,8 +1,5 @@ module.exports = { - future: { - // removeDeprecatedGapUtilities: true, - // purgeLayersByDefault: true, - }, + future: {}, purge: [], target: 'relaxed', prefix: '', diff --git a/stubs/simpleConfig.stub.js b/stubs/simpleConfig.stub.js index c0826ce5dd2c..34c2e831b1fe 100644 --- a/stubs/simpleConfig.stub.js +++ b/stubs/simpleConfig.stub.js @@ -1,8 +1,5 @@ module.exports = { - future: { - // removeDeprecatedGapUtilities: true, - // purgeLayersByDefault: true, - }, + future: {}, purge: [], theme: { extend: {},