@atlaskit/eslint-plugin-design-system
Version:
The essential plugin for use with the Atlassian Design System.
41 lines (40 loc) • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getTokenProperty = getTokenProperty;
var _eslintCodemodUtils = require("eslint-codemod-utils");
function createMemberExpressionFromArray(array) {
if (array.length === 1) {
return (0, _eslintCodemodUtils.identifier)(array[0]);
}
var property = array.pop();
return (0, _eslintCodemodUtils.memberExpression)({
object: createMemberExpressionFromArray(array),
property: (0, _eslintCodemodUtils.identifier)(property)
});
}
function getTokenNode(tokenName, fallbackValue) {
var isFallbackMember = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var callExpressionArgs = [(0, _eslintCodemodUtils.literal)({
value: "'".concat(tokenName, "'")
})];
if (fallbackValue) {
var fallback = isFallbackMember ? createMemberExpressionFromArray(fallbackValue.split('.')) : (0, _eslintCodemodUtils.literal)(fallbackValue);
callExpressionArgs.push(fallback);
}
return (0, _eslintCodemodUtils.callExpression)({
callee: (0, _eslintCodemodUtils.identifier)({
name: 'token'
}),
arguments: callExpressionArgs,
optional: false
});
}
function getTokenProperty(propertyName, tokenName, tokenFallback) {
var isFallbackMember = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
return (0, _eslintCodemodUtils.property)({
key: (0, _eslintCodemodUtils.identifier)(propertyName),
value: getTokenNode(tokenName, tokenFallback, isFallbackMember)
});
}