Skip to content
This repository has been archived by the owner on Oct 2, 2020. It is now read-only.

Commit

Permalink
Update eslint-config-kentcdodds
Browse files Browse the repository at this point in the history
  • Loading branch information
Kent C. Dodds committed Jul 8, 2016
1 parent 7479593 commit 1a88cf9
Show file tree
Hide file tree
Showing 77 changed files with 606 additions and 564 deletions.
3 changes: 2 additions & 1 deletion .babelrc
@@ -1,6 +1,7 @@
{
"presets": ["node6", "react", "stage-2"],
"presets": ["stage-2", "node6", "react"],
"plugins": [
"transform-es2015-destructuring",
"react-require",
[
"module-alias",
Expand Down
8 changes: 1 addition & 7 deletions .eslintrc
@@ -1,12 +1,6 @@
{
"extends": "kentcdodds/react",
"extends": ["kentcdodds", "kentcdodds/react", "kentcdodds/babel-module-alias", "kentcdodds/babel-react-require"],
"rules": {
"comma-dangle": [1, "always-multiline"], // I got tired of this breaking the build ¯\_(ツ)_/¯
"react/react-in-jsx-scope": 0,
},
"settings": {
"import/resolver": {
"babel-module-alias": {},
},
},
}
12 changes: 5 additions & 7 deletions data/contributors/index.js
Expand Up @@ -84,12 +84,10 @@ const contributors = [
twitter: 'kurtiskemple',
contributions: 'Site PRs',
},
].map(c => {
return {
imgSrc: `/data/contributors/${c.twitter}.png`,
link: `https://twitter.com/${c.twitter}`,
...c,
}
})
].map(c => ({
imgSrc: `/data/contributors/${c.twitter}.png`,
link: `https://twitter.com/${c.twitter}`,
...c,
}))

export default contributors
2 changes: 1 addition & 1 deletion data/deals/index.js
Expand Up @@ -107,6 +107,6 @@ const deals = [
]

const sortedDeals = sortBy(deals, d => d.organization.toLowerCase())
const filteredDeals = sortedDeals.filter(d => d.expires ? isFuture(d.expires) : true)
const filteredDeals = sortedDeals.filter(d => (d.expires ? isFuture(d.expires) : true))

export default filteredDeals
1 change: 1 addition & 0 deletions episodes/.eslintrc
Expand Up @@ -2,5 +2,6 @@
"rules": {
"max-len": 0,
"no-trailing-spaces": 0,
"max-lines": 0,
}
}
4 changes: 2 additions & 2 deletions episodes/2016-01-20/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions episodes/2016-06-01/index.js
@@ -1,4 +1,5 @@
import rerun from '../2015-12-30'

