if-follow-package
                                
                                
                                
                                    if-follow-package copied to clipboard
                            
                            
                            
                        `if-follow-package` is a JavaScript library that provides APIs for managing followers and followings on GitHub
if-follow-package
if-follow-packageis aJavaScript librarythat provides APIs formanaging followers and followings on GitHub.
if-follow-package allows you the following:
- 
find users who are not following you back - 
find users who are following you back - 
unfollow users who are not following you back - 
check if a user is following you - 
check if you are following a user - 
get the exact total number of followings - 
get the exact total number of followers - 
and other follow control features 
Table of Contents
- Installation
- Install from npm registry
 - Install from Github Packages registry
 - Include in html page from CDN
 
 - Usage
 - API References
 - API Documentation
 - Contributing
 - Best Practices
 - License
 - History
 
Installation
Install from npm registry(Preference)
npm install if-follow-package
Install from Github Packages registry(require authentication)
npm install @farhan7reza7/if-follow-package
Steps to install from Github Packages registry:
Include in html page from CDN
OR for version 2.1.3 and above
Can include in page using script tag from CDN
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/axios.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/lib/index.min.js"></script>
Get any supported version script tag
Usage
Initialize:
//const ifFollow = require('@farhan7reza7/if-follow-package'); //or
const ifFollow = require('if-follow-package'); // can use any if authenticated
OR for version 2.1.3 and above
Can include in html page using script tag from CDN
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/axios.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/lib/index.min.js"></script>
Create an instance:
const yourUsername = 'username';  // replace with your username
const yourToken = 'access-token' // replace with your access token
const followController = ifFollow(yourUsername, yourToken);
Note: For CDN based, only ifFollow function name creates an instance
See an example of using CDN based
Steps to generate access-token:
Or if already know creating token
Use Methods to manage follow:
- 
Get a list of users who are not following you back
 
const notFollowingBackList = followController.whoNotFollowingBack();
- 
Get a list of users who are following you back
 
const followingBackList = followController.whoFollowingBack();
- 
Check if a specific user is following you back
 
const isFollowingBackMessage = followController.isFollowingBack('username');
- 
Unfollow a user who is not following you back
 
followController.unfollowNotFollowingBack('username');
- 
Unfollow all users who are not following you back
 
followController.unfollowAllNotFollowingBack();
- 
Check if a user is following you
 
const isFollowerMessage = followController.isFollower('username');
- 
Check if you are following a user
 
const isFollowingMessage = followController.isFollowing('username');
- 
Get the total number of followers
 
const totalFollowersMessage = followController.totalFollowers();
- 
Get the total number of followings
 
const totalFollowingsMessage = followController.totalFollowings();
Get Built in  codes for using if-follow-package any Method on created instance(followController)
Managed Outputs (example user outputs):
isFollower(username)
// Test case: user is a follower
const result1 = followController.isFollower('farhan7reza7');
result1.then((result) => {
    console.log(result);  // Output: "Yes, farhan7reza7 follows you!"
});
// Test case: user is not a follower
const result2 = followController.isFollower('diff-ymd-package');
result2.then((result) => {
  console.log(result);  // Output: "No, diff-ymd-package does not follow you!"
});
isFollowing(username)
// Test case: user is followed
const result3 = followController.isFollowing('farhan7reza7');
result3.then((result) => {
  console.log(result); // Output: "Yes, you follow farhan7reza7!"
});
// Test case: user is not followed
const result4 = followController.isFollowing('anaseem80');
result4.then((result) => {
  console.log(result);  // Output: "No, you do not follow anaseem80!"
});
totalFollowers()
const result5 = followController.totalFollowers();
result5.then((result) => {
  console.log(result);  // Output: "Your total Followers: 1657"
});
totalFollowings()
const result6 = followController.totalFollowings();
result6.then((result) => {
  console.log(result);  // Output: "Your total Followings: 1067`
});
whoNotFollowingBack()
const result7 = followController.whoNotFollowingBack();
result7.then((result) => {
  console.log(result); // Output: ["diff-ymd-package", "Open-Sourced-Org", "username4", "usernameN"]
}); 
whoFollowingBack()
const result8 = followController.whoFollowingBack();
result8.then((result) => {
  console.log(result); // Output: ["farhan7reza7", "username2", "username3", "usernameN"]
}); 
isFollowingBack(username)
// Test case: user is following back
const result9 = followController.isFollowingBack('farhan7reza7');
result9.then((result) => {
  console.log(result); // Output: "Yes, farhan7reza7 following back!"
});  
// Test case: user is not following back
const result10 = followController.isFollowingBack('diff-ymd-package');
result10.then((result) => {
  console.log(result); // Output: "No, diff-ymd-package does not following back!"
}); 
unfollowNotFollowingBack(username)
// Test case: unfollow a user who is not following back
const result11 = followController.unfollowNotFollowingBack('diff-ymd-package');
                 //Console Output: "Unfollowed: diff-ymd-package"
