UNPKG

@vimeo/iris

Version:
51 lines (47 loc) 1.51 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var DEFAULT_MODE = { COLOR: 'light', SIZE: 'desktop', }; function readToken(token, grade) { if (grade === void 0) { grade = 500; } if (token.type === 'SIZE') { var key = 'desktop'; var value = token.modes[key]; if (typeof value === 'string') return value; if (typeof value === 'function') return value(grade); } if (token.type === 'COLOR') { return function (_a) { var theme = _a.theme; var key; // Determine if `theme` is theme name string or a theme object. if (typeof theme === 'string') key = theme; if (typeof (theme === null || theme === void 0 ? void 0 : theme.name) === 'string') key = theme.name; var value = validate(token, key); if (typeof value === 'string') return value; if (typeof value === 'function') return value(grade); }; } } function validate(token, key) { var value = token.modes[key]; var valid = typeof value === 'function' || typeof value === 'string'; if (!valid) { console.warn('Invalid Theme: ' + key); if (token.default) key = token.default; if (!token.default) key = DEFAULT_MODE[token.type]; value = token.modes[key]; } return value; } exports.readToken = readToken;