This repository has been archived on 2022-08-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
outline/server/presenters/collection.js
Tom Moor 449dc55aaa chore: Upgrade Babel, Jest, Eslint (#1437)
* chore: Upgrade Prettier 1.8 -> 2.0

* chore: Upgrade Babel 6 -> 7

* chore: Upgrade eslint plugins

* chore: Add eslint import/order rules

* chore: Update flow-typed deps
2020-08-08 22:53:59 -07:00

44 lines
1.0 KiB
JavaScript

// @flow
import naturalSort from "../../shared/utils/naturalSort";
import { Collection } from "../models";
type Document = {
children: Document[],
id: string,
title: string,
url: string,
};
const sortDocuments = (documents: Document[]): Document[] => {
const orderedDocs = naturalSort(documents, "title");
return orderedDocs.map((document) => ({
...document,
children: sortDocuments(document.children),
}));
};
export default function present(collection: Collection) {
const data = {
id: collection.id,
url: collection.url,
name: collection.name,
description: collection.description,
icon: collection.icon,
color: collection.color || "#4E5C6E",
type: collection.type,
private: collection.private,
createdAt: collection.createdAt,
updatedAt: collection.updatedAt,
deletedAt: collection.deletedAt,
documents: undefined,
};
if (collection.type === "atlas") {
// Force alphabetical sorting
data.documents = sortDocuments(collection.documentStructure);
}
return data;
}