// not needed to console, because internally log message, just only call
result11.then((result) => {
  console.log(result); // Output: "undefined"
}); 
unfollowAllNotFollowingBack()
// Test case: unfollow all users who are not following back
const result12 = followController.unfollowAllNotFollowingBack();
                 /* Console Output: "Unfollowed: Open-Sourced-Org"
                                    "Unfollowed: username2"
                                    "Unfollowed: username3"
                                    "Unfollowed: usernameN"*/
     
// not return anything, and internally log message, just only call
result12.then((result) => {
  console.log(result); // Output: "undefined"
});       
 
API References
if-follow-package
- Classes
- IfFollow
- Create an instance of IfFollow:
 - Methods:
- isFollower(username)
 - isFollowing(username)
 - totalFollowers()
 - totalFollowings()
 - whoNotFollowingBack()
 - whoFollowingBack()
 - isFollowingBack(username)
 - unfollowNotFollowingBack(username)
 - unfollowAllNotFollowingBack()
 
 
 
 - IfFollow
 
API Documentation
IfFollow
Represents a class for managing followers and followings on GitHub.
Initialize:
const ifFollow = require('if-follow-package');
ifFollow is a function which creates an instance of IfFollow
Create an instance of IfFollow:
const followController = ifFollow(yourUsername, yourToken);
- 
yourUsername: Your GitHub username. - 
yourToken: Your GitHub personal access token. - 
Returns:An object containing functions to interact with followers and followings on Github. 
Methods:
- 
isFollower(username) 
Check if a user is following you.
const isFollowerMessage = followController.isFollower('username');
username: The username of the user you want to check.
Returns: A message indicating if the user is following you.
- 
isFollowing(username) 
Check if you are following a user.
const isFollowingMessage = followController.isFollowing('username');
username: The username of the user you want to check.
Returns: A message indicating if you are following the user.
- 
totalFollowers() 
Get the total number of followers.
const totalFollowersMessage = followController.totalFollowers();
Returns: A message with the total number of followers.
- 
totalFollowings() 
Get the total number of followings.
const totalFollowingsMessage = followController.totalFollowings();
Returns: A message with the total number of followings.
- 
whoNotFollowingBack() 
Get a list of users who are not following you back.
const notFollowingBackList = followController.whoNotFollowingBack();
Returns: An array of usernames who are not following you back.
- 
whoFollowingBack() 
Get a list of users who are following you back.
const followingBackList = followController.whoFollowingBack();
Returns: An array of usernames who are following you back.
- 
isFollowingBack(username) 
Check if a specific user is following you back.
const isFollowingBackMessage = followController.isFollowingBack('username');
username: The username of the user you want to check.
Returns: A message indicating if the user is following you back.
- 
unfollowNotFollowingBack(username) 
Unfollow a user who is not following you back.
followController.unfollowNotFollowingBack('username');
username: The username of the user you want to unfollow.
Returns:  {Promise
Special case: It outputs message in console/terminal indicating which user unfollowed
- 
unfollowAllNotFollowingBack() 
Unfollow all users who are not following you back.
followController.unfollowAllNotFollowingBack();
Returns: {Promise
Special case: It outputs messages in console/terminal indicating which users unfollowed
For more information:
See if-follow-package Documentation
Contributing
If you find any issues or have suggestions for improvement, please open an issue or create a pull request on the GitHub repository.
See CONTRIBUTING guidelines for more information.
Best Practices:
The code adheres to recommended practices for readability and maintainability, including:
- Meaningful variable and function names for clarity.
 - Clear and concise comments to enhance understanding.
 - Proper indentation and formatting for visual organization.
 
See mdn guidelines for more information.
License
This project is licensed under the MIT License - see the LICENSE file for details.
History
For more details about what has changed in each version of this project.