a tool for shared writing and social publishing
at update/delete-blocks 57 lines 1.9 kB view raw
1import { ids } from "lexicons/api/lexicons"; 2 3/** 4 * Check if a collection is a document collection (either namespace). 5 */ 6export function isDocumentCollection(collection: string): boolean { 7 return ( 8 collection === ids.PubLeafletDocument || 9 collection === ids.SiteStandardDocument 10 ); 11} 12 13/** 14 * Check if a collection is a publication collection (either namespace). 15 */ 16export function isPublicationCollection(collection: string): boolean { 17 return ( 18 collection === ids.PubLeafletPublication || 19 collection === ids.SiteStandardPublication 20 ); 21} 22 23/** 24 * Check if a collection belongs to the site.standard namespace. 25 */ 26export function isSiteStandardCollection(collection: string): boolean { 27 return collection.startsWith("site.standard."); 28} 29 30/** 31 * Check if a collection belongs to the pub.leaflet namespace. 32 */ 33export function isPubLeafletCollection(collection: string): boolean { 34 return collection.startsWith("pub.leaflet."); 35} 36 37/** 38 * Get the document $type to use based on an existing URI's collection. 39 * If no existing URI or collection isn't a document, defaults to site.standard.document. 40 */ 41export function getDocumentType(existingCollection?: string): "pub.leaflet.document" | "site.standard.document" { 42 if (existingCollection === ids.PubLeafletDocument) { 43 return ids.PubLeafletDocument as "pub.leaflet.document"; 44 } 45 return ids.SiteStandardDocument as "site.standard.document"; 46} 47 48/** 49 * Get the publication $type to use based on an existing URI's collection. 50 * If no existing URI or collection isn't a publication, defaults to site.standard.publication. 51 */ 52export function getPublicationType(existingCollection?: string): "pub.leaflet.publication" | "site.standard.publication" { 53 if (existingCollection === ids.PubLeafletPublication) { 54 return ids.PubLeafletPublication as "pub.leaflet.publication"; 55 } 56 return ids.SiteStandardPublication as "site.standard.publication"; 57}