UNPKG

js-pmq

Version:

simple NPM package which returns popular movie quotes.

175 lines (129 loc) 4.02 kB
# `pmq` A simple NPM package to get popular movie quotes. ## Features - Zero dependencies - JavaScript code linting is done using [`eslint`](https://www.npmjs.com/package/eslint) - Delightful JavaScript Testing using [`jest`](https://www.npmjs.com/package/jest) - Has [`.editorconfig`](https://editorconfig.org/) which helps developers define and maintain consistent coding styles between different editors and IDEs. ## Installation ```shell npm i js-pmq # Or yarn add js-pmq ``` ## Usage 🚀 ### `getAll()` returns an array of objects, each containing **quote** and **movie**. ```js ... { "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** ```js [ { "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**. ```js [ { "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 ```txt 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. ```js [ { "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. ```js [ { "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 ```js 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`](https://jestjs.io/) and they are located in the `__tests__` folder. To run all tests: ```bash npm test ``` ### Available scripts - `start` : start the app in development mode - `lint` : lint app codebase using [`typescript-eslint`](https://typescript-eslint.io/) - `build` : create minified JS file - `test` : start testing using [`Jest`](https://jestjs.io/) ## Related Work 🌠 - [`tube-cli`](https://github.com/mohammed-Taysser/tube-cli) - A package for downloading youtube videos & playlists - [`tube-info`](https://github.com/mohammed-Taysser/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`](https://github.com/mohammed-Taysser/)