@data-client/core
Version:
Async State Management without the Management. REST, GraphQL, SSE, Websockets, Fetch
27 lines (24 loc) • 873 B
text/typescript
import type { Fixture, Interceptor } from './fixtureTypes.js';
export function createFixtureMap(fixtures: (Fixture | Interceptor)[] = []) {
const map: Map<string, Fixture> = new Map();
const computed: Interceptor[] = [];
for (const fixture of fixtures) {
if ('args' in fixture) {
if (typeof fixture.response !== 'function') {
const key = fixture.endpoint.key(...fixture.args);
map.set(key, fixture);
} else {
// this has to be a typo. probably needs to remove args
console.warn(
`Fixture found with function response, and explicit args. Interceptors should not specify args.
${fixture.endpoint.name}: ${JSON.stringify(fixture.args)}
Treating as Interceptor`,
);
computed.push(fixture as any);
}
} else {
computed.push(fixture);
}
}
return [map, computed] as const;
}