Home / Function/ resolveMemberExpressionPath() — drizzle-orm Function Reference

resolveMemberExpressionPath() — drizzle-orm Function Reference

Architecture documentation for the resolveMemberExpressionPath() function in ast.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  7089b0f7_fb5d_1f9c_807f_239903f9a3f3["resolveMemberExpressionPath()"]
  e5742924_3949_00fb_8a61_51fa28a972cf["ast.ts"]
  7089b0f7_fb5d_1f9c_807f_239903f9a3f3 -->|defined in| e5742924_3949_00fb_8a61_51fa28a972cf
  a3368508_fdc8_c02d_9243_e0ef77adb8ff["deleteRule.create()"]
  a3368508_fdc8_c02d_9243_e0ef77adb8ff -->|calls| 7089b0f7_fb5d_1f9c_807f_239903f9a3f3
  336f07de_9564_2758_69b1_8d49b0d69aad["updateRule.create()"]
  336f07de_9564_2758_69b1_8d49b0d69aad -->|calls| 7089b0f7_fb5d_1f9c_807f_239903f9a3f3
  style 7089b0f7_fb5d_1f9c_807f_239903f9a3f3 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

eslint-plugin-drizzle/src/utils/ast.ts lines 3–38

export const resolveMemberExpressionPath = (node: TSESTree.MemberExpression) => {
	let objectExpression = node.object;
	let fullName = '';

	const addToFullName = (name: string) => {
		const prefix = fullName ? '.' : '';
		fullName = `${name}${prefix}${fullName}`;
	};

	while (objectExpression) {
		if (objectExpression.type === 'MemberExpression') {
			if (objectExpression.property.type === 'Identifier') {
				addToFullName(objectExpression.property.name);
			}
			objectExpression = objectExpression.object;
		} else if (objectExpression.type === 'CallExpression' && objectExpression.callee.type === 'Identifier') {
			addToFullName(`${objectExpression.callee.name}(...)`);
			break;
		} else if (objectExpression.type === 'CallExpression' && objectExpression.callee.type === 'MemberExpression') {
			if (objectExpression.callee.property.type === 'Identifier') {
				addToFullName(`${objectExpression.callee.property.name}(...)`);
			}
			objectExpression = objectExpression.callee.object;
		} else if (objectExpression.type === 'Identifier') {
			addToFullName(objectExpression.name);
			break;
		} else if (objectExpression.type === 'ThisExpression') {
			addToFullName('this');
			break;
		} else {
			break;
		}
	}

	return fullName;
};

Domain

Subdomains

Frequently Asked Questions

What does resolveMemberExpressionPath() do?
resolveMemberExpressionPath() is a function in the drizzle-orm codebase, defined in eslint-plugin-drizzle/src/utils/ast.ts.
Where is resolveMemberExpressionPath() defined?
resolveMemberExpressionPath() is defined in eslint-plugin-drizzle/src/utils/ast.ts at line 3.
What calls resolveMemberExpressionPath()?
resolveMemberExpressionPath() is called by 2 function(s): deleteRule.create, updateRule.create.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free