blob: 09586c0997a91434ef2937cf1312f2720d4905cb [file] [log] [blame]
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.
import FauxtonAPI from "../../../core/api";
const getIndexName = ({def, type}) => {
let nameArray = [],
indexes;
nameArray = def.fields.reduce(function (acc, el, i) {
if (i === 0) {
acc.push(type + ': ' + Object.keys(el)[0]);
} else {
acc.push(Object.keys(el)[0]);
}
return acc;
}, []);
if (!nameArray.length) {
indexes = FauxtonAPI.getExtensions('mango:additionalIndexes')[0];
if (indexes) {
nameArray = indexes.createHeader({def, type});
} else {
nameArray = [type + ': ' + (def.selector ? JSON.stringify(def.selector) : '{}')];
}
}
return nameArray.join(', ');
};
const formatCode = (code) => {
return JSON.stringify(code, null, 3);
};
const getIndexContent = (doc) => {
const content = {
...doc
};
delete content.ddoc;
delete content.name;
return JSON.stringify(content, null, ' ');
};
export default {
getIndexName,
formatCode,
getIndexContent
};