UNPKG

@sysdoc/sharepoint-utils

Version:

Sysdoc's core Sharepoint utilities

191 lines (190 loc) 6.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createSchemaFromFieldNames = exports.prepareFieldInternalName = exports.multiTaxonomyFieldToObjects = exports.userMultiValueToObjects = exports.userValueToObject = exports.lookupMultiValueToObjects = exports.lookupValueToObject = exports.createMultiUserValue = exports.createUserValue = exports.taxonomyStringToObjectArr = exports.taxonomyFieldToObject = exports.createTaxonomyValue = exports.createMultiLookupFieldValue = exports.createLookupFieldValue = exports.escapeFieldValue = exports.createMultiTaxonomyValue = exports.setRestFieldValueByType = exports.getRestFieldValueByType = exports.getFieldValueByType = void 0; var _ = require("lodash"); var PnPFieldType_1 = require("../jsom/PnPFieldType"); function getFieldValueByType(item, fieldName, fieldType, fieldValues) { fieldType = fieldType.toLowerCase(); var val = fieldValues[fieldName]; switch (fieldType) { case "taxonomyfieldtype": return taxonomyFieldToObject(val); case "taxonomyfieldtypemulti": return multiTaxonomyFieldToObjects(val); case "user": return userValueToObject(val); case "usermulti": return userMultiValueToObjects(val); case "lookup": return lookupValueToObject(val); case "lookupmulti": return lookupMultiValueToObjects(val); default: return val; } } exports.getFieldValueByType = getFieldValueByType; function getRestFieldValueByType(item, fieldName, fieldType) { var val = item[fieldName]; if (!val) { return null; } switch (fieldType) { case PnPFieldType_1.PnPFieldType.DateTime: return new Date(val); default: return val; } } exports.getRestFieldValueByType = getRestFieldValueByType; function setRestFieldValueByType(item, fieldName, fieldType) { var val = item[fieldName]; if (!val) { return null; } switch (fieldType) { case PnPFieldType_1.PnPFieldType.DateTime: return new Date(val); default: return val; } } exports.setRestFieldValueByType = setRestFieldValueByType; function createMultiTaxonomyValue(ctx, taxField, val) { if (val) { return new SP.Taxonomy.TaxonomyFieldValueCollection(ctx, val.map(function (e) { return "-1;#" + e.label + "|" + e.id; }).join(";#"), taxField); } return new SP.Taxonomy.TaxonomyFieldValueCollection(ctx, null, taxField); } exports.createMultiTaxonomyValue = createMultiTaxonomyValue; function escapeFieldValue(fieldValue) { switch (typeof fieldValue) { case "string": return "'" + fieldValue + "'"; default: return "" + fieldValue; } } exports.escapeFieldValue = escapeFieldValue; function createLookupFieldValue(val) { var lval = new SP.FieldLookupValue(); if (val && val.id) { lval.set_lookupId(val.id); return lval; } return null; } exports.createLookupFieldValue = createLookupFieldValue; function createMultiLookupFieldValue(val) { if (val && val.length > 0) { return val.map(function (e) { return createLookupFieldValue(e); }); } return null; } exports.createMultiLookupFieldValue = createMultiLookupFieldValue; function createTaxonomyValue(val) { var tval = new SP.Taxonomy.TaxonomyFieldValue(); if (val && val.id) { tval.set_termGuid(new SP.Guid(val.id)); tval.set_label(val.label); tval.set_wssId(-1); return tval; } return null; } exports.createTaxonomyValue = createTaxonomyValue; function taxonomyFieldToObject(val) { if (val && val.get_termGuid) { return { id: val.get_termGuid().toString(), label: val.get_label() }; } } exports.taxonomyFieldToObject = taxonomyFieldToObject; function taxonomyStringToObjectArr(val) { if (val) { return val.split(";").map(function (e) { return ({ id: e.split("|")[1], label: e.split("|")[0] }); }); } return []; } exports.taxonomyStringToObjectArr = taxonomyStringToObjectArr; function createUserValue(val) { var tval = new SP.FieldUserValue(); if (val && val.id) { tval.set_lookupId(val.id); return tval; } return null; } exports.createUserValue = createUserValue; function createMultiUserValue(val) { var tval = []; if (val && val.length > 0) { return val.map(function (e) { return createUserValue(e); }); } return null; } exports.createMultiUserValue = createMultiUserValue; function lookupValueToObject(val) { return (val && val.get_lookupId && { id: val.get_lookupId(), label: val.get_lookupValue() }) || null; } exports.lookupValueToObject = lookupValueToObject; function lookupMultiValueToObjects(val) { if (val && val.length > 0) { return val.map(function (e) { return lookupValueToObject(e); }); } return []; } exports.lookupMultiValueToObjects = lookupMultiValueToObjects; function userValueToObject(val) { return (val && val.get_lookupId && { id: val.get_lookupId(), label: val.get_lookupValue(), email: val.get_email && val.get_email() }) || null; } exports.userValueToObject = userValueToObject; function userMultiValueToObjects(val) { if (val && val.length > 0) { return val.map(function (e) { return userValueToObject(e); }); } return []; } exports.userMultiValueToObjects = userMultiValueToObjects; function multiTaxonomyFieldToObjects(val) { if (val) { var tx = val.get_data(); return tx.map(function (e) { return taxonomyFieldToObject(e); }); } return []; } exports.multiTaxonomyFieldToObjects = multiTaxonomyFieldToObjects; function prepareFieldInternalName(fieldName, prefix, replace) { if (replace === void 0) { replace = ""; } return _.camelCase(prefix ? fieldName.replace(prefix, replace) : fieldName); } exports.prepareFieldInternalName = prepareFieldInternalName; function createSchemaFromFieldNames(fields, prefix) { var schema = {}; fields.forEach(function (name) { schema[name] = prepareFieldInternalName(name, prefix); }); return schema; } exports.createSchemaFromFieldNames = createSchemaFromFieldNames;