@sysdoc/sharepoint-utils
Version:
Sysdoc's core Sharepoint utilities
191 lines (190 loc) • 6.64 kB
JavaScript
;
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;