@lindle/sharepoint_requests 0.1.16 → 0.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/root/index.d.ts +5 -3
- package/dist/root/internal/listRequests/createListItem.d.ts +1 -1
- package/dist/root/internal/listRequests/normalizePayload.d.ts +4 -0
- package/dist/root/internal/listRequests/updateListItem.d.ts +1 -1
- package/dist/root/internal/listRequests/uploadFile.d.ts +5 -2
- package/dist/sharepoint_requests.cjs.development.js +206 -10
- package/dist/sharepoint_requests.cjs.development.js.map +1 -1
- package/dist/sharepoint_requests.cjs.production.min.js +1 -1
- package/dist/sharepoint_requests.cjs.production.min.js.map +1 -1
- package/dist/sharepoint_requests.esm.js +206 -10
- package/dist/sharepoint_requests.esm.js.map +1 -1
- package/dist/types.d.ts +22 -7
- package/package.json +1 -1
- package/src/root/index.ts +7 -3
- package/src/root/internal/listRequests/createListItem.ts +10 -5
- package/src/root/internal/listRequests/normalizePayload.ts +165 -0
- package/src/root/internal/listRequests/updateListItem.ts +11 -3
- package/src/root/internal/listRequests/uploadFile.ts +32 -5
- package/src/types.ts +53 -24
package/dist/root/index.d.ts
CHANGED
|
@@ -27,17 +27,19 @@ declare class HTTPSharePointRequests<T extends {
|
|
|
27
27
|
};
|
|
28
28
|
getDigest(): Promise<string>;
|
|
29
29
|
from<K extends Extract<keyof T['LISTS'], string>, V extends SHAREPOINT_VER = '2013'>(listName: K, sharepoint_ver?: V): {
|
|
30
|
-
create: (data: ListData) => Promise<import("axios").AxiosResponse<any, any, {}>>;
|
|
30
|
+
create: (data: ListData<T["LISTS"][K]>) => Promise<import("axios").AxiosResponse<any, any, {}>>;
|
|
31
31
|
get: (options?: Options<T["LISTS"][K], V>) => Promise<{
|
|
32
32
|
data: (T["LISTS"][K] & Partial<import("../types").SPItem<V>>)[];
|
|
33
33
|
meta: {
|
|
34
34
|
url: URL;
|
|
35
35
|
};
|
|
36
36
|
}>;
|
|
37
|
-
update: (id: ItemID, data: ListData
|
|
37
|
+
update: (id: ItemID, data: ListData<T["LISTS"][K]>, digest?: string) => Promise<import("axios").AxiosResponse<any, any, {}>>;
|
|
38
38
|
delete: (id: ItemID) => Promise<import("axios").AxiosResponse<any, any, {}>>;
|
|
39
39
|
createFile: (props: CreateFileProps) => Promise<import("axios").AxiosResponse<any, any, {}>>;
|
|
40
|
-
uploadFile: (props: UploadFileProps) => Promise<import("axios").AxiosResponse<any, any, {}
|
|
40
|
+
uploadFile: (props: UploadFileProps) => Promise<import("axios").AxiosResponse<any, any, {}> & {
|
|
41
|
+
itemId?: ItemID;
|
|
42
|
+
}>;
|
|
41
43
|
deleteFile: (props: DeleteFileProps) => Promise<import("axios").AxiosResponse<any, any, {}>>;
|
|
42
44
|
fields: (options?: Field_Options<T["LISTS"][K], V>) => {
|
|
43
45
|
get: () => Promise<any>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ListData, SHAREPOINT_VER } from '../../../types';
|
|
2
2
|
import type { RequestContext } from '../context';
|
|
3
|
-
export declare function createListItem<V extends SHAREPOINT_VER = '2013'>(context: RequestContext<V>, listData: ListData): Promise<import("axios").AxiosResponse<any, any, {}>>;
|
|
3
|
+
export declare function createListItem<D = Record<string, unknown>, V extends SHAREPOINT_VER = '2013'>(context: RequestContext<V>, listData: ListData<D>): Promise<import("axios").AxiosResponse<any, any, {}>>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ListData, SHAREPOINT_VER } from '../../../types';
|
|
2
2
|
import type { RequestContext } from '../context';
|
|
3
|
-
export declare function updateListItem<V extends SHAREPOINT_VER = '2013'>(context: RequestContext<V>, id: number | string, data: ListData
|
|
3
|
+
export declare function updateListItem<D = Record<string, unknown>, V extends SHAREPOINT_VER = '2013'>(context: RequestContext<V>, id: number | string, data: ListData<D>, digest?: string): Promise<import("axios").AxiosResponse<any, any, {}>>;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AxiosResponse } from 'axios';
|
|
2
|
+
import type { ItemID, SHAREPOINT_VER, UploadFileProps } from '../../../types';
|
|
2
3
|
import type { RequestContext } from '../context';
|
|
3
|
-
export declare function uploadFile<V extends SHAREPOINT_VER = '2013'>(context: RequestContext<V>, { file, folderPath, overwrite }: UploadFileProps): Promise<
|
|
4
|
+
export declare function uploadFile<V extends SHAREPOINT_VER = '2013'>(context: RequestContext<V>, { file, folderPath, overwrite }: UploadFileProps): Promise<AxiosResponse & {
|
|
5
|
+
itemId?: ItemID;
|
|
6
|
+
}>;
|
|
@@ -7,6 +7,11 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
|
|
|
7
7
|
var axios = require('axios');
|
|
8
8
|
var axios__default = _interopDefault(axios);
|
|
9
9
|
|
|
10
|
+
function _arrayLikeToArray(r, a) {
|
|
11
|
+
(null == a || a > r.length) && (a = r.length);
|
|
12
|
+
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
|
|
13
|
+
return n;
|
|
14
|
+
}
|
|
10
15
|
function asyncGeneratorStep(n, t, e, r, o, a, c) {
|
|
11
16
|
try {
|
|
12
17
|
var i = n[a](c),
|
|
@@ -32,6 +37,23 @@ function _asyncToGenerator(n) {
|
|
|
32
37
|
});
|
|
33
38
|
};
|
|
34
39
|
}
|
|
40
|
+
function _createForOfIteratorHelperLoose(r, e) {
|
|
41
|
+
var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
42
|
+
if (t) return (t = t.call(r)).next.bind(t);
|
|
43
|
+
if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
|
|
44
|
+
t && (r = t);
|
|
45
|
+
var o = 0;
|
|
46
|
+
return function () {
|
|
47
|
+
return o >= r.length ? {
|
|
48
|
+
done: !0
|
|
49
|
+
} : {
|
|
50
|
+
done: !1,
|
|
51
|
+
value: r[o++]
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
56
|
+
}
|
|
35
57
|
function _extends() {
|
|
36
58
|
return _extends = Object.assign ? Object.assign.bind() : function (n) {
|
|
37
59
|
for (var e = 1; e < arguments.length; e++) {
|
|
@@ -149,6 +171,13 @@ function _regeneratorDefine(e, r, n, t) {
|
|
|
149
171
|
}) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
|
|
150
172
|
}, _regeneratorDefine(e, r, n, t);
|
|
151
173
|
}
|
|
174
|
+
function _unsupportedIterableToArray(r, a) {
|
|
175
|
+
if (r) {
|
|
176
|
+
if ("string" == typeof r) return _arrayLikeToArray(r, a);
|
|
177
|
+
var t = {}.toString.call(r).slice(8, -1);
|
|
178
|
+
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
152
181
|
|
|
153
182
|
var defaultConfig = {
|
|
154
183
|
headers: {
|
|
@@ -202,6 +231,144 @@ function _fetchDigest() {
|
|
|
202
231
|
return _fetchDigest.apply(this, arguments);
|
|
203
232
|
}
|
|
204
233
|
|
|
234
|
+
var LOOKUP_ID_KEYS = ['lookupId', 'LookupId', 'lookupID', 'LookupID', 'Id', 'ID'];
|
|
235
|
+
function isPlainObject(value) {
|
|
236
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
237
|
+
}
|
|
238
|
+
function extractLookupPrimitive(value, allowGenericId) {
|
|
239
|
+
for (var _iterator = _createForOfIteratorHelperLoose(LOOKUP_ID_KEYS), _step; !(_step = _iterator()).done;) {
|
|
240
|
+
var key = _step.value;
|
|
241
|
+
if (!allowGenericId && (key === 'Id' || key === 'ID')) {
|
|
242
|
+
continue;
|
|
243
|
+
}
|
|
244
|
+
if (value[key] !== undefined && value[key] !== null) {
|
|
245
|
+
return value[key];
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
return undefined;
|
|
249
|
+
}
|
|
250
|
+
function normalizeLookupValue(value) {
|
|
251
|
+
if (Array.isArray(value)) {
|
|
252
|
+
return {
|
|
253
|
+
results: value
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
if (isPlainObject(value)) {
|
|
257
|
+
if (Array.isArray(value.results)) {
|
|
258
|
+
return {
|
|
259
|
+
results: value.results
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
var primitive = extractLookupPrimitive(value, true);
|
|
263
|
+
if (primitive !== undefined) {
|
|
264
|
+
return primitive;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
if (typeof value === 'string') {
|
|
268
|
+
var trimmed = value.trim();
|
|
269
|
+
if (!trimmed) {
|
|
270
|
+
return value;
|
|
271
|
+
}
|
|
272
|
+
var numeric = Number(trimmed);
|
|
273
|
+
return Number.isNaN(numeric) ? trimmed : numeric;
|
|
274
|
+
}
|
|
275
|
+
return value;
|
|
276
|
+
}
|
|
277
|
+
function resolveLookupField(key, value) {
|
|
278
|
+
var lower = key.toLowerCase();
|
|
279
|
+
var endsWithId = lower.endsWith('id');
|
|
280
|
+
var endsWithRef = lower.endsWith('ref');
|
|
281
|
+
var endsWithLookup = lower.endsWith('lookup');
|
|
282
|
+
var hasLookupHint = endsWithId || endsWithRef || endsWithLookup;
|
|
283
|
+
if (value === undefined) {
|
|
284
|
+
return null;
|
|
285
|
+
}
|
|
286
|
+
if (Array.isArray(value)) {
|
|
287
|
+
var _targetKey = endsWithId ? key : key + "Id";
|
|
288
|
+
return {
|
|
289
|
+
key: _targetKey,
|
|
290
|
+
value: {
|
|
291
|
+
results: value
|
|
292
|
+
}
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
if (isPlainObject(value)) {
|
|
296
|
+
var primitive = extractLookupPrimitive(value, hasLookupHint);
|
|
297
|
+
if (primitive !== undefined) {
|
|
298
|
+
var _targetKey2 = endsWithId ? key : key + "Id";
|
|
299
|
+
return {
|
|
300
|
+
key: _targetKey2,
|
|
301
|
+
value: normalizeLookupValue(primitive)
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
if (Array.isArray(value.results)) {
|
|
305
|
+
var _targetKey3 = endsWithId ? key : key + "Id";
|
|
306
|
+
return {
|
|
307
|
+
key: _targetKey3,
|
|
308
|
+
value: {
|
|
309
|
+
results: value.results
|
|
310
|
+
}
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
if (!hasLookupHint) {
|
|
314
|
+
return null;
|
|
315
|
+
}
|
|
316
|
+
} else if (!hasLookupHint) {
|
|
317
|
+
return null;
|
|
318
|
+
}
|
|
319
|
+
var targetKey = endsWithId ? key : key + "Id";
|
|
320
|
+
if (value === null) {
|
|
321
|
+
return {
|
|
322
|
+
key: targetKey,
|
|
323
|
+
value: null
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
if (typeof value === 'number') {
|
|
327
|
+
return {
|
|
328
|
+
key: targetKey,
|
|
329
|
+
value: value
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
if (typeof value === 'string') {
|
|
333
|
+
var trimmed = value.trim();
|
|
334
|
+
if (!trimmed) {
|
|
335
|
+
return {
|
|
336
|
+
key: targetKey,
|
|
337
|
+
value: ''
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
var numeric = Number(trimmed);
|
|
341
|
+
return {
|
|
342
|
+
key: targetKey,
|
|
343
|
+
value: Number.isNaN(numeric) ? trimmed : numeric
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
return null;
|
|
347
|
+
}
|
|
348
|
+
function normalizeListPayload(data) {
|
|
349
|
+
var result = {};
|
|
350
|
+
if (!data) {
|
|
351
|
+
return result;
|
|
352
|
+
}
|
|
353
|
+
for (var _i = 0, _Object$entries = Object.entries(data); _i < _Object$entries.length; _i++) {
|
|
354
|
+
var _Object$entries$_i = _Object$entries[_i],
|
|
355
|
+
key = _Object$entries$_i[0],
|
|
356
|
+
value = _Object$entries$_i[1];
|
|
357
|
+
if (key === '__metadata') {
|
|
358
|
+
continue;
|
|
359
|
+
}
|
|
360
|
+
var lookupField = resolveLookupField(key, value);
|
|
361
|
+
if (lookupField) {
|
|
362
|
+
result[lookupField.key] = lookupField.value;
|
|
363
|
+
continue;
|
|
364
|
+
}
|
|
365
|
+
if (value !== undefined) {
|
|
366
|
+
result[key] = value;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
return result;
|
|
370
|
+
}
|
|
371
|
+
|
|
205
372
|
function resolveMetadataType(_x) {
|
|
206
373
|
return _resolveMetadataType.apply(this, arguments);
|
|
207
374
|
}
|
|
@@ -233,7 +400,7 @@ function createListItem(_x2, _x3) {
|
|
|
233
400
|
}
|
|
234
401
|
function _createListItem() {
|
|
235
402
|
_createListItem = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(context, listData) {
|
|
236
|
-
var metadataType, payload, response, _t, _t2, _t3, _t4, _t5;
|
|
403
|
+
var metadataType, normalizedData, userMetadata, payload, response, _t, _t2, _t3, _t4, _t5;
|
|
237
404
|
return _regenerator().w(function (_context2) {
|
|
238
405
|
while (1) switch (_context2.n) {
|
|
239
406
|
case 0:
|
|
@@ -241,10 +408,12 @@ function _createListItem() {
|
|
|
241
408
|
return resolveMetadataType(context);
|
|
242
409
|
case 1:
|
|
243
410
|
metadataType = _context2.v;
|
|
244
|
-
|
|
245
|
-
|
|
411
|
+
normalizedData = normalizeListPayload(listData);
|
|
412
|
+
userMetadata = listData.__metadata;
|
|
413
|
+
payload = _extends({}, normalizedData, {
|
|
414
|
+
__metadata: _extends({}, userMetadata && typeof userMetadata === 'object' ? userMetadata : {}, {
|
|
246
415
|
type: metadataType
|
|
247
|
-
}
|
|
416
|
+
})
|
|
248
417
|
});
|
|
249
418
|
_t = context;
|
|
250
419
|
_t2 = context.endpoint;
|
|
@@ -569,7 +738,7 @@ function updateListItem(_x2, _x3, _x4, _x5) {
|
|
|
569
738
|
}
|
|
570
739
|
function _updateListItem() {
|
|
571
740
|
_updateListItem = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(context, id, data, digest) {
|
|
572
|
-
var formDigestValue, metadataType, payload, url, response, _t;
|
|
741
|
+
var formDigestValue, metadataType, normalizedData, userMetadata, payload, url, response, _t;
|
|
573
742
|
return _regenerator().w(function (_context2) {
|
|
574
743
|
while (1) switch (_context2.n) {
|
|
575
744
|
case 0:
|
|
@@ -588,10 +757,12 @@ function _updateListItem() {
|
|
|
588
757
|
return resolveMetadataType$1(context);
|
|
589
758
|
case 3:
|
|
590
759
|
metadataType = _context2.v;
|
|
591
|
-
|
|
592
|
-
|
|
760
|
+
normalizedData = normalizeListPayload(data);
|
|
761
|
+
userMetadata = data.__metadata;
|
|
762
|
+
payload = _extends({}, normalizedData, {
|
|
763
|
+
__metadata: _extends({}, userMetadata && typeof userMetadata === 'object' ? userMetadata : {}, {
|
|
593
764
|
type: metadataType
|
|
594
|
-
}
|
|
765
|
+
})
|
|
595
766
|
});
|
|
596
767
|
url = "_api/lists/getbytitle('" + context.listName + "')/getItemById('" + id + "')";
|
|
597
768
|
_context2.n = 4;
|
|
@@ -620,7 +791,8 @@ function uploadFile(_x, _x2) {
|
|
|
620
791
|
}
|
|
621
792
|
function _uploadFile() {
|
|
622
793
|
_uploadFile = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(context, _ref) {
|
|
623
|
-
var
|
|
794
|
+
var _response$data$d, _response$data, _ref2, _ref3, _listItemFields$Id, _listItemFields$__def;
|
|
795
|
+
var file, folderPath, _ref$overwrite, overwrite, requestUrl, encodedFileName, digest, response, responseData, listItemFields, itemId, _listItemResponse$dat, _listItemResponse$dat2, _listItemResponse$dat3, listItemResponse, deferredId;
|
|
624
796
|
return _regenerator().w(function (_context) {
|
|
625
797
|
while (1) switch (_context.n) {
|
|
626
798
|
case 0:
|
|
@@ -640,7 +812,7 @@ function _uploadFile() {
|
|
|
640
812
|
requestUrl = "_api/web/lists/getbytitle('" + context.listName + "')/RootFolder";
|
|
641
813
|
requestUrl += buildLibraryPath(folderPath);
|
|
642
814
|
encodedFileName = encodeFileName(file.name);
|
|
643
|
-
requestUrl += "/Files/add(url='" + encodedFileName + "',overwrite=" + (overwrite ? 'true' : 'false') + ")";
|
|
815
|
+
requestUrl += "/Files/add(url='" + encodedFileName + "',overwrite=" + (overwrite ? 'true' : 'false') + ")?$expand=ListItemAllFields&$select=ListItemAllFields/Id";
|
|
644
816
|
_context.n = 3;
|
|
645
817
|
return fetchDigest(context.instance, context.baseURL);
|
|
646
818
|
case 3:
|
|
@@ -655,6 +827,30 @@ function _uploadFile() {
|
|
|
655
827
|
});
|
|
656
828
|
case 4:
|
|
657
829
|
response = _context.v;
|
|
830
|
+
responseData = (_response$data$d = (_response$data = response.data) == null ? void 0 : _response$data.d) != null ? _response$data$d : response.data;
|
|
831
|
+
listItemFields = responseData == null ? void 0 : responseData.ListItemAllFields;
|
|
832
|
+
itemId = (_ref2 = (_ref3 = (_listItemFields$Id = listItemFields == null ? void 0 : listItemFields.Id) != null ? _listItemFields$Id : listItemFields == null ? void 0 : listItemFields.ID) != null ? _ref3 : responseData == null ? void 0 : responseData.Id) != null ? _ref2 : responseData == null ? void 0 : responseData.ID;
|
|
833
|
+
if (!(typeof itemId !== 'undefined')) {
|
|
834
|
+
_context.n = 5;
|
|
835
|
+
break;
|
|
836
|
+
}
|
|
837
|
+
response.itemId = itemId;
|
|
838
|
+
_context.n = 7;
|
|
839
|
+
break;
|
|
840
|
+
case 5:
|
|
841
|
+
if (!(listItemFields != null && (_listItemFields$__def = listItemFields.__deferred) != null && _listItemFields$__def.uri)) {
|
|
842
|
+
_context.n = 7;
|
|
843
|
+
break;
|
|
844
|
+
}
|
|
845
|
+
_context.n = 6;
|
|
846
|
+
return context.instance.get(listItemFields.__deferred.uri);
|
|
847
|
+
case 6:
|
|
848
|
+
listItemResponse = _context.v;
|
|
849
|
+
deferredId = (_listItemResponse$dat = (_listItemResponse$dat2 = listItemResponse.data) == null || (_listItemResponse$dat2 = _listItemResponse$dat2.d) == null ? void 0 : _listItemResponse$dat2.Id) != null ? _listItemResponse$dat : (_listItemResponse$dat3 = listItemResponse.data) == null ? void 0 : _listItemResponse$dat3.Id;
|
|
850
|
+
if (typeof deferredId !== 'undefined') {
|
|
851
|
+
response.itemId = deferredId;
|
|
852
|
+
}
|
|
853
|
+
case 7:
|
|
658
854
|
return _context.a(2, response);
|
|
659
855
|
}
|
|
660
856
|
}, _callee);
|