Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export function _resortDocData(
queryChangeDetector: QueryChangeDetector,
resultsData: any[]
) {
const sortOptions = _getSortOptions(queryChangeDetector);
const rows = resultsData.map(doc => {
return {
doc: queryChangeDetector.query.collection.schema.swapPrimaryToId(doc)
};
});
const inMemoryFields = Object.keys(queryChangeDetector.query.toJSON().selector);
// TODO use createFieldSorter
const sortedRows: any[] = filterInMemoryFields(
rows, {
selector: queryChangeDetector.query.massageSelector,
sort: sortOptions
},
inMemoryFields
);
const sortedDocs = sortedRows
.map(row => row.doc)
.map(doc => queryChangeDetector.query.collection.schema.swapIdToPrimary(doc));
return sortedDocs;
}
}).then(function (res) {
if (opts.inclusive_start === false) {
// may have to manually filter the first one,
// since couchdb has no true inclusive_start option
res.rows = filterInclusiveStart(res.rows, opts.startkey, indexToUse);
}
if (queryPlan.inMemoryFields.length) {
// need to filter some stuff in-memory
res.rows = filterInMemoryFields(res.rows, requestDef, queryPlan.inMemoryFields);
}
var resp = {
docs: res.rows.map(function (row) {
var doc = row.doc;
if (requestDef.fields) {
return pick(doc, requestDef.fields);
}
return doc;
})
};
if (indexToUse.defaultUsed) {
resp.warning = 'no matching index found, create an index to optimize query time';
}
export function _resortDocData(queryChangeDetector, resultsData) {
var sortOptions = _getSortOptions(queryChangeDetector);
var rows = resultsData.map(function (doc) {
return {
doc: queryChangeDetector.query.collection.schema.swapPrimaryToId(doc)
};
});
var inMemoryFields = Object.keys(queryChangeDetector.query.toJSON().selector); // TODO use createFieldSorter
var sortedRows = filterInMemoryFields(rows, {
selector: queryChangeDetector.query.massageSelector,
sort: sortOptions
}, inMemoryFields);
var sortedDocs = sortedRows.map(function (row) {
return row.doc;
}).map(function (doc) {
return queryChangeDetector.query.collection.schema.swapIdToPrimary(doc);
});
return sortedDocs;
}
/**
export function _isSortedBefore(queryChangeDetector, docDataLeft, docDataRight) {
var sortOptions = _getSortOptions(queryChangeDetector);
var inMemoryFields = Object.keys(queryChangeDetector.query.toJSON().selector);
var swappedLeft = queryChangeDetector.query.collection.schema.swapPrimaryToId(docDataLeft);
var swappedRight = queryChangeDetector.query.collection.schema.swapPrimaryToId(docDataRight);
var rows = [swappedLeft, swappedRight].map(function (doc) {
return {
id: doc._id,
doc: doc
};
}); // TODO use createFieldSorter
var sortedRows = filterInMemoryFields(rows, {
selector: queryChangeDetector.query.massageSelector,
sort: sortOptions
}, inMemoryFields);
return sortedRows[0].id === swappedLeft._id;
}
/**
docDataRight: any
): boolean {
const sortOptions = _getSortOptions(queryChangeDetector);
const inMemoryFields = Object.keys(queryChangeDetector.query.toJSON().selector);
const swappedLeft = queryChangeDetector.query.collection.schema.swapPrimaryToId(docDataLeft);
const swappedRight = queryChangeDetector.query.collection.schema.swapPrimaryToId(docDataRight);
const rows = [
swappedLeft,
swappedRight
].map(doc => ({
id: doc._id,
doc
}));
// TODO use createFieldSorter
const sortedRows = filterInMemoryFields(
rows, {
selector: queryChangeDetector.query.massageSelector,
sort: sortOptions
},
inMemoryFields
);
return sortedRows[0].id === swappedLeft._id;
}