add optics for folder files path retrieval

This commit is contained in:
Loïs Mansot 2023-10-18 10:48:59 +02:00
parent 1c6b9680f9
commit 15b51a56a1
No known key found for this signature in database
GPG Key ID: 8CF1F4150DDA726D

View File

@ -10,6 +10,7 @@ import { Document, File, OfficeFolder } from "le-coffre-resources/dist/Notary";
export const folderDocumentsLens = Optics.Lens.fromNullableProp<OfficeFolder>()("documents", []);
export const documentFilesLens = Optics.Lens.fromNullableProp<Document>()("files", []);
export const fileHashLens = Optics.Lens.fromProp<File>()("hash");
export const filePathLens = Optics.Lens.fromProp<File>()("file_path");
/**
* Traversals
@ -17,13 +18,16 @@ export const fileHashLens = Optics.Lens.fromProp<File>()("hash");
export const documentsTraversal = Optics.fromTraversable(Array.Traversable)<Document>();
export const filesTraversal = Optics.fromTraversable(Array.Traversable)<File>();
export const folderHashesTraversal = folderDocumentsLens
export const folderFilesTraversal = folderDocumentsLens
.composeTraversal(documentsTraversal)
.composeLens(documentFilesLens)
.composeTraversal(filesTraversal)
.composeLens(fileHashLens);
.composeTraversal(filesTraversal);
export const folderHashesTraversal = folderFilesTraversal.composeLens(fileHashLens);
export const folderFilesPathTraversal = folderFilesTraversal.composeLens(filePathLens);
/**
* Getters
*/
export const getFolderHashes = (folder: OfficeFolder) => Traversal.getAll(folder)(folderHashesTraversal);
export const getFolderFilesPath = (folder: OfficeFolder) => Traversal.getAll(folder)(folderFilesPathTraversal);