@microsoft/mgt-sharepoint-provider
Version:
The Microsoft Graph Toolkit SharePoint Provider
98 lines • 3.31 kB
JavaScript
/**
* -------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.
* See License in the project root for license information.
* -------------------------------------------------------------------------------------------
*/
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import { IProvider, ProviderState, createFromProvider, MICROSOFT_GRAPH_DEFAULT_ENDPOINT } from '@microsoft/mgt-element';
/**
* SharePoint Provider handler
*
* @export
* @class SharePointProvider
* @extends {IProvider}
*/
export class SharePointProvider extends IProvider {
/**
* returns _provider
*
* @readonly
* @memberof SharePointProvider
*/
get provider() {
return this._provider;
}
/**
* returns _idToken
*
* @readonly
* @type {boolean}
* @memberof SharePointProvider
*/
get isLoggedIn() {
return !!this._idToken;
}
/**
* Name used for analytics
*
* @readonly
* @memberof IProvider
*/
get name() {
return 'MgtSharePointProvider';
}
get scopes() {
return this._scopes;
}
set scopes(value) {
this._scopes = value;
// update the approved scopes as the internal set of scopes is added to.
this.approvedScopes = value;
}
constructor(context, baseUrl = MICROSOFT_GRAPH_DEFAULT_ENDPOINT) {
super();
void context.aadTokenProviderFactory.getTokenProvider().then((tokenProvider) => {
this._provider = tokenProvider;
this.baseURL = baseUrl;
this.graph = createFromProvider(this);
void this.internalLogin();
});
}
/**
* uses provider to receive access token via SharePoint Provider
*
* @returns {Promise<string>}
* @memberof SharePointProvider
*/
getAccessToken() {
return __awaiter(this, void 0, void 0, function* () {
const baseUrl = this.baseURL ? this.baseURL : MICROSOFT_GRAPH_DEFAULT_ENDPOINT;
return yield this.provider.getToken(baseUrl);
});
}
/**
* update scopes
*
* @param {string[]} scopes
* @memberof SharePointProvider
*/
updateScopes(scopes) {
this.scopes = scopes;
}
internalLogin() {
return __awaiter(this, void 0, void 0, function* () {
this._idToken = yield this.getAccessToken();
this.setState(this._idToken ? ProviderState.SignedIn : ProviderState.SignedOut);
});
}
}
//# sourceMappingURL=SharePointProvider.js.map