{"id":16124016,"url":"https://github.com/itaditya/simple-unfurl","last_synced_at":"2025-07-26T01:09:24.201Z","repository":{"id":57361087,"uuid":"135023450","full_name":"itaditya/simple-unfurl","owner":"itaditya","description":"Generate preview of a link by extracting metadata","archived":false,"fork":false,"pushed_at":"2018-05-27T08:17:17.000Z","size":11,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-05T09:40:45.419Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/simple-unfurl","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/itaditya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-27T07:03:13.000Z","updated_at":"2023-05-07T09:05:57.000Z","dependencies_parsed_at":"2022-09-06T22:22:25.957Z","dependency_job_id":null,"html_url":"https://github.com/itaditya/simple-unfurl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/itaditya/simple-unfurl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itaditya%2Fsimple-unfurl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itaditya%2Fsimple-unfurl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itaditya%2Fsimple-unfurl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itaditya%2Fsimple-unfurl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itaditya","download_url":"https://codeload.github.com/itaditya/simple-unfurl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itaditya%2Fsimple-unfurl/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267097083,"owners_count":24035490,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-25T02:00:09.625Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-09T21:19:29.950Z","updated_at":"2025-07-26T01:09:24.098Z","avatar_url":"https://github.com/itaditya.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## What is it ?\n\nWhen you share a link on Fb, Twitter or Whatsapp, you must have noticed that a stylish preview is generated. This is meant to provide good UX to the user and because everyone is providing this, user expects the same from your application. Don't let your users down, **follow the trend**, unfurl those links easily.\n\n[![npm version](https://badge.fury.io/js/simple-unfurl.svg)](https://badge.fury.io/js/simple-unfurl) [![npm](https://img.shields.io/npm/dm/simple-unfurl.svg)](https://www.npmjs.com/package/simple-unfurl) \n![Github file size](https://img.shields.io/github/size/itaditya/simple-unfurl/index.js.svg)\n [![Open Source Love](https://badges.frapsoft.com/os/mit/mit.svg?v=102)](https://badge.fury.io/js/simple-unfurl) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com) \n\n## How To Use\n\n```js\nconst unfurl = require('simple-unfurl');\n\nconst url = 'https://medium.freecodecamp.org/avoiding-the-async-await-hell-c77a0fb71c4c';\nconst pageData = await unfurl(url);\n\n// Output\n{\n  url: 'https://medium.freecodecamp.org/avoiding-the-async-await-hell-c77a0fb71c4c',\n  title: 'How to escape async/await hell - freeCodeCamp',\n  description: \"async/await freed us from callback hell, but people have started abusing it - leading to the birth of async/await hell. In this article, I will try to explain what async/await hell is, and I'll also.\",\n  imageUrl: 'https://cdn-images-1.medium.com/max/1200/1*_3nDjjPTWn4ohLt96IcwCA.png'\n}\n```\n\n### You can check the [demo](/demo) for a fully working example\n\n## API\n\n```js\nunfurl(url, mapping)\n```\n| Argument Name  | Type   | Description                     | Required | Default |\n| -------------  | ------ | ----------------------------    | -------- | ------- |\n| url            | String | link to generate preview for    | true     | N/A     |\n| mapping        | Object | map object key to meta tag name | false    | { title: 'title', description: 'description', imageUrl: 'twitter:image:src' } |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitaditya%2Fsimple-unfurl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitaditya%2Fsimple-unfurl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitaditya%2Fsimple-unfurl/lists"}