UNPKG

@atlaskit/eslint-plugin-design-system

Version:

The essential plugin for use with the Atlassian Design System.

33 lines 1.09 kB
import { callExpression, identifier, literal, memberExpression, property } from 'eslint-codemod-utils'; function createMemberExpressionFromArray(array) { if (array.length === 1) { return identifier(array[0]); } const property = array.pop(); return memberExpression({ object: createMemberExpressionFromArray(array), property: identifier(property) }); } function getTokenNode(tokenName, fallbackValue, isFallbackMember = false) { const callExpressionArgs = [literal({ value: `'${tokenName}'` })]; if (fallbackValue) { const fallback = isFallbackMember ? createMemberExpressionFromArray(fallbackValue.split('.')) : literal(fallbackValue); callExpressionArgs.push(fallback); } return callExpression({ callee: identifier({ name: 'token' }), arguments: callExpressionArgs, optional: false }); } export function getTokenProperty(propertyName, tokenName, tokenFallback, isFallbackMember = false) { return property({ key: identifier(propertyName), value: getTokenNode(tokenName, tokenFallback, isFallbackMember) }); }