@terrazzo/cli 0.2.5 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +20 -0
- package/bin/cli.js +7 -0
- package/dist/normalize.d.ts +6 -0
- package/dist/normalize.js +55 -0
- package/dist/normalize.js.map +1 -0
- package/package.json +4 -3
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @terrazzo/cli
|
|
2
2
|
|
|
3
|
+
## 0.2.7
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#376](https://github.com/terrazzoapp/terrazzo/pull/376) [`059b62a`](https://github.com/terrazzoapp/terrazzo/commit/059b62a95d1a7ec9667baef3dc695200a454eb61) Thanks [@drwpow](https://github.com/drwpow)! - Loosen up source type for parse()
|
|
8
|
+
|
|
9
|
+
- Updated dependencies [[`059b62a`](https://github.com/terrazzoapp/terrazzo/commit/059b62a95d1a7ec9667baef3dc695200a454eb61)]:
|
|
10
|
+
- @terrazzo/parser@0.2.7
|
|
11
|
+
- @terrazzo/token-tools@0.2.7
|
|
12
|
+
|
|
13
|
+
## 0.2.6
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- [#374](https://github.com/terrazzoapp/terrazzo/pull/374) [`cb64063`](https://github.com/terrazzoapp/terrazzo/commit/cb640631220f1abb72dd9e39806c5e1b61e92baf) Thanks [@drwpow](https://github.com/drwpow)! - Add normalize CLI command, which can upgrade a giant tokens file to the latest DTCG format.
|
|
18
|
+
|
|
19
|
+
- Updated dependencies [[`cb64063`](https://github.com/terrazzoapp/terrazzo/commit/cb640631220f1abb72dd9e39806c5e1b61e92baf)]:
|
|
20
|
+
- @terrazzo/token-tools@0.2.6
|
|
21
|
+
- @terrazzo/parser@0.2.6
|
|
22
|
+
|
|
3
23
|
## 0.2.5
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/bin/cli.js
CHANGED
|
@@ -32,6 +32,7 @@ import { buildCmd } from '../dist/build.js';
|
|
|
32
32
|
import { checkCmd } from '../dist/check.js';
|
|
33
33
|
import { helpCmd } from '../dist/help.js';
|
|
34
34
|
import { initCmd } from '../dist/init.js';
|
|
35
|
+
import { normalizeCmd } from '../dist/normalize.js';
|
|
35
36
|
import { loadConfig } from '../dist/shared.js';
|
|
36
37
|
import { versionCmd } from '../dist/version.js';
|
|
37
38
|
|
|
@@ -89,6 +90,12 @@ export default async function main() {
|
|
|
89
90
|
process.exit(0);
|
|
90
91
|
}
|
|
91
92
|
|
|
93
|
+
// normalize
|
|
94
|
+
if (cmd === 'normalize') {
|
|
95
|
+
await normalizeCmd(positionals[1], { logger, output: flags.out });
|
|
96
|
+
process.exit(0);
|
|
97
|
+
}
|
|
98
|
+
|
|
92
99
|
const { config, configPath } = await loadConfig({ cmd, flags, logger });
|
|
93
100
|
|
|
94
101
|
// ---
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { parse as parseJSON, print } from '@humanwhocodes/momoa';
|
|
4
|
+
import { defineConfig, parse, traverse } from '@terrazzo/parser';
|
|
5
|
+
import { cwd, printError } from './shared.js';
|
|
6
|
+
function find$value(member) {
|
|
7
|
+
return member.name.type === 'String' && member.name.value === '$value';
|
|
8
|
+
}
|
|
9
|
+
export async function normalizeCmd(filename, { logger, output }) {
|
|
10
|
+
try {
|
|
11
|
+
if (!filename) {
|
|
12
|
+
logger.error({ message: 'Expected input: `tz normalize input.json -o output.json`' });
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const sourceLoc = new URL(filename, cwd);
|
|
16
|
+
if (!fs.existsSync(sourceLoc)) {
|
|
17
|
+
logger.error({ message: `Couldn’t find ${path.relative(cwd.href, sourceLoc.href)}. Does it exist?` });
|
|
18
|
+
}
|
|
19
|
+
const sourceData = fs.readFileSync(sourceLoc, 'utf8');
|
|
20
|
+
const document = parseJSON(sourceData);
|
|
21
|
+
const { tokens } = await parse([{ src: sourceData, filename: sourceLoc }], {
|
|
22
|
+
config: defineConfig({}, { cwd }),
|
|
23
|
+
logger,
|
|
24
|
+
});
|
|
25
|
+
traverse(document, {
|
|
26
|
+
enter(node, _parent, nodePath) {
|
|
27
|
+
const token = tokens[nodePath.join('.')];
|
|
28
|
+
if (!token || token.aliasOf || node.type !== 'Member' || node.value.type !== 'Object') {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const $valueI = node.value.members.findIndex(find$value);
|
|
32
|
+
const newValueContainer = parseJSON(JSON.stringify({ $value: token.$value })).body;
|
|
33
|
+
const newValueNode = newValueContainer.members.find(find$value);
|
|
34
|
+
switch (token.$type) {
|
|
35
|
+
case 'color':
|
|
36
|
+
case 'dimension':
|
|
37
|
+
case 'duration': {
|
|
38
|
+
if (node.value.members[$valueI].value.type === 'String') {
|
|
39
|
+
node.value.members[$valueI] = newValueNode;
|
|
40
|
+
}
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
const outputLoc = new URL(output, cwd);
|
|
47
|
+
fs.mkdirSync(new URL('.', outputLoc), { recursive: true });
|
|
48
|
+
fs.writeFileSync(outputLoc, print(document, { indent: 2 }));
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
printError(err.message);
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=normalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@terrazzo/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.7",
|
|
4
4
|
"description": "CLI for managing design tokens using the Design Tokens Community Group (DTCG) standard and generating code for any platform via plugins.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": {
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@clack/prompts": "^0.8.2",
|
|
44
|
+
"@humanwhocodes/momoa": "^3.3.4",
|
|
44
45
|
"@types/escodegen": "^0.0.10",
|
|
45
46
|
"chokidar": "^3.6.0",
|
|
46
47
|
"detect-package-manager": "^3.0.2",
|
|
@@ -50,8 +51,8 @@
|
|
|
50
51
|
"meriyah": "^6.0.3",
|
|
51
52
|
"picocolors": "^1.1.1",
|
|
52
53
|
"yaml-to-momoa": "^0.0.3",
|
|
53
|
-
"@terrazzo/parser": "^0.2.
|
|
54
|
-
"@terrazzo/token-tools": "^0.2.
|
|
54
|
+
"@terrazzo/parser": "^0.2.7",
|
|
55
|
+
"@terrazzo/token-tools": "^0.2.7"
|
|
55
56
|
},
|
|
56
57
|
"scripts": {
|
|
57
58
|
"build": "tsc -p tsconfig.build.json",
|