a tool for shared writing and social publishing
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}