diff --git a/__integration__/__snapshots__/customFormats.test.js.snap b/__integration__/__snapshots__/customFormats.test.js.snap index 842a01f3d..efb4a37f9 100644 --- a/__integration__/__snapshots__/customFormats.test.js.snap +++ b/__integration__/__snapshots__/customFormats.test.js.snap @@ -566,6 +566,166 @@ exports[`integration custom formats inline custom with new args should match sna } } }, + \\"allTokens\\": [ + { + \\"value\\": \\"0.5rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 0.5 + }, + \\"name\\": \\"SizePaddingSmall\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"small\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"small\\" + ] + }, + { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingMedium\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"medium\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"medium\\" + ] + }, + { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingLarge\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"large\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"large\\" + ] + }, + { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingXl\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"xl\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"xl\\" + ] + } + ], + \\"tokens\\": { + \\"size\\": { + \\"padding\\": { + \\"small\\": { + \\"value\\": \\"0.5rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 0.5 + }, + \\"name\\": \\"SizePaddingSmall\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"small\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"small\\" + ] + }, + \\"medium\\": { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingMedium\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"medium\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"medium\\" + ] + }, + \\"large\\": { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingLarge\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"large\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"large\\" + ] + }, + \\"xl\\": { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingXl\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"xl\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"xl\\" + ] + } + } + } + }, \\"platform\\": { \\"transformGroup\\": \\"js\\", \\"buildPath\\": \\"__integration__/build/\\", @@ -1185,6 +1345,166 @@ exports[`integration custom formats inline custom with old args should match sna } } }, + \\"allTokens\\": [ + { + \\"value\\": \\"0.5rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 0.5 + }, + \\"name\\": \\"SizePaddingSmall\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"small\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"small\\" + ] + }, + { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingMedium\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"medium\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"medium\\" + ] + }, + { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingLarge\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"large\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"large\\" + ] + }, + { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingXl\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"xl\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"xl\\" + ] + } + ], + \\"tokens\\": { + \\"size\\": { + \\"padding\\": { + \\"small\\": { + \\"value\\": \\"0.5rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 0.5 + }, + \\"name\\": \\"SizePaddingSmall\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"small\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"small\\" + ] + }, + \\"medium\\": { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingMedium\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"medium\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"medium\\" + ] + }, + \\"large\\": { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingLarge\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"large\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"large\\" + ] + }, + \\"xl\\": { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingXl\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"xl\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"xl\\" + ] + } + } + } + }, \\"platform\\": { \\"transformGroup\\": \\"js\\", \\"buildPath\\": \\"__integration__/build/\\", @@ -1628,68 +1948,228 @@ exports[`integration custom formats register custom format with new args should \\"small\\" ] }, - \\"medium\\": { - \\"value\\": \\"1rem\\", - \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", - \\"isSource\\": true, - \\"original\\": { - \\"value\\": 1 - }, - \\"name\\": \\"SizePaddingMedium\\", - \\"attributes\\": { - \\"category\\": \\"size\\", - \\"type\\": \\"padding\\", - \\"item\\": \\"medium\\" - }, - \\"path\\": [ - \\"size\\", - \\"padding\\", - \\"medium\\" - ] + \\"medium\\": { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingMedium\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"medium\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"medium\\" + ] + }, + \\"large\\": { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingLarge\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"large\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"large\\" + ] + }, + \\"xl\\": { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingXl\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"xl\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"xl\\" + ] + } + } + } + } + }, + \\"allProperties\\": [ + { + \\"value\\": \\"0.5rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 0.5 + }, + \\"name\\": \\"SizePaddingSmall\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"small\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"small\\" + ] + }, + { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingMedium\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"medium\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"medium\\" + ] + }, + { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingLarge\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"large\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"large\\" + ] + }, + { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingXl\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"xl\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"xl\\" + ] + } + ], + \\"properties\\": { + \\"size\\": { + \\"padding\\": { + \\"small\\": { + \\"value\\": \\"0.5rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 0.5 + }, + \\"name\\": \\"SizePaddingSmall\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"small\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"small\\" + ] + }, + \\"medium\\": { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingMedium\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"medium\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"medium\\" + ] + }, + \\"large\\": { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingLarge\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"large\\" }, - \\"large\\": { - \\"value\\": \\"1rem\\", - \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", - \\"isSource\\": true, - \\"original\\": { - \\"value\\": 1 - }, - \\"name\\": \\"SizePaddingLarge\\", - \\"attributes\\": { - \\"category\\": \\"size\\", - \\"type\\": \\"padding\\", - \\"item\\": \\"large\\" - }, - \\"path\\": [ - \\"size\\", - \\"padding\\", - \\"large\\" - ] + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"large\\" + ] + }, + \\"xl\\": { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 }, - \\"xl\\": { - \\"value\\": \\"1rem\\", - \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", - \\"isSource\\": true, - \\"original\\": { - \\"value\\": 1 - }, - \\"name\\": \\"SizePaddingXl\\", - \\"attributes\\": { - \\"category\\": \\"size\\", - \\"type\\": \\"padding\\", - \\"item\\": \\"xl\\" - }, - \\"path\\": [ - \\"size\\", - \\"padding\\", - \\"xl\\" - ] - } + \\"name\\": \\"SizePaddingXl\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"xl\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"xl\\" + ] } } } }, - \\"allProperties\\": [ + \\"allTokens\\": [ { \\"value\\": \\"0.5rem\\", \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", @@ -1767,7 +2247,7 @@ exports[`integration custom formats register custom format with new args should ] } ], - \\"properties\\": { + \\"tokens\\": { \\"size\\": { \\"padding\\": { \\"small\\": { @@ -2468,6 +2948,166 @@ exports[`integration custom formats register custom format with old args should } } }, + \\"allTokens\\": [ + { + \\"value\\": \\"0.5rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 0.5 + }, + \\"name\\": \\"SizePaddingSmall\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"small\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"small\\" + ] + }, + { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingMedium\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"medium\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"medium\\" + ] + }, + { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingLarge\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"large\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"large\\" + ] + }, + { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingXl\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"xl\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"xl\\" + ] + } + ], + \\"tokens\\": { + \\"size\\": { + \\"padding\\": { + \\"small\\": { + \\"value\\": \\"0.5rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 0.5 + }, + \\"name\\": \\"SizePaddingSmall\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"small\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"small\\" + ] + }, + \\"medium\\": { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingMedium\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"medium\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"medium\\" + ] + }, + \\"large\\": { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingLarge\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"large\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"large\\" + ] + }, + \\"xl\\": { + \\"value\\": \\"1rem\\", + \\"filePath\\": \\"__integration__/tokens/size/padding.json\\", + \\"isSource\\": true, + \\"original\\": { + \\"value\\": 1 + }, + \\"name\\": \\"SizePaddingXl\\", + \\"attributes\\": { + \\"category\\": \\"size\\", + \\"type\\": \\"padding\\", + \\"item\\": \\"xl\\" + }, + \\"path\\": [ + \\"size\\", + \\"padding\\", + \\"xl\\" + ] + } + } + } + }, \\"platform\\": { \\"transformGroup\\": \\"js\\", \\"buildPath\\": \\"__integration__/build/\\", diff --git a/lib/utils/createFormatArgs.js b/lib/utils/createFormatArgs.js index 319cb3570..679c037a5 100644 --- a/lib/utils/createFormatArgs.js +++ b/lib/utils/createFormatArgs.js @@ -14,7 +14,7 @@ const deepExtend = require('./deepExtend'); function createFormatArgs({ dictionary, platform, file = {} }) { - const {allProperties, properties, usesReference, getReferences} = dictionary; + const {allProperties, properties, allTokens, tokens, usesReference, getReferences} = dictionary; // This will merge platform and file-level configuration // where the file configuration takes precedence const {options} = platform; @@ -26,6 +26,10 @@ function createFormatArgs({ dictionary, platform, file = {} }) { getReferences, allProperties, properties, + // adding tokens and allTokens as the new way starting in v3, + // keeping properties and allProperties around for backwards-compatibility + allTokens, + tokens, platform, file, options: file.options || {}