From 4140d5cec9d3c0ba806e29a7a67a9a56964b24b8 Mon Sep 17 00:00:00 2001 From: Cezar Augusto Date: Sun, 15 Sep 2024 18:08:18 -0300 Subject: [PATCH] Add config-eslint, config-prettier, config-lint templates --- examples/config-babel/manifest.json | 2 +- examples/config-eslint/.gitignore | 31 +++ examples/config-eslint/eslint.config.mjs | 11 + .../config-eslint/images/extension_128.png | Bin 0 -> 7624 bytes .../config-eslint/images/extension_16.png | Bin 0 -> 598 bytes .../config-eslint/images/extension_48.png | Bin 0 -> 2504 bytes examples/config-eslint/manifest.json | 14 ++ examples/config-eslint/newtab/index.html | 40 ++++ examples/config-eslint/newtab/scripts.ts | 11 + examples/config-eslint/newtab/styles.css | 17 ++ examples/config-eslint/package.json | 21 ++ examples/config-eslint/public/logo.svg | 7 + examples/config-eslint/tsconfig.json | 22 ++ examples/config-lint/.gitignore | 31 +++ examples/config-lint/.prettierrc | 11 + examples/config-lint/.stylelintrc.json | 3 + examples/config-lint/eslint.config.mjs | 15 ++ examples/config-lint/images/extension_128.png | Bin 0 -> 7624 bytes examples/config-lint/images/extension_16.png | Bin 0 -> 598 bytes examples/config-lint/images/extension_48.png | Bin 0 -> 2504 bytes examples/config-lint/manifest.json | 14 ++ examples/config-lint/newtab/index.html | 40 ++++ examples/config-lint/newtab/scripts.ts | 11 + examples/config-lint/newtab/styles.css | 17 ++ examples/config-lint/package.json | 27 +++ examples/config-lint/public/logo.png | Bin 0 -> 7624 bytes examples/config-lint/tsconfig.json | 22 ++ examples/config-prettier/.gitignore | 31 +++ examples/config-prettier/.prettierrc | 11 + .../config-prettier/images/extension_128.png | Bin 0 -> 7624 bytes .../config-prettier/images/extension_16.png | Bin 0 -> 598 bytes .../config-prettier/images/extension_48.png | Bin 0 -> 2504 bytes examples/config-prettier/manifest.json | 14 ++ examples/config-prettier/newtab/index.html | 40 ++++ examples/config-prettier/newtab/scripts.ts | 11 + examples/config-prettier/newtab/styles.css | 17 ++ examples/config-prettier/package.json | 17 ++ examples/config-prettier/public/logo.svg | 1 + examples/config-prettier/tsconfig.json | 22 ++ examples/config-stylelint/manifest.json | 2 +- examples/data.ts | 33 +++ examples/types.ts | 2 + pnpm-lock.yaml | 220 +++++++++++++++++- programs/create/create.spec.ts | 8 +- 44 files changed, 779 insertions(+), 17 deletions(-) create mode 100644 examples/config-eslint/.gitignore create mode 100644 examples/config-eslint/eslint.config.mjs create mode 100644 examples/config-eslint/images/extension_128.png create mode 100644 examples/config-eslint/images/extension_16.png create mode 100644 examples/config-eslint/images/extension_48.png create mode 100644 examples/config-eslint/manifest.json create mode 100644 examples/config-eslint/newtab/index.html create mode 100644 examples/config-eslint/newtab/scripts.ts create mode 100644 examples/config-eslint/newtab/styles.css create mode 100644 examples/config-eslint/package.json create mode 100644 examples/config-eslint/public/logo.svg create mode 100644 examples/config-eslint/tsconfig.json create mode 100644 examples/config-lint/.gitignore create mode 100644 examples/config-lint/.prettierrc create mode 100644 examples/config-lint/.stylelintrc.json create mode 100644 examples/config-lint/eslint.config.mjs create mode 100644 examples/config-lint/images/extension_128.png create mode 100644 examples/config-lint/images/extension_16.png create mode 100644 examples/config-lint/images/extension_48.png create mode 100644 examples/config-lint/manifest.json create mode 100644 examples/config-lint/newtab/index.html create mode 100644 examples/config-lint/newtab/scripts.ts create mode 100644 examples/config-lint/newtab/styles.css create mode 100644 examples/config-lint/package.json create mode 100644 examples/config-lint/public/logo.png create mode 100644 examples/config-lint/tsconfig.json create mode 100644 examples/config-prettier/.gitignore create mode 100644 examples/config-prettier/.prettierrc create mode 100644 examples/config-prettier/images/extension_128.png create mode 100644 examples/config-prettier/images/extension_16.png create mode 100644 examples/config-prettier/images/extension_48.png create mode 100644 examples/config-prettier/manifest.json create mode 100644 examples/config-prettier/newtab/index.html create mode 100644 examples/config-prettier/newtab/scripts.ts create mode 100644 examples/config-prettier/newtab/styles.css create mode 100644 examples/config-prettier/package.json create mode 100644 examples/config-prettier/public/logo.svg create mode 100644 examples/config-prettier/tsconfig.json diff --git a/examples/config-babel/manifest.json b/examples/config-babel/manifest.json index cd570c18..cf0ab48f 100644 --- a/examples/config-babel/manifest.json +++ b/examples/config-babel/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "version": "0.0.1", - "name": "Config Babel Template", + "name": "Babel Template", "description": "An Extension.js example.", "icons": { "16": "images/extension_16.png", diff --git a/examples/config-eslint/.gitignore b/examples/config-eslint/.gitignore new file mode 100644 index 00000000..5e8c65b7 --- /dev/null +++ b/examples/config-eslint/.gitignore @@ -0,0 +1,31 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +dist + +# misc +.DS_Store + +# local env files +.env.local +.env.development.local +.env.test.local +.env.production.local + +# lock files +yarn.lock +package-lock.json + +# debug files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# extension.js +extension-env.d.ts diff --git a/examples/config-eslint/eslint.config.mjs b/examples/config-eslint/eslint.config.mjs new file mode 100644 index 00000000..90d6f5e2 --- /dev/null +++ b/examples/config-eslint/eslint.config.mjs @@ -0,0 +1,11 @@ +import globals from "globals"; +import pluginJs from "@eslint/js"; +import tseslint from "typescript-eslint"; + + +export default [ + {files: ["**/*.{js,mjs,cjs,ts}"]}, + {languageOptions: { globals: globals.browser }}, + pluginJs.configs.recommended, + ...tseslint.configs.recommended, +]; \ No newline at end of file diff --git a/examples/config-eslint/images/extension_128.png b/examples/config-eslint/images/extension_128.png new file mode 100644 index 0000000000000000000000000000000000000000..c399dc75954d5899fa5545e7c959fb965d47c32c GIT binary patch literal 7624 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 literal 0 HcmV?d00001 diff --git a/examples/config-eslint/images/extension_48.png b/examples/config-eslint/images/extension_48.png new file mode 100644 index 0000000000000000000000000000000000000000..9d83a03bab2356a95ef7e8663705f368808367c0 GIT binary patch literal 2504 zcmV;(2{-nMP)BK2nA#jrA>k$f`}+f0lf!L+%d99rzON17zTY1SyM7x1W=GZwS;zs(hiTyla3O>h<)v$#eM@TnEp9 zkM{%Gc8#HJYk{V5JparhaZ@WRa)$!VgsOf{rw4^_tmwLa-*MtJi<%}_8YwI6m;mc93 zgcrVn7o|Sig#s<)-Tx&!x7=tm0Y3%A@0vws)!OPpNfQ;1K3%gEB(H$dh?+VO^)IZ1 z{^@p55^O0PWON80qaxGk&rwE6hgC%z5VK(tqGk<+s*cI;fX(YeDX^@bE4Mhzc307t z#eFIZNQ~&V0iWkxKCY%ZNomO>zQF%JO)a_`7bfx?KR{C9o*kuh7!=WdNS44xly;rRF<96OJN ze3$o%$W0av6hb%&V19obR8a;LFV8^XG=ILK874*2Q0MSsL@yWx=aKX9e1FaV5E*dn z*4Lr$+S=dN<3ZS?&0rY#1nip+pkVwelGGRSy(%an{D8+1n?6wpZ=IT6A$&PJ=dPn@ z<_CV?Sd{`PGF)6Y{I;tQ-gWdmZagvt*WyOuX3tr0pScR-h+iOj-t#m?(mhasMxS3~ zTl1M1xj-oX(@r=(If}4Hnj(7U5J(y|A}90}_wtigkdoKLXuA%dLr$0JaFf!JU<;)C&oF=RngaK43fR#MSU*-9$ukBI=$_gSJg0lytj zj+}$9(2lUy4MVDC zoRIBmGy@T2v$2~eL;veeLEE^GUlK=6qd3$SQkX_$arP7E{!<~_R(l4_E0aZJVCZ}Q z9NEp1;IrEAY8Uo+3vu+Exr&;CeS;&Kw!H-^8hwsNw$*z=K2xOv>I4(wGG;>Cq5)hd zv*4vf6HYS_)}<9ncO1Q=Er&&2=byoK`Z7FMb5Rqp@TPZ0Lw361%PT_hrv0#`?G*2; zwF27qO%VIx6lfa8q2#ZJQ1HrXgmr8t6fn&hhFixk!h1a*QnV4q;aw3mb0~cFQdm<~ zp{6hld5WgZi=0kVgwV3bSFPuQD!@Xr*{DoL*p}@=;k+%7i%a1=bQUFl`wE6Zol)n= z5|PrGI;iTJA=@0VzOfOmZ!V#xkY&o*Wb@j#jYX)fE&@7n=2DK#tzEZcK4>>(%z@Gj&YJ;L#A3}C{5R?82!UsKB?dJl{K;-0p z;%Hlz0SB2*WymD3jWR2Llmh35yrGK``|(skOY+DU9F=@55CYCX-pKdJk%|#Hu`i4- z_Qbt{V6gmd@}rpb6QS?hsmf;pD&Rcu9SSC|6;o<@XABI3t3Rbb7EDXT>X4Xf4EbPH z<`guMIsX1N@?S^;d@{_$An&CTj%|l&0M|i^2#0y;iwOT!$DnOPW@5I%yx~iP5;1FD zhGEPvaj#Ia;d9v6>>&zng!#`YLEBYHB}(_4q?uR>+3kgC{z&LUj7C+^v}}OrMWayn zxiBKU>-k)LH?CW5+S%jrapp5qd;Tdlt2Uk!CMp z|6D|-^dW)6;JuU$b%R($z4aW;?s!OAe?XMz9np(MBWB$Migr%q|86;omTV8&Z?(7( zcka2A1KBHAxk3sAs^K7d;V7}bWS(zJ-v_y{1gh95#P6Pk@P3aWj2Nuz@b@sMjT58q zy_QGRdlB5LRED#u43x@bS1O}wXg@wQqE&nTQ_I5SU+Pi+u13aKJ= zA`|=U&VcvT3DJn#@;d5YS%dh`Qlah8Bw#zwg>1Npc85LI9OmUoqAH;zf-2xTbw$Ky z9Tl1a!MrjB`oxaHes!H&BJKlPH(2TfY@0uB8C(=ictw|xIZuRCr4Uqsk}`*jo;yOs z=G!3_?$5M`>)R~cX#KK?(`t%X<`qc+`{ITC%_pakeP@W@;r$+kQV6O5FI;St$~8^v zA>qJ$G0IS@=yzSJt|f~$b}FMVir@VQoJTJ}*X3bEzBV9Wf5vgW5RsDTf38w}^v580 z9-tMHb;>$%8u8LI!p>zXIF)Bi=Ipj|*qsK&gZP@N4BR!rZk z0}R8u!A#VF*SFd>jp6+AEOLjv3pu|SN>s~N9F@+s%7$4rV_9c*Wn!>R)U4+ zYDVsm#fl2Aqmqul{wi%#IpIjB6D#lhDFNTjLcv_UHws{-GJ8H11(>)g39~Y$^$sv265H`L_t8yx&UxwzPZ?_CW>9#xj!azg_;9 zgFDE53ppc|F3sj0z=Gee5TWux0NXqZ&Q>DBxAeT!r=os;*XpEf*M2sgT38VddrEBr z))f5T2(H1F{YOHWI$O)_ZGtYZ{EDdh%aAR+lZpF-EROXwpqWnCH?Y4}Zty={yT*27 SW_%+60000 + + + + + ESLint Extension + + + + + +
+

+ The ESLint logo +
+ Welcome to your ESLint Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org. +

+
+ + + diff --git a/examples/config-eslint/newtab/scripts.ts b/examples/config-eslint/newtab/scripts.ts new file mode 100644 index 00000000..f6c62d62 --- /dev/null +++ b/examples/config-eslint/newtab/scripts.ts @@ -0,0 +1,11 @@ +function getManifest() { + return chrome.runtime.getManifest() +} + +const manifest = getManifest() + +console.table({ + name: manifest.name, + version: manifest.version, + description: manifest.description +}) diff --git a/examples/config-eslint/newtab/styles.css b/examples/config-eslint/newtab/styles.css new file mode 100644 index 00000000..2782656f --- /dev/null +++ b/examples/config-eslint/newtab/styles.css @@ -0,0 +1,17 @@ +body { + display: flex; + justify-content: center; + align-items: center; + height: calc(100vh - 26px); +} + +h1 { + font-size: 4.7em; +} + +.eslint:hover { + filter: grayscale(1); + transition: + filter 2s, + border-color 2s; +} diff --git a/examples/config-eslint/package.json b/examples/config-eslint/package.json new file mode 100644 index 00000000..15ab8b1b --- /dev/null +++ b/examples/config-eslint/package.json @@ -0,0 +1,21 @@ +{ + "private": true, + "name": "config-eslint", + "description": "An Extension.js example.", + "version": "0.0.1", + "author": { + "name": "Cezar Augusto", + "email": "boss@cezaraugusto.net", + "url": "https://cezaraugusto.com" + }, + "scripts": { + "lint": "eslint ." + }, + "devDependencies": { + "@eslint/js": "^9.6.0", + "eslint": "^9.6.0", + "globals": "^15.9.0", + "typescript": "5.3.3", + "typescript-eslint": "^8.5.0" + } +} diff --git a/examples/config-eslint/public/logo.svg b/examples/config-eslint/public/logo.svg new file mode 100644 index 00000000..64d7b534 --- /dev/null +++ b/examples/config-eslint/public/logo.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/examples/config-eslint/tsconfig.json b/examples/config-eslint/tsconfig.json new file mode 100644 index 00000000..8f138e5d --- /dev/null +++ b/examples/config-eslint/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "allowJs": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "isolatedModules": true, + "jsx": "react-jsx", + "lib": ["dom", "dom.iterable", "esnext"], + "moduleResolution": "node", + "module": "esnext", + "noEmit": true, + "resolveJsonModule": true, + "strict": true, + "target": "esnext", + "verbatimModuleSyntax": true, + "useDefineForClassFields": true, + "skipLibCheck": true + }, + "include": ["./"], + "exclude": ["node_modules", "dist"] +} diff --git a/examples/config-lint/.gitignore b/examples/config-lint/.gitignore new file mode 100644 index 00000000..5e8c65b7 --- /dev/null +++ b/examples/config-lint/.gitignore @@ -0,0 +1,31 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +dist + +# misc +.DS_Store + +# local env files +.env.local +.env.development.local +.env.test.local +.env.production.local + +# lock files +yarn.lock +package-lock.json + +# debug files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# extension.js +extension-env.d.ts diff --git a/examples/config-lint/.prettierrc b/examples/config-lint/.prettierrc new file mode 100644 index 00000000..56ecbd84 --- /dev/null +++ b/examples/config-lint/.prettierrc @@ -0,0 +1,11 @@ +{ + "printWidth": 80, + "tabWidth": 2, + "useTabs": false, + "semi": false, + "singleQuote": true, + "quoteProps": "as-needed", + "trailingComma": "none", + "bracketSpacing": false, + "arrowParens": "always" +} diff --git a/examples/config-lint/.stylelintrc.json b/examples/config-lint/.stylelintrc.json new file mode 100644 index 00000000..eff25609 --- /dev/null +++ b/examples/config-lint/.stylelintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "stylelint-config-standard-scss" +} diff --git a/examples/config-lint/eslint.config.mjs b/examples/config-lint/eslint.config.mjs new file mode 100644 index 00000000..884a72a6 --- /dev/null +++ b/examples/config-lint/eslint.config.mjs @@ -0,0 +1,15 @@ +import globals from "globals"; +import pluginJs from "@eslint/js"; +import tseslint from "typescript-eslint"; +import prettier from "eslint-config-prettier"; + +export default [ + {files: ["**/*.{js,mjs,ts}"]}, + {languageOptions: { globals: globals.browser }}, + pluginJs.configs.recommended, + ...tseslint.configs.recommended, + prettier, + { + ignores: ['dist/**'], + } +]; \ No newline at end of file diff --git a/examples/config-lint/images/extension_128.png b/examples/config-lint/images/extension_128.png new file mode 100644 index 0000000000000000000000000000000000000000..c399dc75954d5899fa5545e7c959fb965d47c32c GIT binary patch literal 7624 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 literal 0 HcmV?d00001 diff --git a/examples/config-lint/images/extension_48.png b/examples/config-lint/images/extension_48.png new file mode 100644 index 0000000000000000000000000000000000000000..9d83a03bab2356a95ef7e8663705f368808367c0 GIT binary patch literal 2504 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 SW_%+60000 + + + + + Lint Extension + + + + + +
+

