Exercism exercises in JavaScript.
MIT License
438
25
526

Exercism JavaScript Track

configlet javascript / main

Exercism exercises in JavaScript

This is the JavaScript track, one of the many tracks on Exercism. It holds all the exercises that are currently implemented and available for students to complete. The track consists of various concept exercises that teach the JavaScript syllabus, and various practice exercises, which are unlocked by progressing in the syllabus and can be used to practice concepts learned. You can find this in the config.json.

Tools

See CONTRIBUTING.md for a list of requirements to contribute to this track. It also has a list of tools you can use, of which the test tool is one of them.

Running the code quality tooling (linter)

This run eslint for all files that require linting.

npx eslint exercises/**/*.spec.js exercises/**/.meta/*.js --fix

These are also the files that are linted using the lint script, mentioned in CONTRIBUTING.md. The lint rules imposed on contributors and maintainers are stricter than those for the student. The idea is that we do not impose style rules on the students, but we guard for (potential) errors.

Files with strict rules:

  • <slug>.spec.js
  • .meta/proof.ci.js
  • .meta/exemplar.js

Files with loose rules:

  • custom.spec.js
  • <slug>.js

Running the test suite

This runs jest tests for all sample solutions. This does not use the regular way to run jest, because the example solution files must be renamed to be imported correctly into the test files.

npx babel-node scripts/test

If the ASSIGNMENT environment variable is set, only that exercise is tested. For example, if you only want to test the example.js for the practice exercise two-fer, you may, depending on your environment, use:

ASSIGNMENT=practice/two-fer npx babel-node scripts/test

Running on Windows? Depending on your shell, environment variables are set differently. You can use cross-env to normalize this. The following should work across environments:

npx cross-env ASSIGNMENT=practice/two-fer babel-node scripts/test

Related repositories

Related TypeScript repositories

A lot of the improvements made to this track and tooling are also made to the TypeScript track and tooling and vice-versa.

Contributors

dependabot[bot]
SleeplessByte
matthewmorgan
rchavarria
ErikSchierboom
tejasbubane
kytrinyx
junedev
ovidiu141
xarxziux
TomPradat
serixscorpio
pertrai1
cmccandless
exercism-bot
lpizzinidev
aimorris
angelikatyborska
bobahop
amscotti
javaeeeee
joshgoebel
tarunvelli
PakkuDon
msomji
paparomeo
smb26
github-actions[bot]
Futuro212
hayashi-ay
AnishDe12020
kroitor
MattH-be
ntshcalleia
rootulp
ryanplusplus
SaschaMann
ee7
asadrjhk
gabriel376
qianzhong516
JaPatGitHub
laulujan
orien
peterchu999
mmmmmrob
slaymance
trvrfrd
kristinaborn
ffflorian
RobinCsl
codeiotic
laurmurclar
brendanmckeown
diego-caceres
eakray
jackhughesweb
iHiD
JesseSingleton
khendrikse
rishiosaur
goldendemise
neenjaw
Tyresius92
k0ne
AbhilashJN
apapirovski
BTowersCoding
rijavecb
brendan-c
Calamari
ngl4
DagmarTimmreck
d-vail
dkinzer
ganderzz
evelynstender
gargrave
G-Rath
joeljuca
jscheffner
WebCu
simbabque
seeksort
lujanfernaud
petertseng
PSalant726
ramitmittal
scottmcook
StevenACoffman
sumedh-inamdar
skabbass1
yanick
alirezaghey
jamhog
tgujar
diegodesouza
Jasstkn
muneer-ahmed-khan
pawamoy