From 62b58b2f501bef519c1127fdab45ada835587410 Mon Sep 17 00:00:00 2001 From: Jonny Gerig Meyer Date: Sat, 25 Feb 2023 18:07:51 -0700 Subject: [PATCH] Enable Typescript for 11ty filters --- .eslintrc.cjs => .eslintrc.js | 30 ++-- babel.config.js | 2 +- eleventy.config.cjs => eleventy.config.js | 0 package.json | 6 +- rollup.config.js | 14 +- source/_data/{releases.cjs => releases.js} | 2 +- source/helpers/sass_helpers.ts | 4 +- tool/{typedoc-theme.cjs => typedoc-theme.js} | 1 - yarn.lock | 139 ++++++++++++++++++- 9 files changed, 161 insertions(+), 37 deletions(-) rename .eslintrc.cjs => .eslintrc.js (67%) rename eleventy.config.cjs => eleventy.config.js (100%) rename source/_data/{releases.cjs => releases.js} (100%) rename tool/{typedoc-theme.cjs => typedoc-theme.js} (99%) diff --git a/.eslintrc.cjs b/.eslintrc.js similarity index 67% rename from .eslintrc.cjs rename to .eslintrc.js index aeaacb3..f29c5b6 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.js @@ -2,7 +2,7 @@ module.exports = { root: true, parser: '@typescript-eslint/parser', parserOptions: { - sourceType: 'module', + sourceType: 'script', ecmaVersion: 2021, tsconfigRootDir: __dirname, warnOnUnsupportedTypeScriptVersion: false, @@ -12,7 +12,7 @@ module.exports = { es2021: true, node: true, }, - plugins: ['simple-import-sort', 'import', '@typescript-eslint'], + plugins: ['import', 'simple-import-sort', '@typescript-eslint'], extends: [ 'eslint:recommended', 'plugin:import/recommended', @@ -25,37 +25,29 @@ module.exports = { typescript: { project: ['tsconfig.json'], }, - node: { - extensions: ['.cjs'], - }, }, }, overrides: [ - { - files: ['*.cjs'], - parserOptions: { - sourceType: 'script', - }, - rules: { - 'import/order': 1, - 'simple-import-sort/imports': 0, - '@typescript-eslint/no-var-requires': 0, - }, - }, { files: ['*.ts'], parserOptions: { + sourceType: 'module', project: ['tsconfig.json'], }, extends: [ 'plugin:@typescript-eslint/recommended-requiring-type-checking', ], + rules: { + 'import/order': 0, + 'sort-imports': 0, + 'simple-import-sort/imports': 1, + }, }, ], rules: { - 'import/order': 0, - 'sort-imports': 0, - 'simple-import-sort/imports': 1, + 'import/order': 1, + 'simple-import-sort/imports': 0, + '@typescript-eslint/no-var-requires': 0, 'no-console': 1, 'no-warning-comments': [1, { terms: ['todo', 'fixme', '@@@'] }], }, diff --git a/babel.config.js b/babel.config.js index 1c43c09..40fab85 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,3 +1,3 @@ -export default { +module.exports = { presets: ['@babel/preset-typescript'], }; diff --git a/eleventy.config.cjs b/eleventy.config.js similarity index 100% rename from eleventy.config.cjs rename to eleventy.config.js diff --git a/package.json b/package.json index 5360989..6af8d80 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,6 @@ "node": "^16", "yarn": "^3" }, - "type": "module", "packageManager": "yarn@3.3.1", "scripts": { "serve": "run-p 'watch:**'", @@ -25,8 +24,8 @@ "build-dev:scripts": "rollup -c", "build-prod:scripts": "BABEL_ENV=production rollup -c", "watch:scripts": "npm run build-dev:scripts -- -w", - "build:11ty": "eleventy", - "watch:11ty": "eleventy --serve --incremental", + "build:11ty": "NODE_OPTIONS='-r ts-node/register' eleventy", + "watch:11ty": "yarn build:11ty --serve --incremental", "tsc": "tsc", "prettier": "prettier --write .", "prettier:ci": "prettier --check .", @@ -77,6 +76,7 @@ "semver-parser": "^4.1.2", "stylelint": "^15.2.0", "stylelint-config-standard-scss": "^7.0.1", + "ts-node": "^10.9.1", "typedoc": "^0.23.25", "typescript": "^4.9.5", "typogr": "^0.6.8" diff --git a/rollup.config.js b/rollup.config.js index ddecee3..7482282 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,9 +1,9 @@ -import { babel } from '@rollup/plugin-babel'; -import commonjs from '@rollup/plugin-commonjs'; -import inject from '@rollup/plugin-inject'; -import { nodeResolve } from '@rollup/plugin-node-resolve'; -import terser from '@rollup/plugin-terser'; -import { defineConfig } from 'rollup'; +const { babel } = require('@rollup/plugin-babel'); +const commonjs = require('@rollup/plugin-commonjs'); +const inject = require('@rollup/plugin-inject'); +const { nodeResolve } = require('@rollup/plugin-node-resolve'); +const terser = require('@rollup/plugin-terser'); +const { defineConfig } = require('rollup'); const prod = process.env.BABEL_ENV === 'production'; @@ -24,7 +24,7 @@ if (prod) { plugins.push(terser()); } -export default defineConfig({ +module.exports = defineConfig({ input: 'source/assets/js/sass.ts', output: { file: 'source/assets/dist/js/sass.js', diff --git a/source/_data/releases.cjs b/source/_data/releases.js similarity index 100% rename from source/_data/releases.cjs rename to source/_data/releases.js index 943803b..b6f957f 100644 --- a/source/_data/releases.cjs +++ b/source/_data/releases.js @@ -1,7 +1,7 @@ const { spawn: nodeSpawn } = require('node:child_process'); const fs = require('node:fs/promises'); -const deepEqual = require('deep-equal'); +const deepEqual = require('deep-equal'); const chalk = require('kleur'); const VERSION_CACHE_PATH = './source/_data/versionCache.json'; diff --git a/source/helpers/sass_helpers.ts b/source/helpers/sass_helpers.ts index 01cb30f..b2d1b0e 100644 --- a/source/helpers/sass_helpers.ts +++ b/source/helpers/sass_helpers.ts @@ -1,4 +1,4 @@ -function getImplStatus(status) { +export function getImplStatus(status: string | boolean | null) { switch (status) { case null: return status; @@ -12,5 +12,3 @@ function getImplStatus(status) { return `since ${status}`; } } - -module.exports = { getImplStatus }; diff --git a/tool/typedoc-theme.cjs b/tool/typedoc-theme.js similarity index 99% rename from tool/typedoc-theme.cjs rename to tool/typedoc-theme.js index 85ea241..fe8f4c4 100644 --- a/tool/typedoc-theme.cjs +++ b/tool/typedoc-theme.js @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ const { DefaultTheme, DefaultThemeRenderContext, diff --git a/yarn.lock b/yarn.lock index f0f24d8..a745184 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1396,6 +1396,15 @@ __metadata: languageName: node linkType: hard +"@cspotcode/source-map-support@npm:^0.8.0": + version: 0.8.1 + resolution: "@cspotcode/source-map-support@npm:0.8.1" + dependencies: + "@jridgewell/trace-mapping": 0.3.9 + checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa + languageName: node + linkType: hard + "@csstools/css-parser-algorithms@npm:^2.0.1": version: 2.0.1 resolution: "@csstools/css-parser-algorithms@npm:2.0.1" @@ -1509,7 +1518,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:3.1.0": +"@jridgewell/resolve-uri@npm:3.1.0, @jridgewell/resolve-uri@npm:^3.0.3": version: 3.1.0 resolution: "@jridgewell/resolve-uri@npm:3.1.0" checksum: b5ceaaf9a110fcb2780d1d8f8d4a0bfd216702f31c988d8042e5f8fbe353c55d9b0f55a1733afdc64806f8e79c485d2464680ac48a0d9fcadb9548ee6b81d267 @@ -1540,6 +1549,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:0.3.9": + version: 0.3.9 + resolution: "@jridgewell/trace-mapping@npm:0.3.9" + dependencies: + "@jridgewell/resolve-uri": ^3.0.3 + "@jridgewell/sourcemap-codec": ^1.4.10 + checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.17 resolution: "@jridgewell/trace-mapping@npm:0.3.17" @@ -1743,6 +1762,34 @@ __metadata: languageName: node linkType: hard +"@tsconfig/node10@npm:^1.0.7": + version: 1.0.9 + resolution: "@tsconfig/node10@npm:1.0.9" + checksum: a33ae4dc2a621c0678ac8ac4bceb8e512ae75dac65417a2ad9b022d9b5411e863c4c198b6ba9ef659e14b9fb609bbec680841a2e84c1172df7a5ffcf076539df + languageName: node + linkType: hard + +"@tsconfig/node12@npm:^1.0.7": + version: 1.0.11 + resolution: "@tsconfig/node12@npm:1.0.11" + checksum: 5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a + languageName: node + linkType: hard + +"@tsconfig/node14@npm:^1.0.0": + version: 1.0.3 + resolution: "@tsconfig/node14@npm:1.0.3" + checksum: 19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d + languageName: node + linkType: hard + +"@tsconfig/node16@npm:^1.0.2": + version: 1.0.3 + resolution: "@tsconfig/node16@npm:1.0.3" + checksum: 3a8b657dd047495b7ad23437d6afd20297ce90380ff0bdee93fc7d39a900dbd8d9e26e53ff6b465e7967ce2adf0b218782590ce9013285121e6a5928fbd6819f + languageName: node + linkType: hard + "@types/estree@npm:*, @types/estree@npm:^1.0.0": version: 1.0.0 resolution: "@types/estree@npm:1.0.0" @@ -1975,6 +2022,13 @@ __metadata: languageName: node linkType: hard +"acorn-walk@npm:^8.1.1": + version: 8.2.0 + resolution: "acorn-walk@npm:8.2.0" + checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 + languageName: node + linkType: hard + "acorn@npm:^7.1.1": version: 7.4.1 resolution: "acorn@npm:7.4.1" @@ -1984,7 +2038,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.5.0, acorn@npm:^8.8.0": +"acorn@npm:^8.4.1, acorn@npm:^8.5.0, acorn@npm:^8.8.0": version: 8.8.2 resolution: "acorn@npm:8.8.2" bin: @@ -2113,6 +2167,13 @@ __metadata: languageName: node linkType: hard +"arg@npm:^4.1.0": + version: 4.1.3 + resolution: "arg@npm:4.1.3" + checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43 + languageName: node + linkType: hard + "argparse@npm:^1.0.7": version: 1.0.10 resolution: "argparse@npm:1.0.10" @@ -2691,6 +2752,13 @@ __metadata: languageName: node linkType: hard +"create-require@npm:^1.1.0": + version: 1.1.1 + resolution: "create-require@npm:1.1.1" + checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff + languageName: node + linkType: hard + "cross-spawn@npm:^6.0.5": version: 6.0.5 resolution: "cross-spawn@npm:6.0.5" @@ -2908,6 +2976,13 @@ __metadata: languageName: node linkType: hard +"diff@npm:^4.0.1": + version: 4.0.2 + resolution: "diff@npm:4.0.2" + checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d + languageName: node + linkType: hard + "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -4995,6 +5070,13 @@ __metadata: languageName: node linkType: hard +"make-error@npm:^1.1.1": + version: 1.3.6 + resolution: "make-error@npm:1.3.6" + checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 + languageName: node + linkType: hard + "make-fetch-happen@npm:^10.0.3": version: 10.2.1 resolution: "make-fetch-happen@npm:10.2.1" @@ -6501,6 +6583,7 @@ __metadata: semver-parser: ^4.1.2 stylelint: ^15.2.0 stylelint-config-standard-scss: ^7.0.1 + ts-node: ^10.9.1 typedoc: ^0.23.25 typescript: ^4.9.5 typogr: ^0.6.8 @@ -7197,6 +7280,44 @@ __metadata: languageName: node linkType: hard +"ts-node@npm:^10.9.1": + version: 10.9.1 + resolution: "ts-node@npm:10.9.1" + dependencies: + "@cspotcode/source-map-support": ^0.8.0 + "@tsconfig/node10": ^1.0.7 + "@tsconfig/node12": ^1.0.7 + "@tsconfig/node14": ^1.0.0 + "@tsconfig/node16": ^1.0.2 + acorn: ^8.4.1 + acorn-walk: ^8.1.1 + arg: ^4.1.0 + create-require: ^1.1.0 + diff: ^4.0.1 + make-error: ^1.1.1 + v8-compile-cache-lib: ^3.0.1 + yn: 3.1.1 + peerDependencies: + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" + peerDependenciesMeta: + "@swc/core": + optional: true + "@swc/wasm": + optional: true + bin: + ts-node: dist/bin.js + ts-node-cwd: dist/bin-cwd.js + ts-node-esm: dist/bin-esm.js + ts-node-script: dist/bin-script.js + ts-node-transpile-only: dist/bin-transpile.js + ts-script: dist/bin-script-deprecated.js + checksum: 090adff1302ab20bd3486e6b4799e90f97726ed39e02b39e566f8ab674fd5bd5f727f43615debbfc580d33c6d9d1c6b1b3ce7d8e3cca3e20530a145ffa232c35 + languageName: node + linkType: hard + "tsconfig-paths@npm:^3.14.1": version: 3.14.1 resolution: "tsconfig-paths@npm:3.14.1" @@ -7446,6 +7567,13 @@ __metadata: languageName: node linkType: hard +"v8-compile-cache-lib@npm:^3.0.1": + version: 3.0.1 + resolution: "v8-compile-cache-lib@npm:3.0.1" + checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0 + languageName: node + linkType: hard + "v8-compile-cache@npm:^2.3.0": version: 2.3.0 resolution: "v8-compile-cache@npm:2.3.0" @@ -7633,6 +7761,13 @@ __metadata: languageName: node linkType: hard +"yn@npm:3.1.1": + version: 3.1.1 + resolution: "yn@npm:3.1.1" + checksum: 2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 + languageName: node + linkType: hard + "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0"