0.0.1
This commit is contained in:
commit
4d2186b8a8
15 changed files with 1269 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
node_modules
|
||||
3
.prettierignore
Normal file
3
.prettierignore
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
bun.lock
|
||||
dist
|
||||
node_modules
|
||||
1
README.md
Normal file
1
README.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
# @gcch/configuration-stylelint
|
||||
4
cspell.json
Normal file
4
cspell.json
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"dictionaries": ["fr-fr", "en-gb"],
|
||||
"words": ["Navigateur", "tsdown", "Descriptionless"]
|
||||
}
|
||||
6
dist/index.d.ts
vendored
Normal file
6
dist/index.d.ts
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
import Stylelint from "stylelint";
|
||||
|
||||
//#region index.d.ts
|
||||
declare const configCss: Readonly<Stylelint.Config>;
|
||||
//#endregion
|
||||
export { configCss };
|
||||
1
dist/index.js
vendored
Normal file
1
dist/index.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
import e from"stylelint";import{propertyGroups as t}from"stylelint-config-clean-order";const n=t.map(e=>({emptyLineBefore:`never`,noEmptyLineBetween:!0,properties:e})),r={allowEmptyInput:!1,cache:!0,extends:[`stylelint-config-clean-order`,`stylelint-config-standard`],ignoreFiles:[`node_modules/**`,`dist/**`,`**/reset.css`,`**/*.min.css`],plugins:[`stylelint-declaration-block-no-ignored-properties`,`stylelint-gamut`,`stylelint-no-unresolved-module`,`stylelint-no-unsupported-browser-features`,`stylelint-plugin-logical-css`,`stylelint-value-no-unknown-custom-properties`],reportDescriptionlessDisables:!0,reportInvalidScopeDisables:!0,reportNeedlessDisables:!0,reportUnscopedDisables:!0,rules:{"color-function-alias-notation":`with-alpha`,"color-function-notation":`modern`,"color-no-hex":!0,"custom-property-pattern":null,"declaration-block-no-duplicate-custom-properties":!0,"declaration-block-no-duplicate-properties":!0,"declaration-block-no-redundant-longhand-properties":!0,"declaration-block-no-shorthand-property-overrides":!0,"function-disallowed-list":[`rgba`,`hsla`,`rgb`,`hsl`],"gamut/color-no-out-gamut-range":!0,"max-nesting-depth":null,"no-descending-specificity":null,"no-duplicate-selectors":[!0,{disallowInList:!1}],"order/properties-order":[n,{severity:`error`,unspecified:`bottomAlphabetical`}],"plugin/declaration-block-no-ignored-properties":!0,"plugin/no-unresolved-module":!0,"plugin/no-unsupported-browser-features":[!0,{ignore:[`css-selection`,`css-nesting`,`css-media-range-syntax`],ignorePartialSupport:!0,severity:`warning`}],"plugin/use-logical-properties-and-values":[!0,{severity:`warning`}],"plugin/use-logical-units":[!0,{severity:`warning`}],"selector-class-pattern":null,"selector-id-pattern":null,"selector-max-compound-selectors":null,"selector-max-id":null,"selector-no-qualifying-type":null}};export{r as configCss};
|
||||
4
eslint.config.ts
Normal file
4
eslint.config.ts
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
import { configTypescriptNavigateur } from "@gcch/configuration-eslint";
|
||||
import { defineConfig } from "eslint/config";
|
||||
|
||||
export default defineConfig([...configTypescriptNavigateur]);
|
||||
92
index.ts
Normal file
92
index.ts
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
import Stylelint from "stylelint";
|
||||
// @ts-expect-error -- La dépendance ne dispose pas de types.
|
||||
import { propertyGroups } from "stylelint-config-clean-order";
|
||||
|
||||
type GroupesPropriétés = ReadonlyArray<ReadonlyArray<string>>;
|
||||
type OrdrePropriétés = Readonly<{
|
||||
emptyLineBefore: string;
|
||||
noEmptyLineBetween: boolean;
|
||||
properties: ReadonlyArray<string>;
|
||||
}>;
|
||||
|
||||
const ordrePropriétés: ReadonlyArray<OrdrePropriétés> = (propertyGroups as GroupesPropriétés).map(
|
||||
(propriétés: ReadonlyArray<string>): OrdrePropriétés => ({
|
||||
emptyLineBefore: "never",
|
||||
noEmptyLineBetween: true,
|
||||
properties: propriétés,
|
||||
}),
|
||||
);
|
||||
|
||||
export const configCss: Readonly<Stylelint.Config> = {
|
||||
allowEmptyInput: false,
|
||||
cache: true,
|
||||
extends: ["stylelint-config-clean-order", "stylelint-config-standard"],
|
||||
ignoreFiles: ["node_modules/**", "dist/**", "**/reset.css", "**/*.min.css"],
|
||||
plugins: [
|
||||
"stylelint-declaration-block-no-ignored-properties",
|
||||
"stylelint-gamut",
|
||||
"stylelint-no-unresolved-module",
|
||||
"stylelint-no-unsupported-browser-features",
|
||||
"stylelint-plugin-logical-css",
|
||||
"stylelint-value-no-unknown-custom-properties",
|
||||
],
|
||||
reportDescriptionlessDisables: true,
|
||||
reportInvalidScopeDisables: true,
|
||||
reportNeedlessDisables: true,
|
||||
reportUnscopedDisables: true,
|
||||
rules: {
|
||||
/**
|
||||
* Force l'utilisation de notations avec canal alpha pour les couleurs.
|
||||
*
|
||||
* @link [color-function-alias-notation](https://stylelint.io/user-guide/rules/color-function-alias-notation)
|
||||
*/
|
||||
"color-function-alias-notation": "with-alpha",
|
||||
/**
|
||||
* Force l'utilisation de notations modernes pour les couleurs.
|
||||
*
|
||||
* @link [color-function-notation](https://stylelint.io/user-guide/rules/color-function-notation)
|
||||
*/
|
||||
"color-function-notation": "modern",
|
||||
/**
|
||||
* Interdit l'usage de notations hexadécimales pour les couleurs.
|
||||
*
|
||||
* @link [color-no-hex](https://stylelint.io/user-guide/rules/color-no-hex)
|
||||
*/
|
||||
"color-no-hex": true,
|
||||
"custom-property-pattern": null,
|
||||
"declaration-block-no-duplicate-custom-properties": true,
|
||||
"declaration-block-no-duplicate-properties": true,
|
||||
"declaration-block-no-redundant-longhand-properties": true,
|
||||
"declaration-block-no-shorthand-property-overrides": true,
|
||||
"function-disallowed-list": ["rgba", "hsla", "rgb", "hsl"],
|
||||
"gamut/color-no-out-gamut-range": true,
|
||||
"max-nesting-depth": null,
|
||||
"no-descending-specificity": null,
|
||||
"no-duplicate-selectors": [true, { disallowInList: false }],
|
||||
"order/properties-order": [ordrePropriétés, { severity: "error", unspecified: "bottomAlphabetical" }],
|
||||
"plugin/declaration-block-no-ignored-properties": true,
|
||||
"plugin/no-unresolved-module": true,
|
||||
"plugin/no-unsupported-browser-features": [
|
||||
true,
|
||||
{
|
||||
ignore: [
|
||||
// Incompatible avec Safari iOS mais ne change rien.
|
||||
"css-selection",
|
||||
// L'imbrication est prise en charge depuis au moins 2 ans.
|
||||
"css-nesting",
|
||||
// Safari...
|
||||
"css-media-range-syntax",
|
||||
],
|
||||
ignorePartialSupport: true,
|
||||
severity: "warning",
|
||||
},
|
||||
],
|
||||
"plugin/use-logical-properties-and-values": [true, { severity: "warning" }],
|
||||
"plugin/use-logical-units": [true, { severity: "warning" }],
|
||||
"selector-class-pattern": null,
|
||||
"selector-id-pattern": null,
|
||||
"selector-max-compound-selectors": null,
|
||||
"selector-max-id": null,
|
||||
"selector-no-qualifying-type": null,
|
||||
},
|
||||
};
|
||||
26
justfile
Normal file
26
justfile
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
set shell := ["/usr/bin/fish", "-c"]
|
||||
|
||||
# Formate le code.
|
||||
formate:
|
||||
bun prettier -uw .
|
||||
dprint fmt
|
||||
|
||||
# Met à jour les dépendances NPM.
|
||||
maj-dependances:
|
||||
bun update
|
||||
|
||||
# Analyse le code TypeScript avec ESLint.
|
||||
analyse-code:
|
||||
bun eslint
|
||||
|
||||
# Compile le projet.
|
||||
compile:
|
||||
bun tsdown --attw --publint --unused
|
||||
|
||||
# Nettoie le dosiser de compilation.
|
||||
nettoie:
|
||||
rm -rfv dist
|
||||
|
||||
# Publie le paquet sur le registre local.
|
||||
publie:
|
||||
npm publish --registry http://localhost:4873
|
||||
43
package.json
Normal file
43
package.json
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"name": "@gcch/configuration-stylelint",
|
||||
"version": "0.0.1",
|
||||
"type": "module",
|
||||
"description": "Configuration Stylelint partageable pour gcch.",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
"module": "./dist/index.js",
|
||||
"exports": {
|
||||
".": "./dist/index.js",
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"peerDependencies": {
|
||||
"browserslist": "^4.26.2",
|
||||
"stylelint": "^16.24.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"stylelint-config-clean-order": "^7.0.0",
|
||||
"stylelint-config-standard": "^39.0.0",
|
||||
"stylelint-declaration-block-no-ignored-properties": "^2.8.0",
|
||||
"stylelint-gamut": "^1.3.4",
|
||||
"stylelint-no-unresolved-module": "^2.4.0",
|
||||
"stylelint-no-unsupported-browser-features": "^8.0.4",
|
||||
"stylelint-plugin-logical-css": "^1.2.3",
|
||||
"stylelint-value-no-unknown-custom-properties": "^6.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@arethetypeswrong/core": "^0.18.2",
|
||||
"@gcch/configuration-eslint": "^0.0.3",
|
||||
"@gcch/configuration-prettier": "^0.0.6",
|
||||
"eslint": "^9.36.0",
|
||||
"prettier": "^4.0.0-alpha.12",
|
||||
"publint": "^0.3.13",
|
||||
"tsdown": "latest",
|
||||
"unplugin-unused": "^0.5.3"
|
||||
},
|
||||
"browserslist": [
|
||||
"baseline widely available"
|
||||
]
|
||||
}
|
||||
5
prettier.config.js
Normal file
5
prettier.config.js
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
import { configClassique } from "@gcch/configuration-prettier";
|
||||
|
||||
export default {
|
||||
...configClassique,
|
||||
};
|
||||
5
stylelint.config.ts
Normal file
5
stylelint.config.ts
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
import { configCss } from ".";
|
||||
|
||||
export default {
|
||||
...configCss,
|
||||
};
|
||||
51
tsconfig.json
Normal file
51
tsconfig.json
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"allowArbitraryExtensions": true,
|
||||
"allowImportingTsExtensions": true,
|
||||
"allowJs": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"allowUnreachableCode": false,
|
||||
"allowUnusedLabels": false,
|
||||
"alwaysStrict": true,
|
||||
"checkJs": true,
|
||||
"downlevelIteration": false,
|
||||
"erasableSyntaxOnly": true,
|
||||
"esModuleInterop": true,
|
||||
"exactOptionalPropertyTypes": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"isolatedModules": true,
|
||||
"lib": ["ESNext"],
|
||||
"module": "ESNext",
|
||||
"moduleDetection": "force",
|
||||
"moduleResolution": "Bundler",
|
||||
"noEmit": true,
|
||||
"noErrorTruncation": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"noImplicitAny": true,
|
||||
"noImplicitOverride": true,
|
||||
"noImplicitReturns": true,
|
||||
"noImplicitThis": true,
|
||||
"noPropertyAccessFromIndexSignature": true,
|
||||
"noStrictGenericChecks": false,
|
||||
"noUncheckedIndexedAccess": true,
|
||||
"noUncheckedSideEffectImports": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"skipLibCheck": false,
|
||||
"strict": true,
|
||||
"strictBindCallApply": true,
|
||||
"strictBuiltinIteratorReturn": true,
|
||||
"strictFunctionTypes": true,
|
||||
"strictNullChecks": true,
|
||||
"strictPropertyInitialization": true,
|
||||
"suppressExcessPropertyErrors": false,
|
||||
"suppressImplicitAnyIndexErrors": false,
|
||||
"target": "ESNext",
|
||||
"types": ["node"],
|
||||
"useDefineForClassFields": true,
|
||||
"useUnknownInCatchVariables": true,
|
||||
"verbatimModuleSyntax": true
|
||||
},
|
||||
"exclude": ["dist"],
|
||||
"include": ["**/*.js", "**/*.ts", "stylelint.config.ts"]
|
||||
}
|
||||
12
tsdown.config.ts
Normal file
12
tsdown.config.ts
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
import { defineConfig } from "tsdown";
|
||||
|
||||
export default defineConfig({
|
||||
clean: true,
|
||||
dts: { oxc: true, parallel: true },
|
||||
entry: ["./index.ts"],
|
||||
minify: true,
|
||||
platform: "node",
|
||||
sourcemap: false,
|
||||
target: "esnext",
|
||||
treeshake: true,
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue