MCPcopy Index your code
hub / github.com/TanStack/db / createPersistedQueryAdapter

Function createPersistedQueryAdapter

packages/query-db-collection/tests/query.test.ts:101–163  ·  view source on GitHub ↗
(
  seed: {
    rows?: ReadonlyMap<string, TItem>
    rowMetadata?: ReadonlyMap<string, unknown>
    collectionMetadata?: ReadonlyMap<string, unknown>
  } = {},
)

Source from the content-addressed store, hash-verified

99}
100
101function createPersistedQueryAdapter<TItem extends { id: string }>(
102 seed: {
103 rows?: ReadonlyMap<string, TItem>
104 rowMetadata?: ReadonlyMap<string, unknown>
105 collectionMetadata?: ReadonlyMap<string, unknown>
106 } = {},
107) {
108 const rows = new Map(seed.rows)
109 const rowMetadata = new Map(seed.rowMetadata)
110 const collectionMetadata = new Map(seed.collectionMetadata)
111
112 return {
113 rows,
114 rowMetadata,
115 collectionMetadata,
116 loadSubset: async () =>
117 Array.from(rows.values()).map((value) => ({
118 key: value.id,
119 value,
120 metadata: rowMetadata.get(value.id),
121 })),
122 loadCollectionMetadata: async () =>
123 Array.from(collectionMetadata.entries()).map(([key, value]) => ({
124 key,
125 value,
126 })),
127 scanRows: async () =>
128 Array.from(rows.values()).map((value) => ({
129 key: value.id,
130 value,
131 metadata: rowMetadata.get(value.id),
132 })),
133 applyCommittedTx: async (_collectionId: string, tx: any) => {
134 if (tx.truncate) {
135 rows.clear()
136 rowMetadata.clear()
137 }
138 for (const mutation of tx.mutations) {
139 if (mutation.type === `delete`) {
140 rows.delete(mutation.key)
141 rowMetadata.delete(mutation.key)
142 } else {
143 rows.set(mutation.key, mutation.value)
144 }
145 }
146 for (const mutation of tx.rowMetadataMutations ?? []) {
147 if (mutation.type === `delete`) {
148 rowMetadata.delete(mutation.key)
149 } else {
150 rowMetadata.set(mutation.key, mutation.value)
151 }
152 }
153 for (const mutation of tx.collectionMetadataMutations ?? []) {
154 if (mutation.type === `delete`) {
155 collectionMetadata.delete(mutation.key)
156 } else {
157 collectionMetadata.set(mutation.key, mutation.value)
158 }

Callers 1

query.test.tsFile · 0.85

Calls 8

fromMethod · 0.80
mapMethod · 0.45
valuesMethod · 0.45
getMethod · 0.45
entriesMethod · 0.45
clearMethod · 0.45
deleteMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…