From 9a909ff0a41a6abba34b008ce57744d7cb2cd220 Mon Sep 17 00:00:00 2001 From: Rick Staa Date: Sat, 24 Sep 2022 15:37:19 +0200 Subject: [PATCH] build: fix wakatime json import bug (#2050) * build: fix vercel node version * build: remove engine property * fix: add json import workarround This commit adds a workaround for importing the `languageColors` JSON file. This needed to be done since Vercel uses v16.4, which does not support JSON file importing without the `experimental-json-modules` flag. See https://simonplend.com/import-json-in-es-modules/ for more information. The workaround can be found [here](https://stackoverflow.com/questions/66726365/how-should-i-import-json-in-node). --- package-lock.json | 3 --- package.json | 3 --- src/cards/wakatime-card.js | 13 ++++++++++++- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 871a1c4..2ffe6ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,9 +32,6 @@ "lodash.snakecase": "^4.1.1", "parse-diff": "^0.7.0", "prettier": "^2.1.2" - }, - "engines": { - "node": ">=13" } }, "node_modules/@actions/core": { diff --git a/package.json b/package.json index 3b61530..c256229 100644 --- a/package.json +++ b/package.json @@ -16,9 +16,6 @@ }, "author": "Anurag Hazra", "license": "MIT", - "engines": { - "node": ">=13" - }, "devDependencies": { "@actions/core": "^1.2.4", "@actions/github": "^4.0.0", diff --git a/src/cards/wakatime-card.js b/src/cards/wakatime-card.js index 558505c..24571e7 100644 --- a/src/cards/wakatime-card.js +++ b/src/cards/wakatime-card.js @@ -2,7 +2,6 @@ import { Card } from "../common/Card.js"; import { createProgressNode } from "../common/createProgressNode.js"; import { I18n } from "../common/I18n.js"; -import languageColors from "../common/languageColors.json" assert { type: "json" }; import { clampValue, flexLayout, @@ -11,6 +10,18 @@ import { } from "../common/utils.js"; import { getStyles } from "../getStyles.js"; import { wakatimeCardLocales } from "../translations.js"; + +/** Import language colors. + * + * @description Here we use the workaround found in + * https://stackoverflow.com/questions/66726365/how-should-i-import-json-in-node + * since vercel is using v16.14.0 which does not yet support json imports without the + * --experimental-json-modules flag. + */ +import { createRequire } from "module"; +const require = createRequire(import.meta.url); +const languageColors = require("../common/languageColors.json"); // now works + /** * @param {{color: string, text: string}} param0 */