0.5.1 • Published 5 years ago

elm-packages v0.5.1

Weekly downloads
9
License
MIT
Repository
github
Last release
5 years ago

elm-packages

Elm packages information library.

https://nodei.co/npm/elm-packages.png?downloads=true&downloadRank=true&stars=true

Install

npm i elm-packages

Usage

Get all Elm packages information:

const elmInfo = require('elm-packages')
// Inside an async function
const allPackages = await elmInfo.packages()

Get documentation of a package:

const elmInfo = require('elm-packages')
// Inside an async function
const docs = await elmInfo.info('elm','browser','1.0.1')

Get available versions of a package:

const elmInfo = require('elm-packages')
// Inside an async function
const docs = await elmInfo.version('elm','browser')

Search by keyword (offline)

This package uses an offline db (db.json ~ 24MB) to provide Elm type info (npm compresses all packages by default so the download size would be < 3.5 MB) and uses an in memory Map indexed by methods and unions so queries would be resolved super fast. You can pass an options object alongside keyword to customize your search. Structure of options object is:

{
  method: String
  packages: Array
  type: String
}
  • method: How to match keyword. Valid options are:
    • exact: Results should be exactly the same as search keyword.
    • startsWith: Results should be started with search keyword.
    • contains: keyword can appear anywhere in searched entries.
  • packages : Array of string. Array of all packages to search for keyword. Empty array means all packages.
  • type: What to search. Valid options are:
    • method: Search keyword in methods.
    • union: Search keyword in unions.
    • any: Search keyword in methods and unions.

Search result is an object of:

{
  Methods: [],
  Unions: []
}

Examples

search('toUpper')
search('toUpper',
  {
    method: 'exact',
    packages: [ 'NoRedInk/elm-formatted-text-19' ],
    type: 'method'
  }
)
search('to',
  {
    method: 'startsWith',
    packages: [ 'elm/core', 'NoRedInk/elm-formatted-text-19' ],
    type: 'method'
  }
)
search('fun',
  {
    method: 'contains',
    packages: [],
    type: 'method'
  }
)
search('Error',
  {
    method: 'exact',
    packages: [],
    type: 'union'
  }
)

Contribution

PRs are welcome. Check if tests pass by npm run test

Changes

0.5.1

  • Fixing security vulnerability in js-yaml dependency.
  • Fixing security vulnerability in handlebars dependency.

0.5.0

  • Search options added with examples.
  • Error in case of malformed Json.
  • Unit tests added.

0.4.0

  • Search added.

0.3.0

  • Create offline db.

0.2.0

  • Get latest package version info by default.

0.1.0

  • Initial release.
0.5.1

5 years ago

0.5.0

5 years ago

0.4.0

5 years ago

0.3.0

5 years ago

0.2.0

5 years ago

0.1.0

5 years ago