Changeset aed0092 in Klonkt for src/services/ap-core.js
- Timestamp:
- 08/11/2026 06:35:19 PM (4 weeks ago)
- Branches:
- main
- Children:
- 960f015
- Parents:
- cb3001e
- File:
-
- 1 edited
-
src/services/ap-core.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/services/ap-core.js
rcb3001e raed0092 187 187 return out; 188 188 } 189 190 /** 191 * Een AS2-collectie MET de paginavelden erbij (shaer-0nh, 11-8). 192 * 193 * WAAROM DIT EEN HELPER IS EN GEEN REGELS. Funkwhale weigerde onze outbox met 194 * "first: This field is required" en "last: This field is required" -- de eerste 195 * concrete reden die we hoorden waarom er niets van ons binnenkwam. AS2 EIST die 196 * velden niet, maar bijna iedereen pagineert, en een lezer die de paginaweg 197 * volgt liep dood. Toen dat voor de outbox gerepareerd was misten alle andere 198 * collecties ze nog steeds. Een helper zorgt dat de volgende collectie ze niet 199 * opnieuw vergeet. 200 * 201 * DE ITEMS BLIJVEN INLINE op de wortel. Shaer bouwt zijn feed daaruit, en wie 202 * hem vandaag leest hoort er morgen niet voor te hoeven pagineren. Onze 203 * collecties zijn gekapt, dus er is precies EEN pagina en wijzen first en last 204 * naar dezelfde. 205 * 206 * @param {string} id de collectie-uri, zonder query 207 * @param {Array} items wat erin zit (mag leeg) 208 * @param {object} opts 209 * totalItems als de telling niet items.length is (followers geeft publiek 210 * alleen een AANTAL en houdt de lijst dicht) 211 * page true -> een OrderedCollectionPage met partOf in plaats van de wortel 212 * extra velden die op de wortel horen (attributedTo, shaer:*) 213 */ 214 export function pagedCollection(id, items, { totalItems, page = false, extra = {} } = {}) { 215 const lijst = items || []; 216 const telling = totalItems === undefined ? lijst.length : totalItems; 217 const eerste = `${id}?page=1`; 218 if (page) { 219 return { 220 '@context': AP_CONTEXT, 221 id: eerste, 222 type: 'OrderedCollectionPage', 223 partOf: id, 224 totalItems: telling, 225 orderedItems: lijst, 226 }; 227 } 228 return { 229 '@context': AP_CONTEXT, 230 id, 231 type: 'OrderedCollection', 232 ...extra, 233 totalItems: telling, 234 first: eerste, 235 last: eerste, 236 orderedItems: lijst, 237 }; 238 }
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)