@pothos/plugin-federation
Version:
A Pothos plugin for implementing apollo federation subGraphs
65 lines (64 loc) • 1.75 kB
JavaScript
export function keyDirective(key) {
if (Array.isArray(key)) {
return key.map(({ selection, resolvable }) => ({
name: "key",
args: {
fields: selection,
...resolvable === undefined ? {} : {
resolvable
}
}
}));
}
return [
{
name: "key",
args: {
fields: key.selection,
...key.resolvable === undefined ? {} : {
resolvable: key.resolvable
}
}
}
];
}
export function mergeDirectives(existing, add) {
if (!existing) {
return [
...add
];
}
if (Array.isArray(existing)) {
return [
...existing,
...add
];
}
return [
...Object.keys(existing).map((name) => ({
name,
args: existing[name]
})),
...add
];
}
export const entityMapping = new WeakMap();
// biome-ignore lint/suspicious/noExplicitAny: this is fine
export const usedDirectives = new Map();
export function getUsedDirectives(builder) {
builder.toSchema();
var _usedDirectives_get;
return [
...(_usedDirectives_get = usedDirectives.get(builder)) !== null && _usedDirectives_get !== void 0 ? _usedDirectives_get : new Set()
].map((d) => d.startsWith("@") ? d : `@${d}`).sort();
}
export function addUsedDirectives(builder, directives) {
if (!usedDirectives.has(builder)) {
usedDirectives.set(builder, new Set());
}
const set = usedDirectives.get(builder);
for (const directive of directives) {
set.add(directive);
}
}
//# sourceMappingURL=util.js.map