js-pmq
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

pmq

A simple NPM package to get popular movie quotes.

Features

  • Zero dependencies
  • JavaScript code linting is done using eslint
  • Delightful JavaScript Testing using jest
  • Has .editorconfig which helps developers define and maintain consistent coding styles between different editors and IDEs.

Installation

npm i js-pmq
# Or
yarn add js-pmq

Usage 🚀

getAll()

returns an array of objects, each containing quote and movie.

...
{
  "quote": "Frankly, my dear, I don't give a damn.",
  "movie": "Gone with the Wind",
  "type": "movie",
  "year": 1939
}
...

getQuoteByYear(startYear, endYear)

returns a sorted object within the range of year startYear - endYear

[
  {
    "quote": "Frankly, my dear, I don't give a damn.",
    "movie": "Gone with the Wind",
    "type": "movie",
    "year": startYear
  }
  ....
  ....
  {
    "quote": "Frankly, my dear, I don't give a damn.",
    "movie": "Gone with the Wind",
    "type": "movie",
    "year": endYear
  }
]

getSomeRandom(count)

returns an array (of length 'count') of non-duplicate random objects containing quote and movie.

[
  {
    "quote": "Frankly, my dear, I don't give a damn.",
    "movie": "Gone with the Wind",
    "type": "movie",
    "year": 1939
  }
  // with 'count' number of quote objects.
]

getRandomQuote()

returns a random movie quote

I used to think that my life was a tragedy. But now I realize, it's a comedy.

getQuotesByMovie("MovieName")

returns an array with all quotes of MovieName movie, else returns empty.

[
  {
    "quote": "Frankly, my dear, I don't give a damn.",
    "movie": "Gone with the Wind",
    "type": "movie",
    "year": 1939
  }
]

getQuotesByType(type)

returns an array with all quotes of type movie | anime | tv, else returns empty.

[
  {
    "quote": "Frankly, my dear, I don't give a damn.",
    "movie": "Gone with the Wind",
    "type": "movie",
    "year": 1939
  }
  ....
  ....
  {
    "quote": "You all love twisting the knife into one another.",
    "movie": "Knives Out",
    "type": "movie",
    "year": 2019
  }
]

Playground

const pmq = require("js-pmq");

console.log(pmq.getAll()); //returns an object with all available quotes.

console.log(pmq.getSomeRandom(10)); // returns an object of 10 random quotes.

console.log(pmq.getRandomQuote()); // returns a random quote

console.log(pmq.getQuoteByYear(2000, 2019)); // returns a sorted object within the range of year 2000-2019

console.log(pmq.getQuotesByMovie("Joker")); //If present returns and array with all quotes of joker movie, else returns empty.

console.log(pmq.getQuotesByType("anime")); //If present returns and array with all quotes of type anime, else returns empty.

Development 🚀

Testing

Check if quote is duplicate/already present.

All tests are written in Jest and they are located in the __tests__ folder. To run all tests:

npm test

Available scripts

  • start : start the app in development mode
  • lint : lint app codebase using typescript-eslint
  • build : create minified JS file
  • test : start testing using Jest

Related Work 🌠

  • tube-cli - A package for downloading youtube videos & playlists
  • tube-info - A package for getting youtube videos & playlists info

Contribution 🤝

  1. Fork it!
  2. Create your feature branch: git checkout -b feature-name
  3. Commit your changes: git commit -am 'Some commit message'
  4. Push to the branch: git push origin feature-name
  5. Submit a pull request 😉😉

License 📜

MIT © Mohammed Taysser

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.1
    2
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.0.1
    2
  • 1.0.0
    0

Package Sidebar

Install

npm i js-pmq

Weekly Downloads

2

Version

1.0.1

License

MIT

Unpacked Size

145 kB

Total Files

7

Last publish

Collaborators

  • mohammed-taysser