SharePointUserFabric
@spartanfx/react / SharePointUserFabric
Class: SharePointUserFabric
Utility class for retrieving and caching SharePoint users using PnPjs.
Remarks
- Provides cached lookups for SharePoint users to minimize redundant API calls.
- Supports resolving users by login name, email, or ID.
- Uses SharePoint’s
clientPeoplePickerSearchUserAPI for email-based lookups.
Examples
Minimal usage:
const userFabric = new SharePointUserFabric();
const user = await userFabric.getUserByLoginName("i:0#.f|membership|someone@contoso.com");
console.log(user.Title);
Advanced usage (resolving by email with fallback to login name):
const userFabric = new SharePointUserFabric();
const user = await userFabric.getUserByEmail("someone@contoso.com");
if (user) {
console.log(`Resolved user: ${user.Title} (${user.LoginName})`);
}
Constructors
Constructor
new SharePointUserFabric():
SharePointUserFabric
Returns
SharePointUserFabric
Methods
getById()
getById(
id):Promise<ISiteUserInfo>
Retrieves a user by their SharePoint user ID.
Parameters
id
number
The numeric SharePoint user ID.
Returns
Promise<ISiteUserInfo>
The resolved ISiteUserInfo or null if no ID is provided.
Example
const user = await userFabric.getById(7);
console.log(user.Title);
getUserByEmail()
getUserByEmail(
Promise<ISiteUserInfo>
Retrieves a user by their email address.
Parameters
email
string
The user’s email address.
Returns
Promise<ISiteUserInfo>
The resolved ISiteUserInfo or null if no email is provided or user not found.
Remarks
- Uses People Picker API to resolve login name from email, then calls getUserByLoginName.
Example
const user = await userFabric.getUserByEmail("someone@contoso.com");
getUserByLoginName()
getUserByLoginName(
loginName):Promise<ISiteUserInfo>
Retrieves a user by their SharePoint login name.
Parameters
loginName
string
The login name (e.g. i:0#.f|membership|user@contoso.com).
Returns
Promise<ISiteUserInfo>
The resolved ISiteUserInfo or undefined if no login name is provided.
Example
const user = await userFabric.getUserByLoginName("i:0#.f|membership|someone@contoso.com");