Skip to content

Commit 50a1c5f

Browse files
authored
Merge pull request #129 from ember-learn/update-eslint
Update eslint and prettier
2 parents dc1ab55 + f34d86a commit 50a1c5f

31 files changed

+1705
-619
lines changed

.eslintrc.js

+14-13
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,23 @@ module.exports = {
33
es6: true,
44
node: true,
55
},
6-
extends: 'eslint:recommended',
6+
extends: ['eslint:recommended', 'plugin:prettier/recommended', 'plugin:n/recommended'],
77
parserOptions: {
8-
ecmaVersion: 2018,
8+
ecmaVersion: 2020,
99
sourceType: 'module',
1010
},
1111
rules: {
12-
indent: ['error', 'tab'],
13-
'linebreak-style': ['error', 'unix'],
14-
quotes: ['error', 'single'],
15-
semi: ['error', 'never'],
16-
'no-console': ['off'],
17-
},
18-
globals: {
19-
describe: true,
20-
it: true,
21-
beforeEach: true,
22-
afterEach: true,
12+
'n/no-process-exit': 0,
2313
},
14+
overrides: [
15+
{
16+
files: 'test/**/*',
17+
env: {
18+
mocha: true,
19+
},
20+
rules: {
21+
'n/no-unpublished-import': 0,
22+
},
23+
},
24+
],
2425
}

.prettierrc

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,5 @@
22
"singleQuote": true,
33
"semi": false,
44
"printWidth": 100,
5-
"useTabs": true,
6-
"trailingComma": "es5"
5+
"arrowParens": "avoid"
76
}

generate-local.js

+9-8
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import execa from 'execa'
44
import { copyFileSync, ensureFileSync, existsSync, removeSync } from 'fs-extra'
55
import minimist from 'minimist'
66
import path from 'path'
7-
import 'hard-rejection/register'
87

98
const docsPath = '../ember-api-docs-data'
109

@@ -17,7 +16,7 @@ const exit = function exit() {
1716
process.exit(1)
1817
}
1918

