Discover New Packages Using the Elm Package Index

Murphy Randle
InstructorMurphy Randle

Share this video with your friends

Send Tweet
Published 6 years ago
Updated 3 days ago

Elm comes with an index of publicly-usable open-source packages. Using packages from this index can substantially improve a developer’s experience. Learn how to find a package through the index, understand its API through type annotations and documentation, download it, and use it in a project.

Elm packages aren't working with embedded Ellie, so I've provided you with a link to the Ellie example here.

[00:00] Here, I've got a fake little shopping cart, and my goal is to change this header to say one item or two items or three items depending upon how many items I actually have in the cart. I don't have a function already to pluralize this name according to the number of items that I have, but I bet you there's something available on the Elm package index.

[00:17] Let's go take a look by navigating to Now here, I've got a search box. Question is how do I go about finding something like this? Let's just take a look for a string since we know we're going to want to do something to a string.

[00:32] Let's just take a look at this Elm string extra library. It looks like it might have some functions around strings that we can go explore, see if somebody's already done this.

[00:40] Over here on the right-hand side, we have the sub packages of this whole package, we'll go click on string.extra, and now, we get a listing of the functions that are available in this library, capitalize which we're not looking for. But the second function in the list is called "pluralize." It looks like what we want. Let's take a quick look at the arguments here.

[00:57] It takes a string and a string and a number and it will return a string. Let's look at the example. It looks like you can give it the singular form and then the plural form, and then the number, and it'll return the appropriate pluralization of that string.

[01:12] Let's give it a try. In order to start using this package, we should take note of this name right here, the user name, the user who published the package, and the name of the package itself.

[01:22] Once we remember those things, we can go over to our terminal and open up a new shell even while the Elm active server is running. Here, we can type Elm package install and then the user name, no red ink/and then the package, Elm-string-extra, then hit enter.

[01:38] It's going to ask if we want to add that to the Elm package.JSON as a dependency and we do. Then, it'll give us a summary of the things that it wants to install..

[01:45] We approve of that too, and now, we're set to use it. Let's go back to our editor and we can import string.extra exposing pluralize.

[01:55] Now down here with the H1 instead of just calling text items, we can call the function pluralize to pluralize this string, which we'll do by putting in a pair of parentheses since we're about to call a new function and we don't its arguments to get confused with other arguments.

[02:08] We're going to call pluralize and the first thing we pass in it item, because that's the singular form, and then items as the secondary form. And then, we can pass in but in parentheses again, because we're going to call another function, list.length items, and we'll delete this extraneous string and go to the browser, reload. It looks like it's working.

[02:29] It is now pluralized to two items. Let's remove one of these items and see if it still works. It does. Here, we've seen a need that we didn't have a function for already, in this case, pluralizing a string, and we thought we might be able to find that on the Elm package index.

[02:43] We went to, found a package that looked like it might accommodate what we were needing, found the function we needed, installed the package with Elm package install and then used it in our project.

~ 5 years ago

Decent whirlwind intro to Elm, but there is so much more to learn about messages, tasks, interop, how to structure larger apps (like Redux's reducer composition ideas), routing etc. Are there plans to continue this or make a second course?

Murphy Randle
Murphy Randleinstructor
~ 5 years ago

Yes! There are definitely plans. I'm hoping to do a new course on more intermediate topics in the coming months. Thanks for the feedback!

~ 5 years ago

Thanks for the nice introductory course to Elm. Would also love to see more intermediate-advanced courses on how to build a "real" Elm application.

Suwigya Rathore
Suwigya Rathore
~ 3 years ago

sorry to say course is so outdated