Package Exports
- social-links
- social-links/lib/main.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (social-links) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Social Links
Social Links is helping to detect, validate and sanitize social (desktop & mobile) links
Install
npm i social-links --save
Demo
- https://awesome-web-tools.web.app/social-links - Example use case
- https://gkucmierz.github.io/social-links-app - Detect profile demo (v1.7.0)
Using
import { SocialLinks, TYPE_MOBILE } from 'social-links';
const socialLinks = new SocialLinks();
const link = 'http://www.linkedin.com/in/gkucmierz';
const profileName = socialLinks.detectProfile(link); // 'linkedin'
console.log(socialLinks.isValid(profileName, link)); // true
console.log(socialLinks.sanitize(profileName, link)); // 'https://linkedin.com/in/gkucmierz'
console.log(socialLinks.sanitize(profileName, link, TYPE_MOBILE)); // 'https://linkedin.com/mwlite/in/gkucmierz'
Above examples works based on predefined linkedin profile:
import { Profile } from 'social-links';
const linkedinProfile: Profile =
{ name: 'linkedin',
matches: [
{
match: '(https?://)?(www.)?linkedin.com/in/({PROFILE_ID})', group: 3, type: TYPE_DESKTOP,
pattern: 'https://linkedin.com/in/{PROFILE_ID}'
},
{
match: '(https?://)?(www.)?linkedin.com/mwlite/in/({PROFILE_ID})', group: 3, type: TYPE_MOBILE,
pattern: 'https://linkedin.com/mwlite/in/{PROFILE_ID}'
},
{ match: '({PROFILE_ID})', group: 1 },
]
};
Add new profile
import { SocialLinks, Profile } from 'social-links';
const socialLinks = new SocialLinks();
const profileMatches: ProfileMatch[] = [ ... ];
socialLinks.addProfile('profileName', profileMatches);
Configuration
import { SocialLinks, Config } from 'social-links';
const config: Config = {
usePredefinedProfiles: true,
trimInput: true,
allowQueryParams: false,
};
const socialLinks = new SocialLinks(config);
Build
Watch, tsc build
npm run start
Tests
Just jest tests
npm run test
or
npm run test:watch