core/predicates/code.typescript.predicate.ts

core/predicates/code.typescript.predicate.ts is a file in GovLab Docs. 22 lines of code and 5 definitions.

import ts from "typescript";

const CREATE = "create";

export const isFunctionLike = function isFunctionLike(
    node: ts.Node,
): node is ts.ArrowFunction | ts.FunctionDeclaration | ts.FunctionExpression | ts.MethodDeclaration {
    return (
        ts.isFunctionDeclaration(node) ||
        ts.isFunctionExpression(node) ||
        ts.isArrowFunction(node) ||
        ts.isMethodDeclaration(node)
    );
};

export const isFactoryName = function isFactoryName(name: string): boolean {
    if (!name.startsWith(CREATE) || name.length <= CREATE.length) {
        return false;
    }
    const char = name.charAt(CREATE.length);
    return char >= "A" && char <= "Z";
};

export const inPackage = function inPackage(decl: ts.Declaration, dirPosix: string): boolean {
    return decl.getSourceFile().fileName.split("\\").join("/").startsWith(dirPosix);
};