@sysdoc/sharepoint-utils
Version:
Sysdoc's core Sharepoint utilities
37 lines (36 loc) • 1.56 kB
TypeScript
/*!
* Copyright Sysdoc @ 2019
*/
/// <reference types="sharepoint" />
import { Dictionary, ILogger } from "@sysdoc/utilities";
import { ExecutorFn } from "../util/executor";
import { IPnPField } from "./IPnPField";
import { ISPFieldsFilterStrategy } from "./ISPFieldsFilterStrategy";
import { ISPListItem } from "./ISPListItem";
import { ISPListItemSerializer } from "./ISPListItemSerializer";
export interface ISPBasicListProviderConfig {
listTitle: string;
webUrl?: string;
fields?: Dictionary<string>;
logger: ILogger;
fieldsFilterStrategy?: ISPFieldsFilterStrategy;
}
export declare class SPBasicListProvider<T extends ISPListItem> implements ISPListItemSerializer<T> {
_ready: Promise<any>;
listTitle: string;
logger: ILogger;
webUrl: string;
fields: Dictionary<string>;
schema: Dictionary<IPnPField>;
filterStrategy: ISPFieldsFilterStrategy;
constructor(cfg: ISPBasicListProviderConfig);
itemToJson(item: SP.ListItem<any>): Partial<T>;
jsonToItem(json: T, item: SP.ListItem<any>): SP.ListItem<any>;
update(obj: T, exec?: ExecutorFn): Promise<Partial<T>>;
create(obj: T, exec?: ExecutorFn, folderUrl?: string): Promise<Partial<T>>;
save(obj: T, exec?: ExecutorFn): Promise<Partial<T>>;
getByQuery(query: SP.CamlQuery, exec?: ExecutorFn): Promise<Partial<T>[]>;
getAll(exec?: ExecutorFn): Promise<Partial<T>[]>;
get(key: number, exec?: ExecutorFn): Promise<Partial<T>>;
delete(key: number, exec?: ExecutorFn): Promise<void>;
}