MCPcopy Index your code
hub / github.com/StarpTech/FastGraph / NewKVNamespace

Function NewKVNamespace

src/test-utils.ts:167–205  ·  view source on GitHub ↗
(
  bindingConfig: { name: string },
  store: Map<string, any> = new Map(),
  metadata: Map<string, any> = new Map(),
)

Source from the content-addressed store, hash-verified

165}
166
167export const NewKVNamespace = (
168 bindingConfig: { name: string },
169 store: Map<string, any> = new Map(),
170 metadata: Map<string, any> = new Map(),
171) => {
172 let binding = Namespace()
173 binding.get = (key: string, type: string) => {
174 const m = store.has(key)
175 if (m) {
176 const val = store.get(key)
177 return Promise.resolve(type === 'json' ? JSON.parse(val) : val)
178 }
179 return Promise.resolve(null)
180 }
181 binding.delete = (key: string) => {
182 store.delete(key)
183 metadata.delete(key)
184 return Promise.resolve()
185 }
186 binding.put = (key: string, value: any, m: any) => {
187 store.set(key, value)
188 metadata.set(key, m)
189 return Promise.resolve()
190 }
191 binding.getWithMetadata = async (
192 key: string,
193 options: { metadata: boolean; type: string },
194 ) => {
195 const m = metadata.get(key)
196 return {
197 value: await binding.get(key, options.type),
198 metadata: m?.metadata,
199 }
200 }
201 // @ts-ignore
202 globalThis[bindingConfig.name] = binding
203
204 return { store, metadata }
205}
206
207// @ts-ignore - faking it
208globalThis.Headers = class Headers extends Map {

Callers 3

apq.test.tsFile · 0.90
graphql.test.tsFile · 0.90
createKVNamespacesFunction · 0.85

Calls 4

NamespaceFunction · 0.85
hasMethod · 0.80
getMethod · 0.80
setMethod · 0.80

Tested by

no test coverage detected