+ +
+ Welcome to your Lint Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org. +

+
+ + + diff --git a/examples/config-lint/newtab/scripts.ts b/examples/config-lint/newtab/scripts.ts new file mode 100644 index 00000000..f6c62d62 --- /dev/null +++ b/examples/config-lint/newtab/scripts.ts @@ -0,0 +1,11 @@ +function getManifest() { + return chrome.runtime.getManifest() +} + +const manifest = getManifest() + +console.table({ + name: manifest.name, + version: manifest.version, + description: manifest.description +}) diff --git a/examples/config-lint/newtab/styles.css b/examples/config-lint/newtab/styles.css new file mode 100644 index 00000000..6d683c08 --- /dev/null +++ b/examples/config-lint/newtab/styles.css @@ -0,0 +1,17 @@ +body { + display: flex; + justify-content: center; + align-items: center; + height: calc(100vh - 26px); +} + +h1 { + font-size: 4.7em; +} + +.logo:hover { + filter: grayscale(1); + transition: + filter 2s, + border-color 2s; +} diff --git a/examples/config-lint/package.json b/examples/config-lint/package.json new file mode 100644 index 00000000..66fa5158 --- /dev/null +++ b/examples/config-lint/package.json @@ -0,0 +1,27 @@ +{ + "private": true, + "name": "config-lint", + "description": "An Extension.js example.", + "version": "0.0.1", + "author": { + "name": "Cezar Augusto", + "email": "boss@cezaraugusto.net", + "url": "https://cezaraugusto.com" + }, + "scripts": { + "lint:js": "eslint .", + "lint:css": "npx stylelint '**/*.scss'", + "lint": "npm run lint:js && npm run lint:css", + "format": "prettier --write \"**/*.{ts,tsx,md,js,json,html,css}\"" + }, + "devDependencies": { + "@eslint/js": "^9.6.0", + "eslint": "^9.6.0", + "eslint-config-prettier": "^9.1.0", + "globals": "^15.9.0", + "prettier": "^3.3.2", + "stylelint": "^16.7.0", + "typescript": "5.3.3", + "typescript-eslint": "^8.5.0" + } +} diff --git a/examples/config-lint/public/logo.png b/examples/config-lint/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c399dc75954d5899fa5545e7c959fb965d47c32c GIT binary patch literal 7624 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 literal 0 HcmV?d00001 diff --git a/examples/config-prettier/images/extension_48.png b/examples/config-prettier/images/extension_48.png new file mode 100644 index 0000000000000000000000000000000000000000..9d83a03bab2356a95ef7e8663705f368808367c0 GIT binary patch literal 2504 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 SW_%+60000 + + + + + Prettier Extension + + + + + +
+

