-
Notifications
You must be signed in to change notification settings - Fork 81
/
Copy pathpackage-scripts.js
124 lines (119 loc) · 2.97 KB
/
package-scripts.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
const {series, concurrent, commonTags} = require('nps-utils')
const {oneLine} = commonTags
const hiddenFromHelp = true
module.exports = {
scripts: {
default: {
description: 'runs the test.watch script.',
script: 'nps test.watchAll',
},
exercise: {
eslint: getExercises('no-console', 'eslint'),
babel: getExercises('captains-log', 'babel'),
codemod: getExercises('ymnn-jquery', 'codemod'),
},
contributors: {
add: {
description: 'run this to add yourself to the contributors table',
script: 'all-contributors add',
},
generate: {
description: oneLine`
run this if you've manually updated the
.all-contributorsrc and need to regenerate
the contributors table.
`,
script: 'all-contributors generate',
},
},
lint: {
hiddenFromHelp,
script: 'eslint other/final',
},
test: {
default: {
description: 'run the exercises tests',
script: 'jest',
},
changed: {
description: oneLine`
run the exercises tests for files which
have changed since the last commit
`,
script: 'jest --onlyChanged',
},
watch: {
description: 'run the exercises tests in watch mode',
script: 'jest --watch',
},
watchAll: {
description: 'run the exercises tests in watch mode',
script: 'jest --watchAll',
},
final: {
default: 'jest --projects other/final',
watch: 'jest --projects other/final --watch',
},
},
split: {
default: {
hiddenFromHelp,
script: concurrent.nps('split.exercises', 'split.demos'),
},
exercises: {
default: {
hiddenFromHelp,
script: oneLine`
split-guide generate
--templates-dir other/old-exercises/templates
--exercises-dir other/old-exercises/exercises
--exercises-final-dir other/old-exercises/exercises-final
--silent-success
`,
},
},
demos: {
default: {
hiddenFromHelp,
script: oneLine`
split-guide generate
--templates-dir other/old-demos/templates
--exercises-dir other/old-demos/start
--exercises-final-dir other/old-demos/final
--silent-success
`,
},
},
},
validate: {
default: {
hiddenFromHelp,
script: series.nps('lint', 'test.final'),
},
},
},
}
function getExercises(exerciseName, scriptName) {
return [0, 1, 2, 3, 4, 5, 6].reduce((acc, number) => {
acc[number] = oneLine`
node
./scripts/copy-exercise.js
${exerciseName}
${number}
${scriptName}
`
return acc
}, {})
}
// this is not transpiled
/*
eslint
comma-dangle: [
2,
{
arrays: 'always-multiline',
objects: 'always-multiline',
functions: 'never'
}
]
*/