UNPKG

@atlaskit/eslint-plugin-design-system

Version:

The essential plugin for use with the Atlassian Design System.

41 lines (40 loc) 1.54 kB
"use strict"; 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) }); }