Files
request-portal/src/webparts/requestPortal/shared/pnp/pnpjs.ts
T
Тимур Городецкий dc60d2dbee feat: added app routing
2026-08-03 17:58:24 +05:00

29 lines
1.2 KiB
TypeScript

import { spfi, SPFI, SPFx } from '@pnp/sp';
import '@pnp/sp/webs';
import '@pnp/sp/lists';
import '@pnp/sp/items';
import '@pnp/sp/attachments';
import '@pnp/sp/site-users/web';
import { WebPartContext } from '@microsoft/sp-webpart-base';
import { DATA_SITE_URL } from '../config';
// Единый инициализированный клиент PnPjs на весь web part.
let _sp: SPFI | undefined;
/**
* Инициализировать PnPjs контекстом web part. Вызывать один раз в onInit.
* Клиент нацелен на сайт данных (DATA_SITE_URL), а не на текущий сайт, —
* списки живут там, где бы ни стоял сам web part. Авторизация берётся из context.
*/
export function initSP(context: WebPartContext): void {
_sp = spfi(DATA_SITE_URL).using(SPFx(context));
}
/** Получить инициализированный клиент. Бросает, если initSP не был вызван. */
export function getSP(): SPFI {
if (!_sp) {
throw new Error('PnPjs не инициализирован: вызовите initSP(context) в onInit web part.');
}
return _sp;
}