Skip to main content
Version: 1.0.1

SharePointUserFabric

@spartanfx/react v1.0.1


@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 clientPeoplePickerSearchUser API 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(email): 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

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");