{"version":3,"file":"createTrackingProxy.mjs","names":[],"sources":["../../src/trackingProxy/createTrackingProxy.ts"],"sourcesContent":["import {\n  ContextUtil,\n  JsonldDatasetProxyBuilder,\n} from \"@ldo/jsonld-dataset-proxy\";\nimport { LdoBuilder } from \"@ldo/ldo\";\nimport type { LdoBase, LdoDataset, ShapeType } from \"@ldo/ldo\";\nimport { TrackingProxyContext } from \"./TrackingProxyContext\";\nimport { defaultGraph } from \"@ldo/rdf-utils\";\nimport type { nodeEventListener } from \"@ldo/subscribable-dataset\";\nimport type { Quad } from \"@rdfjs/types\";\n\n/**\n * @internal\n * Creates a Linked Data Object builder that when creating linked data objects\n * it tracks when something that was read from it is updated and triggers some\n * action based on that.\n */\nexport function createTrackingProxyBuilder<Type extends LdoBase>(\n  dataset: LdoDataset,\n  shapeType: ShapeType<Type>,\n  onUpdate: nodeEventListener<Quad>,\n): LdoBuilder<Type> {\n  // Remove all current subscriptions\n  // dataset.removeListenerFromAllEvents(onUpdate);\n\n  // Rebuild the LdoBuilder from scratch to inject TrackingProxyContext\n  const contextUtil = new ContextUtil(shapeType.context);\n  const proxyContext = new TrackingProxyContext(\n    {\n      dataset,\n      contextUtil,\n      writeGraphs: [defaultGraph()],\n      languageOrdering: [\"none\", \"en\", \"other\"],\n    },\n    onUpdate,\n  );\n  const builder = new LdoBuilder(\n    new JsonldDatasetProxyBuilder(proxyContext),\n    shapeType,\n  );\n  return builder;\n}\n"],"mappings":";;;;;;;;;;;AAiBA,SAAgB,2BACd,SACA,WACA,UACkB;AAmBlB,QAAO,IAJa,WAClB,IAAI,0BAA0B,IAVP,qBACvB;EACE;EACA,aAAA,IAJoB,YAAY,UAAU,QAI/B;EACX,aAAa,CAAC,cAAc,CAAC;EAC7B,kBAAkB;GAAC;GAAQ;GAAM;GAAQ;EAC1C,EACD,SAG0C,CAAC,EAC3C,UAEY"}