mirror of https://github.com/go-gitea/gitea.git
Add linter for package-lock.json `resolved`
This commit is contained in:
parent
993736d838
commit
04695bc990
8
Makefile
8
Makefile
|
@ -360,10 +360,10 @@ lint: lint-frontend lint-backend lint-spell
|
|||
lint-fix: lint-frontend-fix lint-backend-fix lint-spell-fix
|
||||
|
||||
.PHONY: lint-frontend
|
||||
lint-frontend: lint-js lint-css
|
||||
lint-frontend: lint-js lint-css lint-js-misc
|
||||
|
||||
.PHONY: lint-frontend-fix
|
||||
lint-frontend-fix: lint-js-fix lint-css-fix
|
||||
lint-frontend-fix: lint-js-fix lint-css-fix lint-js-misc
|
||||
|
||||
.PHONY: lint-backend
|
||||
lint-backend: lint-go lint-go-vet lint-editorconfig
|
||||
|
@ -379,6 +379,10 @@ lint-js: node_modules
|
|||
lint-js-fix: node_modules
|
||||
npx eslint --color --max-warnings=0 --ext js,vue $(ESLINT_FILES) --fix
|
||||
|
||||
.PHONY: lint-js-misc
|
||||
lint-js-misc: node_modules
|
||||
node tools/lint-lockfiles.js
|
||||
|
||||
.PHONY: lint-css
|
||||
lint-css: node_modules
|
||||
npx stylelint --color --max-warnings=0 $(STYLELINT_FILES)
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
#!/usr/bin/env node
|
||||
import {readFileSync} from 'node:fs';
|
||||
import {exit} from 'node:process';
|
||||
import {relative} from 'node:path';
|
||||
import {fileURLToPath} from 'node:url';
|
||||
|
||||
const files = [
|
||||
'../package-lock.json',
|
||||
'../web_src/fomantic/package-lock.json',
|
||||
];
|
||||
|
||||
const rootPath = fileURLToPath(new URL('..', import.meta.url));
|
||||
let hadErrors = false;
|
||||
|
||||
for (const file of files.map((file) => fileURLToPath(new URL(file, import.meta.url)))) {
|
||||
const data = JSON.parse(readFileSync(file));
|
||||
for (const [pkg, {resolved}] of Object.entries(data.packages)) {
|
||||
if (resolved && !resolved.startsWith('https://registry.npmjs.org/')) {
|
||||
console.info(`${relative(rootPath, file)}: Expected "resolved" on package ${pkg} to start with "https://registry.npmjs.org/"`);
|
||||
hadErrors = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
exit(hadErrors ? 1 : 0);
|
|
@ -17,7 +17,7 @@ for (const file of fastGlob.sync(fileURLToPath(new URL('../templates/**/*.tmpl',
|
|||
const content = readFileSync(file, 'utf8');
|
||||
for (const [_, name] of content.matchAll(/svg ["'`]([^"'`]+)["'`]/g)) {
|
||||
if (!knownSvgs.has(name)) {
|
||||
console.info(`SVG "${name}" not found, used in ${relative(rootPath, file)}`);
|
||||
console.info(`${relative(rootPath, file)}: SVG "${name}" not found`);
|
||||
hadErrors = true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue