All files / dist/src ODataHelper.js

0% Statements 0/56
0% Branches 0/51
0% Functions 0/11
0% Lines 0/53
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79                                                                                                                                                             
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const ODATA_PARAMS = ['select', 'expand', 'orderby', 'top', 'skip', 'filter', 'format', 'inlinecount'];
exports.DATA_ROOT = 'OData.svc';
exports.combineODataFieldParameters = (...params) => {
    params.forEach((param) => {
        if (typeof param === 'string') {
            param = [param];
        }
    });
    params = params.filter((param) => param && param.length > 0);
    return [...new Set([].concat.apply([], params))];
};
exports.buildUrlParamString = (config, options) => {
    if (!options) {
        return '';
    }
    if (config.RequiredSelect === 'all' || config.DefaultSelect === 'all' || options.select === 'all') {
        options.select = undefined;
    }
    else {
        options.select = exports.combineODataFieldParameters(config.RequiredSelect, options.select || config.DefaultSelect);
    }
    options.metadata = options.metadata || config.DefaultMetadata;
    options.inlinecount = options.inlinecount || config.DefaultInlineCount;
    options.expand = options.expand || config.DefaultExpand;
    options.top = options.top || config.DefaultTop;
    const segments = [];
    for (const key in options) {
        const name = ODATA_PARAMS.indexOf(key) > -1 ? `$${key}` : key;
        const plainValue = options[key];
        let parsedValue = plainValue;
        if (plainValue instanceof Array && plainValue.length && plainValue.length > 0) {
            parsedValue = plainValue.map((v) => v.join && v.join(' ') || v).join(',');
        }
        if (name && parsedValue && parsedValue.length) {
            segments.push({ name, value: parsedValue });
        }
    }
    return segments.map((s) => `${s.name}=${s.value}`).join('&');
};
exports.getContentURLbyPath = (path) => {
    if (typeof path === 'undefined' || path.indexOf('/') < 0 || path.length <= 1) {
        throw new Error('This is not a valid path.');
    }
    if (exports.isItemPath(path)) {
        return path;
    }
    const lastSlashPosition = path.lastIndexOf('/');
    const name = path.substring(lastSlashPosition + 1);
    const parentPath = path.substring(0, lastSlashPosition);
    let url;
    if (name.indexOf('Root') > -1) {
        url = `${parentPath}/('${name}')`;
    }
    else {
        url = `${parentPath}('${name}')`;
    }
    return url;
};
exports.getContentUrlbyId = (id) => {
    return `/content(${id})`;
};
exports.isItemPath = (path) => {
    return path.indexOf("('") >= 0 && path.indexOf("')") === path.length - 2;
};
exports.joinPaths = (...args) => {
    const trimSlashes = (path) => {
        if (path.endsWith('/')) {
            path = path.substring(0, path.length - 1);
        }
        if (path.startsWith('/')) {
            path = path.substring(1, path.length);
        }
        return path;
    };
    return args.map(trimSlashes).join('/');
};
//# sourceMappingURL=ODataHelper.js.map