Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ultirequiem/eloquent-javascript

🐔 Solved with TypeScript and TDD
https://github.com/ultirequiem/eloquent-javascript

deno eloquent-javascript eloquent-typescript javascript tdd testing typescript

Last synced: about 2 months ago
JSON representation

🐔 Solved with TypeScript and TDD

Awesome Lists containing this project

README

        

# Eloquent JavaScript

[![Code Coverage](https://codecov.io/gh/ultirequiem/eloquent-javascript/branch/main/graph/badge.svg)](https://codecov.io/gh/ultirequiem/eloquent-javascript)
[![Deno Doc](https://doc.deno.land/badge.svg)](https://doc.deno.land/https/deno.land/x/eloquent/mod.ts)

**[Read the book for free!](https://eloquentjavascript.net) 📖**

I solved the exercises using [TypeScript](https://typescriptlang.org) and
[Test Driven Development](https://github.com/dwyl/learn-tdd).

### Language

#### [Program Structure](https://eloquentjavascript.net/02_program_structure.html)

- [Looping a Triangle](https://eloquentjavascript.net/02_program_structure.html#i_umoXp9u0e7) -
[Solution](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/triangle.ts) -
[Test](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/triangle.test.ts)

- [FizzBuzz](https://eloquentjavascript.net/02_program_structure.html#i_rebKE3gdjV) -
[Solution](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/fizzbuzz.ts) -
[Test](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/fizzbuzz.test.ts)

- [Chessboard](https://eloquentjavascript.net/02_program_structure.html#i_swb9JBtSQQ) -
[Solution](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/chessboard.ts) -
[Test](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/chessboard.test.ts)

#### [Functions](https://eloquentjavascript.net/03_functions.html)

- [Minimum](https://eloquentjavascript.net/03_functions.html#i_XTmO7z7MPq) -
[Solution](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/minimum.ts) -
[Test](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/minimum.test.ts)

- [Recursion](https://eloquentjavascript.net/03_functions.html#i_jxl1p970Fy) -
[Solution](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/is_even.ts) -
[Test](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/is_even.test.ts)

- [Bean Counting](https://eloquentjavascript.net/03_functions.html#i_3rsiDgC2do) -
[Solution](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/bean_counting.ts) -
[Test](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/bean_counting.test.ts)

#### [Data Structures](https://eloquentjavascript.net/04_data.html)

- [Range](https://eloquentjavascript.net/04_data.html#i_8ZspxiCEC) -
[Solution](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/range.ts) -
[Test](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/range.test.ts)

- [Reversing an Array](https://eloquentjavascript.net/04_data.html#i_6xTmjj4Rf5) -
[Solution](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/reversing_array.ts) -
[Test](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/reversing_array.test.ts)

- [List](https://eloquentjavascript.net/04_data.html#i_nSTX34CM1M) -
[Solution](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/list.test.ts) -
[Test](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/list.test.ts)

- [Deep Equal](https://eloquentjavascript.net/04_data.html#i_IJBU+aXOIC) -
[Solution](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/deep_equal.ts) -
[Test](https://github.com/UltiRequiem/eloquent-javascript/blob/main/src/language/deep_equal.test.ts)

## Usage

The vast majority of solutions are completely reusable functions, so I decided
to package them.

The API is the same on all this platforms ✔️

### [Deno 🦕](https://deno.land/x/eloq)

```javascript
import * as eloq from "https://deno.land/x/eloq/mod.ts";
```

### [Node.js 🐢🚀](https://npmjs.com/package/eloq)

```javascript
import * as eloq from "eloq";
```

### [Browser 🌐](https://developer.mozilla.org/en-US/docs/Glossary/Browser)

You can use any [CDN](https://en.wikipedia.org/wiki/Content_delivery_network) 🔥

Eg 👉
[ESM](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules) ↔️
[SkyPack](https://cdn.skypack.dev/eloq) 🆚
[Script Tag](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script)
↔️ [JSDelivr](https://cdn.jsdelivr.net/npm/eloq)

## Documentation

Is hosted on [Deno Doc](https://doc.deno.land/https://deno.land/x/eloq/mod.ts) 📄

## Support

Open an Issue, I will check it a soon as possible 👀

If you want to hurry me up a bit
[send me a tweet](https://twitter.com/UltiRequiem) 😆

Consider [supporting me on Patreon](https://patreon.com/UltiRequiem) if you like
my work 🙏

Don't forget to start the repo ⭐

## Versioning

We use [Semantic Versioning](http://semver.org). For the versions available, see
the [tags](https://github.com/UltiRequiem/eloquent-javascript/tags) 🏷️

## Authors

[Eliaz Bobadilla](https://ultirequiem.com) - Creator and Maintainer 💪

See also the full list of
[contributors](https://github.com/UltiRequiem/eloquent-javascript/contributors)
who participated in this project ✨

## Licence

Licensed under the MIT License 📄