+ The Prettier logo +
+ Welcome to your Prettier Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org. +

+
+ + + diff --git a/examples/config-prettier/newtab/scripts.ts b/examples/config-prettier/newtab/scripts.ts new file mode 100644 index 00000000..f6c62d62 --- /dev/null +++ b/examples/config-prettier/newtab/scripts.ts @@ -0,0 +1,11 @@ +function getManifest() { + return chrome.runtime.getManifest() +} + +const manifest = getManifest() + +console.table({ + name: manifest.name, + version: manifest.version, + description: manifest.description +}) diff --git a/examples/config-prettier/newtab/styles.css b/examples/config-prettier/newtab/styles.css new file mode 100644 index 00000000..6dfc794c --- /dev/null +++ b/examples/config-prettier/newtab/styles.css @@ -0,0 +1,17 @@ +body { + display: flex; + justify-content: center; + align-items: center; + height: calc(100vh - 26px); +} + +h1 { + font-size: 4.7em; +} + +.prettier:hover { + filter: grayscale(1); + transition: + filter 2s, + border-color 2s; +} diff --git a/examples/config-prettier/package.json b/examples/config-prettier/package.json new file mode 100644 index 00000000..871a1d73 --- /dev/null +++ b/examples/config-prettier/package.json @@ -0,0 +1,17 @@ +{ + "private": true, + "name": "config-prettier", + "description": "An Extension.js example.", + "version": "0.0.1", + "author": { + "name": "Cezar Augusto", + "email": "boss@cezaraugusto.net", + "url": "https://cezaraugusto.com" + }, + "scripts": { + "format": "prettier --write \"**/*.{ts,tsx,md,js,json,html,css}\"" + }, + "devDependencies": { + "prettier": "^3.3.2" + } +} diff --git a/examples/config-prettier/public/logo.svg b/examples/config-prettier/public/logo.svg new file mode 100644 index 00000000..a5ed92e4 --- /dev/null +++ b/examples/config-prettier/public/logo.svg @@ -0,0 +1 @@ +prettier-icon-dark \ No newline at end of file diff --git a/examples/config-prettier/tsconfig.json b/examples/config-prettier/tsconfig.json new file mode 100644 index 00000000..8f138e5d --- /dev/null +++ b/examples/config-prettier/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "allowJs": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "isolatedModules": true, + "jsx": "react-jsx", + "lib": ["dom", "dom.iterable", "esnext"], + "moduleResolution": "node", + "module": "esnext", + "noEmit": true, + "resolveJsonModule": true, + "strict": true, + "target": "esnext", + "verbatimModuleSyntax": true, + "useDefineForClassFields": true, + "skipLibCheck": true + }, + "include": ["./"], + "exclude": ["node_modules", "dist"] +} diff --git a/examples/config-stylelint/manifest.json b/examples/config-stylelint/manifest.json index fac9f52b..c24a438a 100644 --- a/examples/config-stylelint/manifest.json +++ b/examples/config-stylelint/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "version": "0.0.1", - "name": "Config Stylelint Template", + "name": "Stylelint Template", "description": "An Extension.js example.", "icons": { "16": "images/extension_16.png", diff --git a/examples/data.ts b/examples/data.ts index 50c3f7d9..9ccb3e6c 100644 --- a/examples/data.ts +++ b/examples/data.ts @@ -341,6 +341,39 @@ const CONFIG_TEMPLATES: Template[] = [ // hasEnv: false, // configFiles: ['babel.config.json'] // }, + { + name: 'config-eslint', + uiContext: ['newTab'], + uiFramework: undefined, + css: 'css', + hasBackground: false, + hasEnv: false, + configFiles: ['tsconfig.json', 'eslint.config.mjs'] + }, + { + name: 'config-lint', + uiContext: ['newTab'], + uiFramework: undefined, + css: 'sass', + hasBackground: false, + hasEnv: false, + configFiles: [ + 'tsconfig.json', + '.stylelintrc.json', + 'eslint.config.mjs', + '.prettierrc', + '.stylelintrc.json' + ] + }, + { + name: 'config-prettier', + uiContext: ['newTab'], + uiFramework: undefined, + css: 'css', + hasBackground: false, + hasEnv: false, + configFiles: ['tsconfig.json', '.prettierrc'] + }, { name: 'config-stylelint', uiContext: ['newTab'], diff --git a/examples/types.ts b/examples/types.ts index cd1739f9..fce17454 100644 --- a/examples/types.ts +++ b/examples/types.ts @@ -6,6 +6,8 @@ export type ConfigFiles = | '.stylelintrc.json' | 'extension.config.js' | 'babel.config.json' + | '.prettierrc' + | 'eslint.config.mjs' export interface Template { name: string diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7521f928..0d0432aa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,7 +35,7 @@ importers: version: 20.16.5 '@typescript-eslint/eslint-plugin': specifier: ^6.19.1 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3))(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3) + version: 6.21.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3))(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3) dotenv-cli: specifier: ^7.3.0 version: 7.4.2 @@ -109,6 +109,57 @@ importers: specifier: ^16.7.0 version: 16.9.0(typescript@5.3.3) + examples/config-eslint: + devDependencies: + '@eslint/js': + specifier: ^9.6.0 + version: 9.10.0 + eslint: + specifier: ^9.6.0 + version: 9.10.0(jiti@1.21.6) + globals: + specifier: ^15.9.0 + version: 15.9.0 + typescript: + specifier: 5.3.3 + version: 5.3.3 + typescript-eslint: + specifier: ^8.5.0 + version: 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3) + + examples/config-lint: + devDependencies: + '@eslint/js': + specifier: ^9.6.0 + version: 9.10.0 + eslint: + specifier: ^9.6.0 + version: 9.10.0(jiti@1.21.6) + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@9.10.0(jiti@1.21.6)) + globals: + specifier: ^15.9.0 + version: 15.9.0 + prettier: + specifier: ^3.3.2 + version: 3.3.3 + stylelint: + specifier: ^16.7.0 + version: 16.9.0(typescript@5.3.3) + typescript: + specifier: 5.3.3 + version: 5.3.3 + typescript-eslint: + specifier: ^8.5.0 + version: 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3) + + examples/config-prettier: + devDependencies: + prettier: + specifier: ^3.3.2 + version: 3.3.3 + examples/config-stylelint: devDependencies: sass: @@ -2606,11 +2657,22 @@ packages: typescript: optional: true - '@typescript-eslint/parser@6.21.0': - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/eslint-plugin@8.5.0': + resolution: {integrity: sha512-lHS5hvz33iUFQKuPFGheAB84LwcJ60G8vKnEhnfcK1l8kGVLro2SFYW6K0/tj8FUhRJ0VHyg1oAfg50QGbPPHw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@8.5.0': + resolution: {integrity: sha512-gF77eNv0Xz2UJg/NbpWJ0kqAm35UMsvZf1GHj8D9MRFTj/V3tAciIWXfmPLsAAF/vUlpWPvUDyH1jjsr0cMVWw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: @@ -2620,6 +2682,10 @@ packages: resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/scope-manager@8.5.0': + resolution: {integrity: sha512-06JOQ9Qgj33yvBEx6tpC8ecP9o860rsR22hWMEd12WcTRrfaFgHr2RB/CA/B+7BMhHkXT4chg2MyboGdFGawYg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/type-utils@6.21.0': resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} engines: {node: ^16.0.0 || >=18.0.0} @@ -2630,10 +2696,23 @@ packages: typescript: optional: true + '@typescript-eslint/type-utils@8.5.0': + resolution: {integrity: sha512-N1K8Ix+lUM+cIDhL2uekVn/ZD7TZW+9/rwz8DclQpcQ9rk4sIL5CAlBC0CugWKREmDjBzI/kQqU4wkg46jWLYA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/types@6.21.0': resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/types@8.5.0': + resolution: {integrity: sha512-qjkormnQS5wF9pjSi6q60bKUHH44j2APxfh9TQRXK8wbYVeDYYdYJGIROL87LGZZ2gz3Rbmjc736qyL8deVtdw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@6.21.0': resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -2643,16 +2722,35 @@ packages: typescript: optional: true + '@typescript-eslint/typescript-estree@8.5.0': + resolution: {integrity: sha512-vEG2Sf9P8BPQ+d0pxdfndw3xIXaoSjliG0/Ejk7UggByZPKXmJmw3GW5jV2gHNQNawBUyfahoSiCFVov0Ruf7Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/utils@6.21.0': resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 + '@typescript-eslint/utils@8.5.0': + resolution: {integrity: sha512-6yyGYVL0e+VzGYp60wvkBHiqDWOpT63pdMV2CVG4LVDd5uR6q1qQN/7LafBZtAtNIn/mqXjsSeS5ggv/P0iECw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + '@typescript-eslint/visitor-keys@6.21.0': resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/visitor-keys@8.5.0': + resolution: {integrity: sha512-yTPqMnbAZJNy2Xq2XU8AdtOW9tJIr+UQb64aXB9f3B1498Zx9JorVgFJcZpEc9UBuCCrdzKID2RGAMkYcDtZOw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vue/compiler-core@3.5.5': resolution: {integrity: sha512-ZrxcY8JMoV+kgDrmRwlDufz0SjDZ7jfoNZiIBluAACMBmgr55o/jTbxnyrccH6VSJXnFaDI4Ik1UFCiq9r8i7w==} @@ -3649,6 +3747,12 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -6218,6 +6322,15 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + typescript-eslint@8.5.0: + resolution: {integrity: sha512-uD+XxEoSIvqtm4KE97etm32Tn5MfaZWgWfMMREStLxR6JzvHkc2Tkj7zhTEK5XmtpTmKHNnG8Sot6qDfhHtR1Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + typescript@5.3.3: resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} @@ -8733,10 +8846,10 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3))(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3)': + '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3))(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3) + '@typescript-eslint/parser': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3) '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/type-utils': 6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3) '@typescript-eslint/utils': 6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3) @@ -8753,12 +8866,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3)': + '@typescript-eslint/eslint-plugin@8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3))(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3)': dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.21.0 + '@eslint-community/regexpp': 4.11.1 + '@typescript-eslint/parser': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3) + '@typescript-eslint/scope-manager': 8.5.0 + '@typescript-eslint/type-utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 8.5.0 + eslint: 9.10.0(jiti@1.21.6) + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.3.3) + optionalDependencies: + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.5.0 + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 8.5.0 debug: 4.3.7 eslint: 9.10.0(jiti@1.21.6) optionalDependencies: @@ -8771,6 +8902,11 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/scope-manager@8.5.0': + dependencies: + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/visitor-keys': 8.5.0 + '@typescript-eslint/type-utils@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3)': dependencies: '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) @@ -8783,8 +8919,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.3.3) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3) + debug: 4.3.7 + ts-api-utils: 1.3.0(typescript@5.3.3) + optionalDependencies: + typescript: 5.3.3 + transitivePeerDependencies: + - eslint + - supports-color + '@typescript-eslint/types@6.21.0': {} + '@typescript-eslint/types@8.5.0': {} + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3)': dependencies: '@typescript-eslint/types': 6.21.0 @@ -8800,6 +8950,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.5.0(typescript@5.3.3)': + dependencies: + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/visitor-keys': 8.5.0 + debug: 4.3.7 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.3.3) + optionalDependencies: + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) @@ -8814,11 +8979,27 @@ snapshots: - supports-color - typescript + '@typescript-eslint/utils@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) + '@typescript-eslint/scope-manager': 8.5.0 + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.3.3) + eslint: 9.10.0(jiti@1.21.6) + transitivePeerDependencies: + - supports-color + - typescript + '@typescript-eslint/visitor-keys@6.21.0': dependencies: '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@8.5.0': + dependencies: + '@typescript-eslint/types': 8.5.0 + eslint-visitor-keys: 3.4.3 + '@vue/compiler-core@3.5.5': dependencies: '@babel/parser': 7.25.6 @@ -9953,6 +10134,10 @@ snapshots: escape-string-regexp@4.0.0: {} + eslint-config-prettier@9.1.0(eslint@9.10.0(jiti@1.21.6)): + dependencies: + eslint: 9.10.0(jiti@1.21.6) + eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 @@ -12988,6 +13173,17 @@ snapshots: typedarray@0.0.6: {} + typescript-eslint@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3))(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3) + '@typescript-eslint/parser': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.3.3) + optionalDependencies: + typescript: 5.3.3 + transitivePeerDependencies: + - eslint + - supports-color + typescript@5.3.3: {} undici-types@5.26.5: {} diff --git a/programs/create/create.spec.ts b/programs/create/create.spec.ts index 242fd4f0..3a4b1033 100644 --- a/programs/create/create.spec.ts +++ b/programs/create/create.spec.ts @@ -99,14 +99,16 @@ describe('extension create', () => { expect( fileExists(template.name, `${context.toLowerCase()}/scripts.mjs`) ).toBeTruthy() - // Expect [uiContext]/[uiContext].[ext] for scripts + // Expect [uiContext]/[uiContext].[ext] for scripts } else { expect( - fileExists(template.name, `${context.toLowerCase()}/scripts.${ext}`) + fileExists( + template.name, + `${context.toLowerCase()}/scripts.${ext}` + ) ).toBeTruthy() } - // Expect [uiContext]/styles.sass|less|css for styles if (template.css === 'sass') { expect(