export default {
...rerun,
title: `(Rerun) ${rerun.title}`,
Expand Down
3 changes: 2 additions & 1 deletion episodes/get-episode-directories.js
Expand Up @@ -13,5 +13,6 @@ function getEpisodeDirectories() {

function trimIndexJs(string) {
const indexJs = '/index.js'
return string.slice(0, -indexJs.length)
const first = 0
return string.slice(first, -indexJs.length)
}
4 changes: 2 additions & 2 deletions episodes/index.js
Expand Up @@ -6,9 +6,9 @@ import getEpisodeDirectories from './get-episode-directories'

const episodeDirectories = getEpisodeDirectories()
const episodes = episodeDirectories.map(getEpisodeData)
const episodeGroups = groupBy(episodes, e => e.past ? 'past' : 'future')
const episodeGroups = groupBy(episodes, e => (e.past ? 'past' : 'future'))
const {future = [], past} = episodeGroups
const nextEpisode = future[0]
const [nextEpisode] = future

export default episodes
export {future, past, episodes, nextEpisode}
25 changes: 10 additions & 15 deletions generate/contributors.js
Expand Up @@ -4,28 +4,23 @@ import renderComponentToFile from './renderComponentToFile'
import host from '<resources>/host'
import sponsors from '../sponsors'
import contributors from '../data/contributors'
import {panelists} from '<resources>/panelists'
import panelists from '<resources>/panelists'
import {nextEpisode} from '../episodes'
import Contributors from '../src/pages/contributors'
import {sortPeople} from '<utils>/utils'


const panelistContributors = panelists.map(p => {
return {
contributions: 'Panelist',
...p,
}
})
const panelistContributors = panelists.map(p => ({
contributions: 'Panelist',
...p,
}))

const sponsorContributors = Object.keys(sponsors).reduce((array, sponsorGroupKey) => {
const groupName = sponsorGroupKey.replace('Sponsors', '').replace(/^./, m => m.toUpperCase())
const groupArray = sponsors[sponsorGroupKey].map(sponsor => {
return {
contributions: `${groupName} Sponsor`,
squareImage: true,
...sponsor,
}
})
const groupArray = sponsors[sponsorGroupKey].map(sponsor => ({
contributions: `${groupName} Sponsor`,
squareImage: true,
...sponsor,
}))
return [...array, ...groupArray]
}, [])

Expand Down
14 changes: 6 additions & 8 deletions generate/deals.js
Expand Up @@ -5,14 +5,12 @@ import deals from '../data/deals'
import DealsPage from '../src/pages/deals'
import {markdownToHTML} from '<utils>/utils'

const theDeals = deals.map(d => {
return {
dealHTML: markdownToHTML(d.deal),
descriptionHTML: markdownToHTML(d.description),
// imgSrc: 'some-default', // TODO add a default image
...d,
}
})
const theDeals = deals.map(d => ({
dealHTML: markdownToHTML(d.deal),
descriptionHTML: markdownToHTML(d.description),
// imgSrc: 'some-default', // TODO add a default image
...d,
}))

renderComponentToFile(
<DealsPage deals={theDeals} />,
Expand Down
4 changes: 2 additions & 2 deletions generate/episode-email.js
@@ -1,9 +1,9 @@
import {resolve} from 'path'
import renderComponentToFile from './renderComponentToFile'
import {nextEpisode} from '../episodes'
import getEpisodeData from '<utils>/get-episode-data'
import {nextEpisode} from '../episodes'
import EpisodeEmail from '../src/pages/episode-email'
import {getSponsorsForDate} from '../sponsors'
import renderComponentToFile from './renderComponentToFile'

export default generateEpisodeEmailPage

Expand Down
7 changes: 3 additions & 4 deletions generate/episode.js
@@ -1,10 +1,9 @@
import {resolve} from 'path'
import renderComponentToFile from './renderComponentToFile'

import {nextEpisode} from '../episodes'
import getEpisodeData from '<utils>/get-episode-data'
import {getSponsorsForDate} from '../sponsors'
import {nextEpisode} from '../episodes'
import EpisodePage from '../src/pages/episode'
import {getSponsorsForDate} from '../sponsors'
import renderComponentToFile from './renderComponentToFile'

export default generateEpisode

Expand Down
9 changes: 3 additions & 6 deletions generate/home.js
@@ -1,12 +1,9 @@
import {resolve} from 'path'
import renderComponentToFile from './renderComponentToFile'

import panelists from '<resources>/panelists'
import Home from '../src/pages/home'
import {future as futureEpisodes, past as pastEpisodes} from '../episodes'
import {currentSponsors} from '../sponsors'
import {panelists} from '<resources>/panelists'

import Home from '../src/pages/home'

import renderComponentToFile from './renderComponentToFile'

renderComponentToFile(
<Home
Expand Down
13 changes: 0 additions & 13 deletions generate/json-files-configs/episodes.js

This file was deleted.

9 changes: 0 additions & 9 deletions generate/json-files-configs/host.js

This file was deleted.

11 changes: 0 additions & 11 deletions generate/json-files-configs/index.js

This file was deleted.

9 changes: 0 additions & 9 deletions generate/json-files-configs/panelists.js

This file was deleted.

9 changes: 0 additions & 9 deletions generate/json-files-configs/sponsors.js

This file was deleted.

53 changes: 50 additions & 3 deletions generate/json-files.js
@@ -1,10 +1,11 @@
import path from 'path'
import {writeJsonArray, writeJsonObject} from './write-to-json-file'
import host from '<resources>/host'
import panelists from '<resources>/panelists'
import {episodes} from '../episodes'
import {panelists} from '<resources>/panelists'
import sponsors from '../sponsors'
import * as config from './json-files-configs'
import {writeJsonArray, writeJsonObject} from './write-to-json-file'

const config = getConfig()

// all episodes data in a same data.json file (filtered properties only)
writeJsonArray(episodes, config.episodesToJson, true)
Expand All @@ -27,3 +28,49 @@ writeJsonArray(sponsorsArray, config.sponsorsToJson, true)

// all host data in a data.json file (no property filter)
writeJsonObject(host, config.hostToJson, false)


function getConfig() {
return {
hostToJson: {
destDirectoryFromHere: '../resources/host/',
propertiesToFilter: [
'imgSrc',
'name',
'twitter',
'link',
],
},
sponsorsToJson: {
destDirectoryFromHere: '../sponsors/',
propertiesToFilter: [
'premierSponsors',
'goldSponsors',
'silverSponsors',
'appreciationSponsors,',
],
},
panelistsToJson: {
destDirectoryFromHere: '../resources/panelists/',
propertiesToFilter: [
'imgSrc',
'name',
'twitter',
'link',
],
},
episodesToJson: {
destDirectoryFromHere: '../episodes/',
propertiesToFilter: [
'numberDisplay',
'title',
'date',
'time',
'description',
'hangoutId',
'youTubeId',
'guests',
],
},
}
}
4 changes: 2 additions & 2 deletions generate/links-tips-picks.js
@@ -1,7 +1,7 @@
import {resolve} from 'path'
import renderComponentToFile from './renderComponentToFile'
import {episodes, nextEpisode} from '../episodes'
import LinksTipsPicks from '../src/pages/links-tips-picks'
import {episodes, nextEpisode} from '../episodes'
import renderComponentToFile from './renderComponentToFile'

renderComponentToFile(
<LinksTipsPicks
Expand Down
4 changes: 1 addition & 3 deletions generate/renderComponentToFile.js
Expand Up @@ -6,9 +6,7 @@ import {noop} from 'lodash'
export default renderComponent

function renderComponent(comp, destination, cb = noop) {
const {html, css} = StyleSheetServer.renderStatic(() => {
return ReactDOMServer.renderToStaticMarkup(comp)
})
const {html, css} = StyleSheetServer.renderStatic(() => ReactDOMServer.renderToStaticMarkup(comp))
const string = html.replace('/* aphrodite-content */', css.content)
writeFile(destination, string, cb)
}
4 changes: 2 additions & 2 deletions generate/screenshot/server.js
Expand Up @@ -19,8 +19,8 @@ function runServer(cb) {
})
server.start(() => {
address = `http://localhost:${port}`
console.log('server listening at: ' + address)
console.log('with a root at: ' + rootPath)
console.log(`server listening at: ${address}`)
console.log(`with a root at: ${rootPath}`)
cb(address)
})
}
11 changes: 5 additions & 6 deletions generate/write-to-json-file.js
Expand Up @@ -2,24 +2,23 @@ import path from 'path'
import fs from 'fs'

export function writeJsonArray(arrayNewItems, config, applyFilter = false) {
const DEST_JSON_FILE = path.join(__dirname, config.destDirectoryFromHere, `data.json`)
const destFile = path.join(__dirname, config.destDirectoryFromHere, `data.json`)
const allFileContent = arrayNewItems.map(item => {
return applyFilter ? filterProperties(config.propertiesToFilter, item) : item
})
writeToFile(DEST_JSON_FILE, JSON.stringify(allFileContent))
writeToFile(destFile, JSON.stringify(allFileContent))
}

export function writeJsonObject(newItem, config, applyFilter = false) {
const DEST_JSON_FILE = path.join(__dirname, config.destDirectoryFromHere, `data.json`)
const destFile = path.join(__dirname, config.destDirectoryFromHere, `data.json`)
const itemToCopy = applyFilter ? filterProperties(config.propertiesToFilter, newItem) : newItem
writeToFile(DEST_JSON_FILE, JSON.stringify(itemToCopy))
writeToFile(destFile, JSON.stringify(itemToCopy))
}

function writeToFile(file, content) {
fs.writeFile(file, content, err => {
if (err) {
process.stdout.write(`😱ERROR: could not write json file: ${file}\n->Error details: ${err}\n`)
process.exit(1)
throw new Error(`😱ERROR: could not write json file: ${file}\n->Error details: ${err}\n`)
}
})
}
Expand Down

0 comments on commit 1a88cf9

Please sign in to comment.