Skip to content

Commit

Permalink
Merge branch 'triptease-dl/add-styles'
Browse files Browse the repository at this point in the history
  • Loading branch information
CVarisco committed Jul 4, 2017
2 parents 0167a4c + 7b934b2 commit 4ed00b8
Show file tree
Hide file tree
Showing 11 changed files with 120 additions and 327 deletions.
371 changes: 60 additions & 311 deletions package-lock.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,4 @@
"jest": "^20.0.4",
"npm-watch": "^0.1.7"
}
}
}
6 changes: 5 additions & 1 deletion src/files.js
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,11 @@ function generateFiles(params) {
}

// Create js file
fs.outputFile(`${destination}/${name}.${jsExtension}`, generateComponentTemplate(type, name))
fs.outputFile(
`${destination}/${name}.${jsExtension}`,
generateComponentTemplate(type, name, { cssExtension })
)

// Create css file
if (cssExtension) {
fs.outputFile(`${destination}/${name}.${cssExtension}`, generateStyleFile(name))
Expand Down
6 changes: 3 additions & 3 deletions src/templates/__tests__/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,17 @@ describe('Template index', () => {

it('should call class.template when class is passed into generateComponentTemplate', () => {
generateComponentTemplate('class', 'test')
expect(mockClassTemplate).toHaveBeenCalledWith('test')
expect(mockClassTemplate).toHaveBeenCalledWith('test', {})
})

it('should call pure.template when pure is passed into generateComponentTemplate', () => {
generateComponentTemplate('pure', 'test')
expect(mockPureTemplate).toHaveBeenCalledWith('test')
expect(mockPureTemplate).toHaveBeenCalledWith('test', {})
})

it('should call functional.template when stateless is passed into generateComponentTemplate', () => {
generateComponentTemplate('stateless', 'test')
expect(mockFunctionalTemplate).toHaveBeenCalledWith('test')
expect(mockFunctionalTemplate).toHaveBeenCalledWith('test', {})
})

it('should export generateIndexFile with correct module', () => {
Expand Down
5 changes: 3 additions & 2 deletions src/templates/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@ const types = {
pure: generatePureComponent,
}

function generateComponentTemplate(type, name) {
return types[type](name)
function generateComponentTemplate(type, name, options = {}) {
return types[type](name, options)
}

export {
generateComponentTemplate,
generateClassComponent,
generateStyleFile,
generateIndexFile,
generateTestTemplate,
Expand Down
21 changes: 21 additions & 0 deletions src/templates/js/__tests__/common.template.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import template from '../common.template'

describe('Common Template', () => {
it('should a string', () => {
expect(typeof template()).toBe('string')
})

it('should create imports with react and proptypes', () => {
expect(template('Foo')).toContain(
`import React from 'react'
import PropTypes from 'prop-types'`
)
})

it('should add styles import when cssExtension is passed', () => {
const cssExtension = 'css'
expect(template('Foo', { cssExtension })).toContain(
`import styles from './Foo.${cssExtension}`
)
})
})
8 changes: 5 additions & 3 deletions src/templates/js/class.template.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
function generateClassComponent(COMPONENT_NAME) {
return `import React, { Component } from 'react'
import PropTypes from 'prop-types'
import generateImports from './common.template'
import defaultOptions from './config.json'

function generateClassComponent(COMPONENT_NAME, { cssExtension } = defaultOptions) {
return `${generateImports(COMPONENT_NAME, { cssExtension })}
class ${COMPONENT_NAME} extends Component {
constructor(props) {
Expand Down
9 changes: 9 additions & 0 deletions src/templates/js/common.template.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import defaultOptions from './config.json'

function generateImports(COMPONENT_NAME, { cssExtension } = defaultOptions) {
return `import React from 'react'
import PropTypes from 'prop-types'
${cssExtension ? `import styles from './${COMPONENT_NAME}.${cssExtension}'` : ''}`
}

export default generateImports
3 changes: 3 additions & 0 deletions src/templates/js/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"cssExtension": null
}
8 changes: 5 additions & 3 deletions src/templates/js/functional.template.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
function generateFunctionalComponent(COMPONENT_NAME) {
return `import React from 'react'
import PropTypes from 'prop-types'
import generateImports from './common.template'
import defaultOptions from './config.json'

function generateFunctionalComponent(COMPONENT_NAME, { cssExtension } = defaultOptions) {
return `${generateImports(COMPONENT_NAME, { cssExtension })}
const ${COMPONENT_NAME} = ({}) => (
<div className="${COMPONENT_NAME}"></div>
Expand Down
8 changes: 5 additions & 3 deletions src/templates/js/pure.template.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
function generatePureComponent(COMPONENT_NAME) {
return `import React, { PureComponent } from 'react'
import PropTypes from 'prop-types'
import generateImports from './common.template'
import defaultOptions from './config.json'

function generatePureComponent(COMPONENT_NAME, { cssExtension } = defaultOptions) {
return `${generateImports(COMPONENT_NAME, { cssExtension })}
class ${COMPONENT_NAME} extends PureComponent {
constructor(props) {
Expand Down

0 comments on commit 4ed00b8

Please sign in to comment.