@atlaskit/eslint-plugin-design-system
Version:
The essential plugin for use with the Atlassian Design System.
35 lines • 1.24 kB
JavaScript
import { callExpression, identifier, literal, memberExpression, property } from 'eslint-codemod-utils';
function createMemberExpressionFromArray(array) {
if (array.length === 1) {
return identifier(array[0]);
}
var property = array.pop();
return memberExpression({
object: createMemberExpressionFromArray(array),
property: identifier(property)
});
}
function getTokenNode(tokenName, fallbackValue) {
var isFallbackMember = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var callExpressionArgs = [literal({
value: "'".concat(tokenName, "'")
})];
if (fallbackValue) {
var 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) {
var isFallbackMember = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
return property({
key: identifier(propertyName),
value: getTokenNode(tokenName, tokenFallback, isFallbackMember)
});
}