UNPKG

@neo4j/cypher-builder

Version:

A programmatic API for building Cypher queries for Neo4j

64 lines (63 loc) 1.59 kB
"use strict"; /* * Copyright (c) "Neo4j" * Neo4j Sweden AB [http://neo4j.com] */ Object.defineProperty(exports, "__esModule", { value: true }); exports.DynamicLabel = exports.Label = void 0; const CypherASTNode_1 = require("../CypherASTNode"); const add_label_token_1 = require("../utils/add-label-token"); const escape_1 = require("../utils/escape"); /** Represents a label attached to a {@link NodeRef | Node} * @group Variables * @example * * ```js * movies.label("Movie") * ``` * * _Cypher:_ * ```cypher * this0:Movie * ``` */ class Label extends CypherASTNode_1.CypherASTNode { node; label; /** * @internal */ constructor(node, label) { super(); this.node = node; this.label = label; } /** @internal */ getCypher(env) { const nodeId = this.node.getCypher(env); const labelsStr = this.generateLabelExpressionStr(); return `${nodeId}${labelsStr}`; } generateLabelExpressionStr() { return (0, add_label_token_1.addLabelToken)((0, escape_1.escapeLabel)(this.label)); } } exports.Label = Label; class DynamicLabel extends Label { expr; /** * @internal */ constructor(node, expr) { super(node, ""); this.expr = expr; } /** @internal */ getCypher(env) { const nodeId = this.node.getCypher(env); const exprStr = `$(${this.expr.getCypher(env)})`; const labelStr = (0, add_label_token_1.addLabelToken)(exprStr); return `${nodeId}${labelStr}`; } } exports.DynamicLabel = DynamicLabel;