Hyperlinkv0.9.0-beta.0

WorkPool

WorkPool.storefunctionsrc/WorkPool.ts:2258
<const Tag extends QueueStoreTag>(tag: Tag): ReturnType<
  typeof facetStoreRegistration<Tag, QueueStoreAnalyticsContract<Tag>>
>
<const Tag extends QueueStoreTag, const Shapes extends StoreShapes>(
  tag: Tag,
  extended: Shapes
): ReturnType<
  typeof facetStoreRegistration<
    Tag,
    QueueStoreAnalyticsContract<Tag>,
    Shapes
  >
>

Register this queue on an app Store.Service — built-in analytics spec with the tag's itemSchema injected. Pass a bare spec object to add app-specific methods (merged with built-in):

WorkPool.store(Mail)
WorkPool.store(Mail, {
  campaignAudit: campaignAuditSchema,
}, ({ campaignAudit, entry }) => ({
  appendCampaignAudit: campaignAudit.append,
}))
layers & servingStore.Service
Source src/WorkPool.ts:225815 lines
export function store<const Tag extends QueueStoreTag>(tag: Tag): ReturnType<
  typeof facetStoreRegistration<Tag, QueueStoreAnalyticsContract<Tag>>
>;
export function store<
  const Tag extends QueueStoreTag,
  const Shapes extends StoreShapes,
>(tag: Tag, extended: Shapes): ReturnType<
  typeof facetStoreRegistration<Tag, QueueStoreAnalyticsContract<Tag>, Shapes>
>;
export function store(tag: QueueStoreTag, extended?: StoreShapes) {
  const contract = makeQueueStoreAnalyticsContract(tag);
  return extended === undefined
    ? facetStoreRegistration(tag, contract)
    : facetStoreRegistration(tag, contract, extended);
}