Socialite
is a quick and easy way to parse a url: string
to determine:
- What social network it belongs to.
- What the
user
handle is. - What the social
prefix
is (if relevant). - What each url segment is, broken up into groups.
The minimum criteria for parsing a url
is:
- domain:
https://www.{{domain}}.com/path
- tldomain:
https://www.domain{{.com}}/path
Simply install via the command-line or include in your package.json
, just like any other dependency.
# Alternatively install with `yarn` or `pnpm`
npm install socialitejs
By default, Socialite
includes only a small collection of the most common social networks. The exact networks included can be found in the defaultSocialiteNetworks
array. A typical use case looks like:
import {Socialite} from 'socialitejs';
const socialiteInstance = new Socialite();
const mySocialUrl = 'https://www.twitter.com/@SomeFakeUserHandle';
const parsedSocialUrl = socialiteInstance.parseProfile(mySocialUrl);
console.log(parsedSocialUrl);
The above will log the following SocialiteProfile
(object) to the console:
{
id: 'twitter',
prefix: '@',
user: 'SomeFakeUserHandle',
originalUrl: 'https://www.twitter.com/@SomeFakeUserHandle',
preferredUrl: 'https://twitter.com/@SomeFakeUserHandle',
appUrl: 'https://mobile.twitter.com/@SomeFakeUserHandle',
urlGroups: {
scheme: 'https://',
subdomain: 'www.',
domain: 'twitter',
tldomain: '.com',
path: '/@SomeFakeUserHandle',
// Other url parts are omitted if `undefined`
},
}
For a more robust collection of social networks, you can import the socialiteNetworks
object and use it (at least) one of two ways:
import {Socialite, socialiteNetworks, type SocialiteId} from 'socialitejs';
// Adding all social networks in bulk:
const allNetworksInstance = new Socialite(Object.values(socialiteNetworks));
// Logs to the console all social networks included in the code base.
console.log(allNetworksInstance.getAllNetworks());
// Initializing `Socialite` without any networks (pass empty `array`):
const selectiveNetworksInstance = new Socialite([]);
const excludedNetworks: SocialiteId[] = ['discord', 'facebook', 'reddit'];
Object.keys(socialiteNetworks).forEach((network) => {
if (!excludedNetworks.includes(network.id)) {
selectiveNetworksInstance.addNetwork(network);
}
});
// Logs to the console all social networks not found in `excludedNetworks`.
console.log(selectiveNetworksInstance.getAllNetworks());
...this section is incomplete... check back later for API documentation.