From 67dd0048d01a3685afff205b69d8d9d41bac20bb Mon Sep 17 00:00:00 2001 From: Nathan Vasse Date: Wed, 4 Jan 2023 15:51:06 +0100 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F(tokens)=20expose=20default?= =?UTF-8?q?=20tokens=20in=20a=20lib=20and=20various=20config?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This allow to use the default tokens from Typescript or Javascript file of dependents repos. For instance this wîll be used by packages/react to aggregate components tokens files. --- packages/tokens/.eslintignore | 4 +++- packages/tokens/.eslintrc.json | 5 +--- packages/tokens/package.json | 23 +++++++++++++------ packages/tokens/src/bin/cunningham.dist.js | 3 ++- .../tokens/src/bin/tests/assets/cunningham.ts | 7 ++++++ packages/tokens/{ => src/bin}/tsconfig.json | 6 ++--- packages/tokens/src/lib/cunningham-tokens.ts | 1 + packages/tokens/src/lib/index.ts | 4 ++++ packages/tokens/src/lib/tsconfig.json | 11 +++++++++ packages/tokens/tsconfig.eslint.json | 6 +++++ packages/tokens/tsconfig.node.json | 4 +++- 11 files changed, 57 insertions(+), 17 deletions(-) create mode 100644 packages/tokens/src/bin/tests/assets/cunningham.ts rename packages/tokens/{ => src/bin}/tsconfig.json (70%) create mode 100644 packages/tokens/src/lib/cunningham-tokens.ts create mode 100644 packages/tokens/src/lib/index.ts create mode 100644 packages/tokens/src/lib/tsconfig.json create mode 100644 packages/tokens/tsconfig.eslint.json diff --git a/packages/tokens/.eslintignore b/packages/tokens/.eslintignore index 76add87..53ba09f 100644 --- a/packages/tokens/.eslintignore +++ b/packages/tokens/.eslintignore @@ -1,2 +1,4 @@ node_modules -dist \ No newline at end of file +dist +src/bin/tests/assets +src/lib/cunningham-tokens.ts \ No newline at end of file diff --git a/packages/tokens/.eslintrc.json b/packages/tokens/.eslintrc.json index 1cce5d0..bee04d5 100644 --- a/packages/tokens/.eslintrc.json +++ b/packages/tokens/.eslintrc.json @@ -4,10 +4,7 @@ "custom" ], "parserOptions": { - "project": [ - "./tsconfig.json", - "./tsconfig.node.json" - ] + "project": "./tsconfig.eslint.json" }, "rules": { "no-console": "off", diff --git a/packages/tokens/package.json b/packages/tokens/package.json index 613c30a..053858c 100644 --- a/packages/tokens/package.json +++ b/packages/tokens/package.json @@ -4,10 +4,17 @@ "version": "0.0.0", "license": "MIT", "bin": { - "cunningham": "dist/bin/Main.js" + "cunningham": "./dist/bin/Main.js" }, + "main": "./dist/lib/index.js", + "types": "./dist/lib/index.d.ts", "exports": { - "./default-tokens": "./dist/cunningham-tokens.css" + "./default-tokens": "./dist/cunningham-tokens.css", + ".": { + "require": "./dist/lib/index.js", + "import": "./dist/lib/index.js", + "types": "./dist/lib/index.d.ts" + } }, "files": [ "dist/" @@ -15,16 +22,18 @@ "scripts": { "lint": "eslint . 'src/**/*.{ts,tsx}'", "dev": "nodemon --watch 'src/bin' --ext '*' --exec 'yarn build'", - "build": "tsc -p tsconfig.json && tsc-alias && cp src/bin/cunningham.dist.js dist/bin && chmod +x dist/bin/Main.js && yarn build-default-theme", - "build-default-theme": "./dist/bin/Main.js -o dist -s html -g css,js", - "test": "FORCE_COLOR=1 jest --verbose src/bin" + "build-bin": "cd src/bin && tsc -p tsconfig.json && tsc-alias && cp ./cunningham.dist.js ../../dist/bin && chmod +x ../../dist/bin/Main.js", + "build-lib": "cp dist/cunningham-tokens.ts src/lib && cd src/lib && tsc -p tsconfig.json", + "build": "yarn build-bin && yarn build-default-theme && yarn build-lib && cd ../.. && ln -sf ../../packages/tokens/dist/bin/Main.js node_modules/.bin/cunningham", + "build-default-theme": "./dist/bin/Main.js -o dist -s html -g css,js,ts", + "test": "FORCE_COLOR=1 jest --runInBand --verbose src" }, "dependencies": { "chalk": "4.1.2", "commander": "9.4.1", "deepmerge": "4.2.2", "figlet": "1.5.2", - "tsc-alias": "^1.8.2" + "ts-node": "10.9.1" }, "devDependencies": { "@types/figlet": "1.5.5", @@ -35,7 +44,7 @@ "nodemon": "2.0.20", "prettier": "2.8.1", "ts-jest": "29.0.3", - "ts-node": "10.9.1", + "tsc-alias": "1.8.2", "typescript": "4.9.4" }, "engines": { diff --git a/packages/tokens/src/bin/cunningham.dist.js b/packages/tokens/src/bin/cunningham.dist.js index 575f5ad..8089a19 100644 --- a/packages/tokens/src/bin/cunningham.dist.js +++ b/packages/tokens/src/bin/cunningham.dist.js @@ -1,7 +1,8 @@ module.exports = { theme: { colors: { - primary: "#055FD2", + primary: "#002d7f", + "primary-gradient": "linear-gradient(90deg,#002d7f,#0069b3)", secondary: "#DA0000", }, }, diff --git a/packages/tokens/src/bin/tests/assets/cunningham.ts b/packages/tokens/src/bin/tests/assets/cunningham.ts new file mode 100644 index 0000000..484e361 --- /dev/null +++ b/packages/tokens/src/bin/tests/assets/cunningham.ts @@ -0,0 +1,7 @@ +export default { + theme: { + colors: { + primary: "typescript", + }, + }, +}; diff --git a/packages/tokens/tsconfig.json b/packages/tokens/src/bin/tsconfig.json similarity index 70% rename from packages/tokens/tsconfig.json rename to packages/tokens/src/bin/tsconfig.json index b72cc81..c10559d 100644 --- a/packages/tokens/tsconfig.json +++ b/packages/tokens/src/bin/tsconfig.json @@ -1,14 +1,14 @@ { "extends": "@openfun/typescript-configs/node.json", "include": [ - "./src/**/*" + "**/*", ], "compilerOptions": { - "baseUrl": "./src/bin", + "baseUrl": "./", "paths": { "*": ["*"] }, "resolveJsonModule": true, - "outDir": "./dist/bin", + "outDir": "../../dist/bin", } } \ No newline at end of file diff --git a/packages/tokens/src/lib/cunningham-tokens.ts b/packages/tokens/src/lib/cunningham-tokens.ts new file mode 100644 index 0000000..0491948 --- /dev/null +++ b/packages/tokens/src/lib/cunningham-tokens.ts @@ -0,0 +1 @@ +export const tokens = {"theme":{"colors":{"primary":"#002d7f","primary-gradient":"linear-gradient(90deg,#002d7f,#0069b3)","secondary":"#DA0000"}}}; \ No newline at end of file diff --git a/packages/tokens/src/lib/index.ts b/packages/tokens/src/lib/index.ts new file mode 100644 index 0000000..49696b3 --- /dev/null +++ b/packages/tokens/src/lib/index.ts @@ -0,0 +1,4 @@ +import { tokens } from "./cunningham-tokens"; + +export type DefaultTokens = typeof tokens; +export const defaultTokens = tokens; diff --git a/packages/tokens/src/lib/tsconfig.json b/packages/tokens/src/lib/tsconfig.json new file mode 100644 index 0000000..d103fa7 --- /dev/null +++ b/packages/tokens/src/lib/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "@openfun/typescript-configs/node.json", + "include": [ + "./*" + ], + "compilerOptions": { + "baseUrl": "./", + "outDir": "../../dist/lib", + "declaration": true + } +} \ No newline at end of file diff --git a/packages/tokens/tsconfig.eslint.json b/packages/tokens/tsconfig.eslint.json new file mode 100644 index 0000000..95578a8 --- /dev/null +++ b/packages/tokens/tsconfig.eslint.json @@ -0,0 +1,6 @@ +{ + "include": [ + "**/*.ts", + "**/*.js", + ] +} \ No newline at end of file diff --git a/packages/tokens/tsconfig.node.json b/packages/tokens/tsconfig.node.json index c4475d6..1cbd5f7 100644 --- a/packages/tokens/tsconfig.node.json +++ b/packages/tokens/tsconfig.node.json @@ -1,3 +1,5 @@ { - "include": ["jest.config.ts"] + "include": [ + "./jest.config.ts" + ] }