20-
async function runCmd (cmd, path, args = []) {
19+
async function runCmd(cmd, path, args = []) {
2120
console.log(chalk.underline(`Running '${chalk.green(cmd)}' in ${path}`))
2221
const executedCmd = await execa(cmd, args, { cwd: path, shell: true, stdio: 'inherit' })
2322

@@ -30,11 +29,11 @@ async function runCmd (cmd, path, args = []) {
3029
console.log(executedCmd.stdout + '\n')
3130
}
3231

33-
(async () => {
32+
;(async () => {
3433
if (!project || !version) {
3534
exit(
3635
chalk.red('Both project and version args are required.\n'),
37-
chalk.yellow(' e.g., yarn gen --project ember --version 3.10.1')
36+
chalk.yellow(' e.g., yarn gen --project ember --version 3.10.1'),
3837
)
3938
}
4039

@@ -66,13 +65,15 @@ async function runCmd (cmd, path, args = []) {
6665
await runCmd('corepack', projDirPath, ['pnpm', 'install'])
6766
}
6867

69-
7068
if (install) {
7169
await runCmd(project === 'ember' ? 'yarn' : 'pnpm install', projDirPath)
7270
console.log('\n\n')
7371
}
7472

75-
await runCmd(project === 'ember' ? 'volta run yarn docs' : 'corepack pnpm run build:docs', projDirPath)
73+
await runCmd(
74+
project === 'ember' ? 'volta run yarn docs' : 'corepack pnpm run build:docs',
75+
projDirPath,
76+
)
7677

7778
let destination = `${docsPath}/s3-docs/v${version}/${project}-docs.json`
7879
ensureFileSync(destination)
@@ -82,7 +83,7 @@ async function runCmd (cmd, path, args = []) {
8283

8384
const yuiDocFile = path.join(
8485
projDirPath,
85-
project === 'ember' ? 'docs/data.json' : 'packages/-ember-data/dist/docs/data.json'
86+
project === 'ember' ? 'docs/data.json' : 'packages/-ember-data/dist/docs/data.json',
8687
)
8788
copyFileSync(yuiDocFile, projYuiDocFile)
8889
}
@@ -102,6 +103,6 @@ async function runCmd (cmd, path, args = []) {
102103
project,
103104
'--version',
104105
version,
105-
'--no-sync'
106+
'--no-sync',
106107
]).stdout.pipe(process.stdout)
107108
})()

index.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// eslint-disable-next-line
22
require = require('esm')(module /*, options*/)
3-
require('hard-rejection')()
43

54
const argv = require('minimist')(process.argv.slice(2))
65

lib/add-since-tags.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ function sortVersionIndex(versionIndex) {
5050
let keys = Object.keys(versionIndex)
5151

5252
keys.forEach(key =>
53-
Object.keys(versionIndex[key]).forEach(item => versionIndex[key][item].sort())
53+
Object.keys(versionIndex[key]).forEach(item => versionIndex[key][item].sort()),
5454
)
5555
}
5656

@@ -63,5 +63,5 @@ const createMethodEntry = (versionIndex, method, itemType, version) => {
6363
const classItemsWithItemType = versions =>
6464
versions.reduce(
6565
(memo, { data }) => memo.concat(data.classitems.filter(({ itemtype }) => itemtype)),
66-
[]
66+
[],
6767
)

lib/create-classes.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import saveDoc from './save-document'
1+
import saveDoc from './save-document.js'
22

33
export default async function (document, projectName, projectVersion) {
44
let things = document.data

lib/create-project-versions.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
// eslint-disable-next-line n/no-missing-import
12
import tojsonapi from 'yuidoc-to-jsonapi/lib/converter'
2-
import saveDoc from './save-document'
3-
import updateIDs from './update-with-versions-and-project'
3+
import saveDoc from './save-document.js'
4+
import updateIDs from './update-with-versions-and-project.js'
45

56
export default async function createProjectVersions(versions, projectName) {
67
const results = []

lib/fix-borked-yuidoc-files.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import fs from 'fs-extra'
22
import semverCompare from 'semver-compare'
3-
import { normalizeYuiDocClassItem } from './yuidoc-fixer/normalize-yui-doc-class-item'
4-
import { yuiDocClassItemKeys } from './yuidoc-fixer/yui-doc-class-item-keys'
5-
import { normalizeYuiDocClass } from './yuidoc-fixer/normalize-yui-doc-class'
3+
import { normalizeYuiDocClassItem } from './yuidoc-fixer/normalize-yui-doc-class-item.js'
4+
import { yuiDocClassItemKeys } from './yuidoc-fixer/yui-doc-class-item-keys.js'
5+
import { normalizeYuiDocClass } from './yuidoc-fixer/normalize-yui-doc-class.js'
66

77
/**
88
* In ember 3.10 and above we introduced decorators.

lib/get-latest-patch-versions.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import semverUtils from 'semver-utils'
55
export function getLatestPatchVersions(versions) {
66
let groupedVersions = groupBy(
77
versions.sort(semverCompare).map(semverUtils.parse),
8-
v => `${v.major}.${v.minor}`
8+
v => `${v.major}.${v.minor}`,
99
)
1010
return Object.values(groupedVersions).map(verGroup => verGroup.pop().version)
1111
}

lib/get-version-index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { byType } from './filter-jsonapi-doc'
1+
import { byType } from './filter-jsonapi-doc.js'
22

33
export default function getVersionIndex(doc, projectName) {
44
return {

lib/markup.js

+10-10
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ function replaceDescriptionFor(items) {
4949

5050
function highlight(description) {
5151
if (description) {
52-
description = description.replace(/&#(\d+);/g, function(match, dec) {
52+
description = description.replace(/&#(\d+);/g, function (match, dec) {
5353
return String.fromCharCode(dec)
5454
})
5555
}
@@ -109,15 +109,15 @@ function highlight(description) {
109109
function determineLanguage(maybeFileName) {
110110
const lang = maybeFileName.split('.').pop()
111111
switch (lang) {
112-
case 'js':
113-
case 'javascript':
114-
return 'javascript'
115-
case 'ts':
116-
return 'typescript'
117-
case 'hbs':
118-
return 'handlebars'
119-
default:
120-
return lang
112+
case 'js':
113+
case 'javascript':
114+
return 'javascript'
115+
case 'ts':
116+
return 'typescript'
117+
case 'hbs':
118+
return 'handlebars'
119+
default:
120+
return lang
121121
}
122122
}
123123

lib/modules-transform.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ function isStaticMethod(item) {
3434
}
3535

3636
function separateByClassName(result, value) {
37-
(result[value.class] || (result[value.class] = [])).push(value)
37+
;(result[value.class] || (result[value.class] = [])).push(value)
3838
return result
3939
}
4040

lib/normalize-ember-dependencies.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import _ from 'lodash'
2-
import { byType } from './filter-jsonapi-doc'
2+
import { byType } from './filter-jsonapi-doc.js'
33

44
const missingDoc = ({ id, version }) => {
55
return {

lib/normalize-ids.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import _ from 'lodash'
2-
import saveDoc from './save-document'
3-
import tojsonapi from 'yuidoc-to-jsonapi/lib/converter'
4-
import updateIDs from './update-with-versions-and-project'
5-
import { byType as findType } from './filter-jsonapi-doc'
2+
import saveDoc from './save-document.js'
3+
import tojsonapi from 'yuidoc-to-jsonapi/lib/converter.js'
4+
import updateIDs from './update-with-versions-and-project.js'
5+
import { byType as findType } from './filter-jsonapi-doc.js'
66

77
function removeLongDocsBecauseEmber1HasWeirdDocs({ id }) {
88
let str = 'A Suite can'
@@ -61,7 +61,7 @@ async function normalizeIDs(pVersions, projectName) {
6161

6262
let namespaces = classes.filter(({ attributes }) => attributes.static === 1)
6363
classes = classes.filter(
64-
({ attributes }) => attributes.static !== 1 && _.has(attributes, 'file')
64+
({ attributes }) => attributes.static !== 1 && _.has(attributes, 'file'),
6565
)
6666

6767
namespaces.forEach(ns => (ns.type = 'namespace'))

lib/read-docs.js

+11-12
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,11 @@ import fs from 'fs-extra'
22
import glob from 'glob'
33
import { dasherize } from 'inflected'
44
import { get as deepGet } from 'lodash'
5-
import { getLatestPatchVersions } from './get-latest-patch-versions'
5+
import { getLatestPatchVersions } from './get-latest-patch-versions.js'
66

77
const docsPath = '../ember-api-docs-data'
88

9-
export default function readDocs(
10-
projects,
11-
specificVersion = '',
12-
runClean = false
13-
) {
9+
export default function readDocs(projects, specificVersion = '', runClean = false) {
1410
return projects.reduce(async (prevPromise, projectName) => {
1511
let prevValue = await prevPromise
1612
let prevIndexedVersions = []
@@ -23,23 +19,26 @@ export default function readDocs(
2319
projectFile = await fs.readJson(projectFile)
2420

2521
prevIndexedVersions = deepGet(projectFile, 'data.relationships.project-versions.data').map(
26-
({ id }) => id.replace(`${projectName}-`, '')
22+
({ id }) => id.replace(`${projectName}-`, ''),
2723
)
2824
}
2925

30-
let folders = glob.sync(`${docsPath}/s3-docs/v${specificVersion}*/${dasherize(projectName)}-docs.json`)
26+
let folders = glob.sync(
27+
`${docsPath}/s3-docs/v${specificVersion}*/${dasherize(projectName)}-docs.json`,
28+
)
3129

3230
let availableSourceVersions = folders.map(x =>
33-
x.replace(`${docsPath}/s3-docs/v`, '').replace(`/${projectName}-docs.json`, '')
31+
x.replace(`${docsPath}/s3-docs/v`, '').replace(`/${projectName}-docs.json`, ''),
3432
)
3533

3634
if (!runClean) {
37-
3835
folders = folders.filter(f => {
3936
if (!prevIndexedVersions.includes(f)) {
4037
return f
4138
} else {
42-
let version = f.replace(`${docsPath}/s3-docs/v`, '').replace(`/${projectName}-docs.json`, '')
39+
let version = f
40+
.replace(`${docsPath}/s3-docs/v`, '')
41+
.replace(`/${projectName}-docs.json`, '')
4342
console.log(`${projectName}-${version} has already been indexed in json-docs`)
4443
}
4544
})
@@ -59,7 +58,7 @@ export default function readDocs(
5958
console.error(e.stack)
6059
process.exit(1)
6160
}
62-
})
61+
}),
6362
)
6463

6564
return { ...prevValue, [projectName]: docs }

lib/rev-docs.js

+6-9
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import fs from 'fs-extra'
22
import ora from 'ora'
33
import { basename as getFileName } from 'path'
4-
import { isArray } from 'lodash/lang'
54
import { singularize } from 'inflected'
65
import path from 'path'
76
const glob = require('glob')
@@ -16,10 +15,7 @@ function revProjVersionFiles(project, ver) {
1615
fs.mkdirpSync(revIndexFolder)
1716
const destination = `${revIndexFolder}/${project}-${ver}.json`
1817

19-
fs.copySync(
20-
`${projDocsDir}/${ver}/project-versions/${project}-${ver}.json`,
21-
destination
22-
)
18+
fs.copySync(`${projDocsDir}/${ver}/project-versions/${project}-${ver}.json`, destination)
2319

2420
opProgress.text = `Revving ${project}:${ver}`
2521

@@ -28,7 +24,7 @@ function revProjVersionFiles(project, ver) {
2824
projVerRevContent.meta = {}
2925

3026
Object.keys(projVerRevContent.data.relationships).forEach(k => {
31-
if (isArray(projVerRevContent.data.relationships[k].data)) {
27+
if (Array.isArray(projVerRevContent.data.relationships[k].data)) {
3228
projVerRevContent.data.relationships[k].data.forEach(({ type, id }) => {
3329
if (!projVerRevContent.meta[type]) {
3430
projVerRevContent.meta[type] = {}
@@ -53,9 +49,10 @@ function revProjVersionFiles(project, ver) {
5349
let fileShortName = f.replace(`${projVerDir}/`, '').replace('.json', '')
5450
let [fileObjType, entityName] = fileShortName.split('/')
5551

56-
projVerRevContent.meta[singularize(fileObjType)][entityName] = getFileName(
57-
f
58-
).replace('.json', '')
52+
projVerRevContent.meta[singularize(fileObjType)][entityName] = getFileName(f).replace(
53+
'.json',
54+
'',
55+
)
5956
})
6057

6158
fs.writeJsonSync(projVerRevFile, projVerRevContent)

lib/save-document.js

+8-2
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,20 @@ export default async function saveDoc(document, projectName, version = '') {
1414
projectName,
1515
version,
1616
pluralize(document.data.type),
17-
encodeURIComponent(`${document.data.id}.json`)
17+
encodeURIComponent(`${document.data.id}.json`),
1818
)
1919

2020
let json = JSON.stringify(document, null, 2)
2121

2222
return new Promise((resolve, reject) => {
2323
if ((version.startsWith('1.') || version.startsWith('0.')) && document.data.id.length > 50) {
24-
console.log(chalk.red(`\n\n⚠️ Skipping writing document with id ${chalk.yellow(document.data.id)} because it's too long\n\n`))
24+
console.log(
25+
chalk.red(
26+
`\n\n⚠️ Skipping writing document with id ${chalk.yellow(
27+
document.data.id,
28+
)} because it's too long\n\n`,
29+
),
30+
)
2531
// wtf ember 1.0 docs??
2632
return resolve()
2733
}

lib/transform-yui-object.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import transformModules from './modules-transform'
2-
import addInheritedItems from './add-inherited-items'
3-
import normalizeIDs from './normalize-ids'
1+
import transformModules from './modules-transform.js'
2+
import addInheritedItems from './add-inherited-items.js'
3+
import normalizeIDs from './normalize-ids.js'
44

55
export default async function transformYuiObject(docs, projName) {
66
let d = await transformModules(docs)

0 commit comments

Comments
 (0)