core/predicates/context.fragment.predicate.ts
core/predicates/context.fragment.predicate.ts is a file in GovLab Quality. 22 lines of code and 6 definitions.
import type { AstNode } from "#types/context.types";
import { FRAGMENT_FACTORY } from "#configuration/constants/context.constants";
import type { Rule } from "eslint";
export const isRecord = function isRecord(value: unknown): value is Record<string, unknown> {
return typeof value === "object" && value !== null;
};
export const isNode = function isNode(value: unknown): value is AstNode {
return isRecord(value) && typeof value["type"] === "string";
};
export const isArray = function isArray(value: unknown): value is readonly unknown[] {
return Array.isArray(value);
};
export const isRuleNode = function isRuleNode(value: unknown): value is Rule.Node {
return isNode(value);
};
export const isDefineFragmentCall = function isDefineFragmentCall(node: unknown): boolean {
if (!isRecord(node) || node["type"] !== "CallExpression") {
return false;
}
const { callee } = node;
return isRecord(callee) && callee["type"] === "Identifier" && callee["name"] === FRAGMENT_FACTORY;
};