mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2026-05-18 21:59:06 +01:00
124 lines
3.4 KiB
JavaScript
124 lines
3.4 KiB
JavaScript
// Copyright 2026 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
// @ts-check
|
|
|
|
const PROD_ONLY =
|
|
process.argv.includes('--production') || process.argv.includes('--strict');
|
|
|
|
/** @type {import('knip').KnipConfig} */
|
|
const config = {
|
|
tags: ['-@knipignore', ...(PROD_ONLY ? ['-@testexport'] : [])],
|
|
treatConfigHintsAsErrors: true,
|
|
ignoreExportsUsedInFile: PROD_ONLY
|
|
? true
|
|
: {
|
|
type: true,
|
|
interface: true,
|
|
enum: true,
|
|
member: true,
|
|
},
|
|
exclude: ['types'],
|
|
ignoreIssues: {
|
|
'ts/axo/**/*.{ts,tsx}': ['namespaceMembers'],
|
|
},
|
|
workspaces: {
|
|
'.': {
|
|
entry: [
|
|
// Main
|
|
'app/config.main.ts!',
|
|
// Preload
|
|
'ts/windows/about/preload.preload.ts!',
|
|
'ts/windows/calldiagnostic/preload.preload.ts!',
|
|
'ts/windows/debuglog/preload.preload.ts!',
|
|
'ts/windows/loading/preload.preload.ts!',
|
|
'ts/windows/permissions/preload.preload.ts!',
|
|
'ts/windows/screenShare/preload.preload.ts!',
|
|
'ts/windows/sticker-creator/preload.preload.ts!',
|
|
// DOM
|
|
'ts/windows/about/app.dom.tsx!',
|
|
'ts/windows/calldiagnostic/app.dom.tsx!',
|
|
'ts/windows/debuglog/app.dom.tsx!',
|
|
'ts/windows/loading/start.dom.ts!',
|
|
'ts/windows/permissions/app.dom.tsx!',
|
|
'ts/windows/screenShare/app.dom.tsx!',
|
|
// Others
|
|
'codemods/**/*.mjs',
|
|
'scripts/**/*.mjs',
|
|
],
|
|
project: [
|
|
// Production
|
|
'ts/**/*.{ts,tsx}!',
|
|
'!ts/**/*.stories.{ts,tsx}!',
|
|
'!ts/storybook/**/*.{ts,tsx}!',
|
|
'!ts/test-electron/**/*.{ts,tsx}!',
|
|
'!ts/test-helpers/**/*.{ts,tsx}!',
|
|
'!ts/test-mock/**/*.{ts,tsx}!',
|
|
'!ts/test-node/**/*.{ts,tsx}!',
|
|
'!ts/util/lint/**/*.{ts,tsx}!',
|
|
'app/**/*.{ts,tsx}!',
|
|
|
|
// Development
|
|
'ts/**/*.d.ts',
|
|
'ts/util/lint/**/*.{ts,tsx}',
|
|
'test/**/*.mjs',
|
|
'scripts/**/*.mjs',
|
|
'codemods/**/*.mjs',
|
|
|
|
// exclude workspaces
|
|
'!danger/**/*.mjs',
|
|
],
|
|
ignoreDependencies: [
|
|
'buffer', // same name as builtin
|
|
'url', // same name as builtin
|
|
'danger', // turn into real workspace
|
|
],
|
|
ignoreFiles: [
|
|
'ts/components/Profiler.dom.tsx',
|
|
...(PROD_ONLY ? ['ts/axo/AxoAvatar.dom.tsx'] : []),
|
|
],
|
|
ignoreBinaries: PROD_ONLY ? ['electron'] : [],
|
|
storybook: {
|
|
entry: [
|
|
'.storybook/main.ts',
|
|
'.storybook/preview.tsx',
|
|
'.storybook/test-runner.ts',
|
|
'ts/**/*.stories.{ts,tsx}',
|
|
],
|
|
},
|
|
mocha: {
|
|
entry: [
|
|
'.mocharc.json',
|
|
'ts/test-electron/**/*.{ts,tsx}',
|
|
'ts/test-helpers/**/*.{ts,tsx}',
|
|
'ts/test-mock/**/*.{ts,tsx}',
|
|
'ts/test-node/**/*.{ts,tsx}',
|
|
],
|
|
},
|
|
oxlint: {
|
|
entry: ['.oxlintrc.json', '.oxlint/plugins.mjs'],
|
|
project: ['.oxlint/rules/**/*.mjs'],
|
|
},
|
|
danger: {
|
|
entry: ['dangerfile.mjs'],
|
|
project: ['danger/**/*.mjs'],
|
|
},
|
|
},
|
|
danger: {
|
|
project: ['danger-exports.mjs', 'rules/**/*.mjs'],
|
|
},
|
|
'packages/mute-state-change': {
|
|
ignoreBinaries: ['xcrun'],
|
|
ignoreDependencies: ['node-addon-api'],
|
|
},
|
|
'sticker-creator': {
|
|
project: [
|
|
'src/**/*.{ts,tsx}!',
|
|
'src/util/protos.js!',
|
|
'!src/**/*.test.{ts,tsx}!',
|
|
],
|
|
},
|
|
},
|
|
};
|
|
|
|
export default config;
|