From ee37ac9d901d5fbb63a5f8fe112e3d438a810888 Mon Sep 17 00:00:00 2001 From: Morten Olsen Date: Fri, 19 Apr 2024 20:51:52 +0200 Subject: [PATCH] init --- .eslintignore | 3 +- .eslintrc.cjs | 24 ++ .github/workflows/release.yaml | 5 +- .prettierrc.cjs | 13 ++ .prettierrc.mjs | 14 -- .vscode/extensions.json | 2 +- .vscode/settings.json | 13 +- astro.config.ts | 24 +- eslint.config.mjs | 39 ---- package.json | 10 +- pnpm-lock.yaml | 209 +---------------- scripts/update-json-resume-schema.ts | 26 ++- src/assets/images/icons.ts | 22 +- src/components/header/header.astro | 8 +- src/components/time/absolute.astro | 10 +- .../articles/bob-the-algorithm/index.mdx | 18 +- .../articles/my-home-runs-redux/index.mdx | 6 +- src/content/config.ts | 34 +-- src/content/profile/profile.ts | 30 +-- src/data/data.articles.ts | 14 +- src/data/data.references.ts | 14 +- src/data/data.site.ts | 6 +- src/data/data.skills.ts | 14 +- src/data/data.ts | 38 ++-- src/data/data.utils.ts | 54 ++--- src/data/data.work.ts | 14 +- src/layouts/article/article.astro | 30 +-- src/layouts/articles/articles.astro | 32 +-- src/layouts/frontpage/articles/articles.astro | 29 +-- .../frontpage/articles/articles.item.astro | 22 +- .../frontpage/description/description.astro | 24 +- .../description/description.profile.astro | 20 +- src/layouts/frontpage/frontpage.astro | 38 ++-- src/layouts/frontpage/info/info.astro | 12 +- src/layouts/frontpage/skills/skills.astro | 16 +- src/layouts/frontpage/work/work.astro | 32 +-- src/layouts/html/html.astro | 63 +++--- src/layouts/work-history/work-history.astro | 22 +- .../work-history/work-history.item.astro | 24 +- src/pages/articles/[...slug].astro | 24 +- src/pages/articles/[...slug].pdf.ts | 24 -- src/pages/articles/pages/[...page].astro | 38 ++-- src/pages/articles/rss.xml.ts | 16 +- src/pages/index.astro | 4 +- src/pages/manifest.webmanifest.ts | 28 +-- src/pages/resume.json.ts | 6 +- src/pages/work-history.astro | 2 +- src/style/theme.css | 4 +- src/types/resume-schema.ts | 212 +++++++++--------- src/utils/data.ts | 6 +- src/utils/time.ts | 10 +- 51 files changed, 604 insertions(+), 798 deletions(-) create mode 100644 .eslintrc.cjs create mode 100644 .prettierrc.cjs delete mode 100644 .prettierrc.mjs delete mode 100644 eslint.config.mjs delete mode 100644 src/pages/articles/[...slug].pdf.ts diff --git a/.eslintignore b/.eslintignore index 2835947..b5df12f 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1,3 @@ /node_modules/ -/.astro/ \ No newline at end of file +/.astro/ +/.vscode/ \ No newline at end of file diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..9c80d82 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,24 @@ +/** @type {import("eslint").Linter.Config} */ +module.exports = { + extends: ['plugin:astro/recommended'], + parser: '@typescript-eslint/parser', + parserOptions: { + tsconfigRootDir: __dirname, + sourceType: 'module', + ecmaVersion: 'latest' + }, + overrides: [ + { + files: ['*.astro'], + parser: 'astro-eslint-parser', + parserOptions: { + parser: '@typescript-eslint/parser', + extraFileExtensions: ['.astro'] + }, + rules: { + // override/add rules settings here, such as: + // "astro/no-set-html-directive": "error" + } + } + ] +} \ No newline at end of file diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 699d731..6a07124 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,7 +1,8 @@ name: Deploy Astro site to Pages on: push: - branches: [$default-branch] + branches: + - main workflow_dispatch: permissions: @@ -60,4 +61,4 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v4 \ No newline at end of file + uses: actions/deploy-pages@v4 diff --git a/.prettierrc.cjs b/.prettierrc.cjs new file mode 100644 index 0000000..42e38e4 --- /dev/null +++ b/.prettierrc.cjs @@ -0,0 +1,13 @@ +/** @type {import("prettier").Config} */ +module.exports = { + ...require('prettier-config-standard'), + plugins: [require.resolve('prettier-plugin-astro')], + overrides: [ + { + files: '*.astro', + options: { + parser: 'astro' + } + } + ] +} \ No newline at end of file diff --git a/.prettierrc.mjs b/.prettierrc.mjs deleted file mode 100644 index 6bcfe04..0000000 --- a/.prettierrc.mjs +++ /dev/null @@ -1,14 +0,0 @@ -/** @type {import("prettier").Config} */ -export default { - plugins: ['prettier-plugin-astro'], - overrides: [ - { - files: '*.astro', - options: { - parser: 'astro', - }, - }, - ], - printWidth: 100, - singleQuote: true, -}; diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 22a1505..06495e0 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,4 +1,4 @@ { - "recommendations": ["astro-build.astro-vscode"], + "recommendations": ["astro-build.astro-vscode", "esbenp.prettier-vscode"], "unwantedRecommendations": [] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 3662b37..64ee85f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,14 @@ { - "typescript.tsdk": "node_modules/typescript/lib" + "typescript.tsdk": "node_modules/typescript/lib", + "eslint.validate": [ + "javascript", + "javascriptreact", + "astro", + "typescript", + "typescriptreact" + ], + "prettier.documentSelectors": ["**/*.astro"], + "[astro]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + } } \ No newline at end of file diff --git a/astro.config.ts b/astro.config.ts index f9175da..2c80cd1 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -1,20 +1,20 @@ -import { defineConfig } from 'astro/config'; -import mdx from '@astrojs/mdx'; -import sitemap from '@astrojs/sitemap'; -import icon from "astro-icon"; -import compress from "astro-compress"; -import robotsTxt from 'astro-robots-txt'; +import { defineConfig } from 'astro/config' +import mdx from '@astrojs/mdx' +import sitemap from '@astrojs/sitemap' +import icon from 'astro-icon' +import compress from 'astro-compress' +import robotsTxt from 'astro-robots-txt' const getSiteInfo = () => { - const siteUrl = process.env.SITE_URL; + const siteUrl = process.env.SITE_URL if (!siteUrl) { - return {}; + return {} } - const url = new URL(siteUrl); + const url = new URL(siteUrl) return { site: `${url.protocol}//${url.host}`, base: url.pathname - }; -}; + } +} // https://astro.build/config export default defineConfig({ @@ -26,4 +26,4 @@ export default defineConfig({ assetsInlineLimit: 1024 * 10 } } -}); \ No newline at end of file +}) diff --git a/eslint.config.mjs b/eslint.config.mjs deleted file mode 100644 index 213421c..0000000 --- a/eslint.config.mjs +++ /dev/null @@ -1,39 +0,0 @@ -import eslint from '@eslint/js'; -import eslintPluginAstro from 'eslint-plugin-astro'; -import eslintPluginImport from 'eslint-plugin-import'; -import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'; -import simpleImportSort from 'eslint-plugin-simple-import-sort'; - -/** @type {import('eslint').ESLint.ConfigData}*/ -export default [ - eslint.configs.recommended, - { - plugins: { - 'simple-import-sort': simpleImportSort, - }, - rules: { - 'simple-import-sort/imports': 'error', - 'simple-import-sort/exports': 'error', - }, - }, - { - plugins: { - import: eslintPluginImport, - }, - rules: { - // "import/no-unresolved": "off", - 'import/first': 'error', - 'import/newline-after-import': 'error', - 'import/no-duplicates': 'error', - }, - }, - eslintPluginPrettierRecommended, - ...eslintPluginAstro.configs['flat/all'], - { - rules: { - 'astro/no-set-html-directive': 'off', - 'astro/no-unused-css-selector': 'off', - 'one-var': ['error', 'never'], - }, - }, -]; diff --git a/package.json b/package.json index 65f98d0..0661ecb 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "scripts": { "dev": "astro dev", "start": "astro dev", - "lint:apply": "eslint ./src --fix && prettier --write ./src", + "lint": "prettier \"**/*.{js,jsx,ts,tsx,md,mdx,astro}\" && eslint \"src/**/*.{js,ts,jsx,tsx,astro}\"", + "lint:apply": "prettier --write \"**/*.{js,jsx,ts,tsx,md,mdx,astro}\" && eslint --fix \"src/**/*.{js,ts,jsx,tsx,astro}\"", "build": "astro check && astro build", "preview": "astro preview", "serve": "SITE_URL=http://localhost:3000 pnpm build && serve dist", @@ -35,17 +36,14 @@ "astro-icon": "^1.1.0", "astro-robots-txt": "^1.0.0", "eslint": "^8.57.0", - "eslint-config-prettier": "^9.1.0", "eslint-plugin-astro": "^0.33.1", - "eslint-plugin-import": "^2.29.1", "eslint-plugin-jsx-a11y": "^6.8.0", - "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-simple-import-sort": "^12.0.0", "husky": "^9.0.11", "json-schema-to-typescript": "^13.1.2", "less": "^4.2.0", "lint-staged": "^15.2.2", - "prettier": "3.2.5", + "prettier": "^3.2.5", + "prettier-config-standard": "^7.0.0", "prettier-plugin-astro": "^0.13.0", "sass": "^1.72.0", "serve": "^14.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fc7c3f1..c4b4689 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,24 +58,12 @@ devDependencies: eslint: specifier: ^8.57.0 version: 8.57.0 - eslint-config-prettier: - specifier: ^9.1.0 - version: 9.1.0(eslint@8.57.0) eslint-plugin-astro: specifier: ^0.33.1 version: 0.33.1(eslint@8.57.0) - eslint-plugin-import: - specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.5.0)(eslint@8.57.0) eslint-plugin-jsx-a11y: specifier: ^6.8.0 version: 6.8.0(eslint@8.57.0) - eslint-plugin-prettier: - specifier: ^5.1.3 - version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) - eslint-plugin-simple-import-sort: - specifier: ^12.0.0 - version: 12.0.0(eslint@8.57.0) husky: specifier: ^9.0.11 version: 9.0.11 @@ -89,8 +77,11 @@ devDependencies: specifier: ^15.2.2 version: 15.2.2 prettier: - specifier: 3.2.5 + specifier: ^3.2.5 version: 3.2.5 + prettier-config-standard: + specifier: ^7.0.0 + version: 7.0.0(prettier@3.2.5) prettier-plugin-astro: specifier: ^0.13.0 version: 0.13.0 @@ -2328,10 +2319,6 @@ packages: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: true - /@types/jsonld@1.5.13: resolution: {integrity: sha512-n7fUU6W4kSYK8VQlf/LsE9kddBHPKhODoVOjsZswmve+2qLwBy6naWxs/EiuSZN9NU0N06Ra01FR+j87C62T0A==} dev: true @@ -2725,18 +2712,6 @@ packages: engines: {node: '>=8'} dev: true - /array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.2 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} @@ -3583,17 +3558,6 @@ packages: ms: 2.0.0 dev: true - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: true - /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -3715,13 +3679,6 @@ packages: /dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - dependencies: - esutils: 2.0.3 - dev: true - /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -4026,54 +3983,6 @@ packages: semver: 7.6.0 dev: true - /eslint-config-prettier@9.1.0(eslint@8.57.0): - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - dependencies: - eslint: 8.57.0 - dev: true - - /eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - dependencies: - debug: 3.2.7 - is-core-module: 2.13.1 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.5.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - dependencies: - '@typescript-eslint/parser': 7.5.0(eslint@8.57.0)(typescript@5.4.2) - debug: 3.2.7 - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - dev: true - /eslint-plugin-astro@0.33.1(eslint@8.57.0): resolution: {integrity: sha512-wVyxAf8Ulmljv5qJQLgspWe17LR4hLXcksIENtUlEC3W7rleBVEKXS+hIqzBfCbpkBLZpl1tsYes1AGpYHd13w==} engines: {node: ^14.18.0 || >=16.0.0} @@ -4093,41 +4002,6 @@ packages: - supports-color dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.5.0)(eslint@8.57.0): - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - dependencies: - '@typescript-eslint/parser': 7.5.0(eslint@8.57.0)(typescript@5.4.2) - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.5.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) - hasown: 2.0.2 - is-core-module: 2.13.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.0 - semver: 6.3.1 - tsconfig-paths: 3.15.0 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} engines: {node: '>=4.0'} @@ -4153,35 +4027,6 @@ packages: object.fromentries: 2.0.8 dev: true - /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5): - resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '*' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true - dependencies: - eslint: 8.57.0 - eslint-config-prettier: 9.1.0(eslint@8.57.0) - prettier: 3.2.5 - prettier-linter-helpers: 1.0.0 - synckit: 0.8.8 - dev: true - - /eslint-plugin-simple-import-sort@12.0.0(eslint@8.57.0): - resolution: {integrity: sha512-8o0dVEdAkYap0Cn5kNeklaKcT1nUsa3LITWEuFk3nJifOoD+5JQGoyDUW2W/iPWwBsNBJpyJS9y4je/BgxLcyQ==} - peerDependencies: - eslint: '>=5.0.0' - dependencies: - eslint: 8.57.0 - dev: true - /eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4411,10 +4256,6 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - dev: true - /fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} requiresBuild: true @@ -5461,13 +5302,6 @@ packages: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - dependencies: - minimist: 1.2.8 - dev: true - /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -6620,15 +6454,6 @@ packages: es-object-atoms: 1.0.0 dev: true - /object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.2 - dev: true - /object.values@1.2.0: resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} @@ -6931,11 +6756,12 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} + /prettier-config-standard@7.0.0(prettier@3.2.5): + resolution: {integrity: sha512-NgZy4TYupJR6aMMuV/Aqs0ONnVhlFT8PXVkYRskxREq8EUhJHOddVfBxPV6fWpgcASpJSgvvhVLk0CBO5M3Hvw==} + peerDependencies: + prettier: ^2.6.0 || ^3.0.0 dependencies: - fast-diff: 1.3.0 + prettier: 3.2.5 dev: true /prettier-plugin-astro@0.13.0: @@ -7890,14 +7716,6 @@ packages: picocolors: 1.0.0 dev: true - /synckit@0.8.8: - resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} - engines: {node: ^14.18.0 || >=16.0.0} - dependencies: - '@pkgr/core': 0.1.1 - tslib: 2.6.2 - dev: true - /synckit@0.9.0: resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -8057,15 +7875,6 @@ packages: dependencies: typescript: 5.4.2 - /tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - dev: true - /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} requiresBuild: true diff --git a/scripts/update-json-resume-schema.ts b/scripts/update-json-resume-schema.ts index 32a2675..5c01429 100644 --- a/scripts/update-json-resume-schema.ts +++ b/scripts/update-json-resume-schema.ts @@ -1,16 +1,18 @@ -import { fileURLToPath} from 'url'; -import { resolve, dirname } from 'path'; -import { writeFile, mkdir } from 'fs/promises'; -import { compile } from 'json-schema-to-typescript'; +import { fileURLToPath } from 'url' +import { resolve, dirname } from 'path' +import { writeFile, mkdir } from 'fs/promises' +import { compile } from 'json-schema-to-typescript' -const root = fileURLToPath(new URL('..', import.meta.url)); +const root = fileURLToPath(new URL('..', import.meta.url)) -const response = await fetch('https://raw.githubusercontent.com/jsonresume/resume-schema/master/schema.json'); -const schema = await response.json(); +const response = await fetch( + 'https://raw.githubusercontent.com/jsonresume/resume-schema/master/schema.json' +) +const schema = await response.json() -const types = await compile(schema, 'ResumeSchema', { bannerComment: '' }); +const types = await compile(schema, 'ResumeSchema', { bannerComment: '' }) -const location = resolve(root, 'src/types/resume-schema.ts'); -console.log(`Writing to ${location}`); -await mkdir(dirname(location), { recursive: true }); -await writeFile(location, types); \ No newline at end of file +const location = resolve(root, 'src/types/resume-schema.ts') +console.log(`Writing to ${location}`) +await mkdir(dirname(location), { recursive: true }) +await writeFile(location, types) diff --git a/src/assets/images/icons.ts b/src/assets/images/icons.ts index 7f96967..8287dcc 100644 --- a/src/assets/images/icons.ts +++ b/src/assets/images/icons.ts @@ -1,7 +1,7 @@ -import { getImage } from 'astro:assets'; -import { data } from '@/data/data.js'; +import { getImage } from 'astro:assets' +import { data } from '@/data/data.js' -const imageSizes = [16, 32, 48, 64, 96, 128, 256, 512]; +const imageSizes = [16, 32, 48, 64, 96, 128, 256, 512] const pngs = await Promise.all( imageSizes.map(async (size) => { @@ -10,14 +10,14 @@ const pngs = await Promise.all( src: data.profile.image, format: 'png', width: size, - height: size, + height: size })), - size: `${size}x${size}`, - }; - }), -); + size: `${size}x${size}` + } + }) +) const icons = { - pngs, -}; -export { icons }; + pngs +} +export { icons } diff --git a/src/components/header/header.astro b/src/components/header/header.astro index 5b464cc..361076d 100644 --- a/src/components/header/header.astro +++ b/src/components/header/header.astro @@ -1,15 +1,15 @@ --- -import { data } from '@/data/data'; +import { data } from '@/data/data' -const { basics } = data.profile; +const { basics } = data.profile --- -