knip 1.0.0-beta.1 → 1.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -99,8 +99,8 @@ export default class ConfigurationChief {
99
99
  }
100
100
  else {
101
101
  const isObject = typeof pluginConfig !== 'string' && !Array.isArray(pluginConfig);
102
- const config = isObject ? arrayify(pluginConfig.config) : arrayify(pluginConfig);
103
- const entry = isObject && 'entry' in pluginConfig ? arrayify(pluginConfig.entry) : [];
102
+ const config = typeof pluginConfig === 'string' ? [pluginConfig] : isObject ? arrayify(pluginConfig.config) : null;
103
+ const entry = isObject && 'entry' in pluginConfig ? arrayify(pluginConfig.entry) : null;
104
104
  const project = isObject && 'project' in pluginConfig ? arrayify(pluginConfig.project) : entry;
105
105
  workspaces[workspaceName][pluginName] = {
106
106
  config,
@@ -1,4 +1,5 @@
1
1
  import type { IsPluginEnabledCallback, GenericPluginCallback } from '../../types/plugins.js';
2
2
  export declare const isEnabled: IsPluginEnabledCallback;
3
3
  export declare const CONFIG_FILE_PATTERNS: string[];
4
+ export declare const ENTRY_FILE_PATTERNS: string[];
4
5
  export declare const findDependencies: GenericPluginCallback;
@@ -3,12 +3,15 @@ import { getPackageName } from '../../util/modules.js';
3
3
  import { timerify } from '../../util/performance.js';
4
4
  export const isEnabled = ({ dependencies }) => dependencies.has('postcss');
5
5
  export const CONFIG_FILE_PATTERNS = ['postcss.config.js', 'package.json'];
6
+ export const ENTRY_FILE_PATTERNS = ['postcss.config.js'];
6
7
  const findPostCSSDependencies = async (configFilePath, { manifest }) => {
7
8
  const config = configFilePath.endsWith('package.json')
8
9
  ? manifest?.postcss
9
10
  : await _load(configFilePath);
10
11
  return config?.plugins
11
- ? (Array.isArray(config.plugins) ? config.plugins : Object.keys(config.plugins)).map(getPackageName)
12
+ ? (Array.isArray(config.plugins) ? config.plugins : Object.keys(config.plugins))
13
+ .filter(plugin => typeof plugin === 'string')
14
+ .map(getPackageName)
12
15
  : [];
13
16
  };
14
17
  export const findDependencies = timerify(findPostCSSDependencies);
@@ -1,8 +1,8 @@
1
1
  type NormalizedGlob = string[];
2
2
  export type PluginConfiguration = {
3
- config: NormalizedGlob;
4
- entry: NormalizedGlob;
5
- project: NormalizedGlob;
3
+ config: NormalizedGlob | null;
4
+ entry: NormalizedGlob | null;
5
+ project: NormalizedGlob | null;
6
6
  } | false;
7
7
  interface PluginsConfiguration {
8
8
  babel: PluginConfiguration;
@@ -37,7 +37,7 @@ export default class WorkspaceWorker {
37
37
  this.enabled = Object.keys(plugins).reduce((enabled, pluginName) => ({ ...enabled, [pluginName]: false }), {});
38
38
  }
39
39
  getConfigForPlugin(pluginName) {
40
- return this.config[pluginName] ?? { config: [], entry: [], project: [] };
40
+ return this.config[pluginName] ?? { config: null, entry: null, project: null };
41
41
  }
42
42
  async init() {
43
43
  this.setEnabledPlugins();
@@ -101,7 +101,7 @@ export default class WorkspaceWorker {
101
101
  if (this.enabled[pluginName] && pluginConfig) {
102
102
  const { entry } = pluginConfig;
103
103
  const defaultEntryFiles = 'ENTRY_FILE_PATTERNS' in plugin ? plugin.ENTRY_FILE_PATTERNS : [];
104
- patterns.push(...(entry.length > 0 ? entry : defaultEntryFiles));
104
+ patterns.push(...(entry ?? defaultEntryFiles));
105
105
  if (isIncludeProductionEntryFiles) {
106
106
  const entry = 'PRODUCTION_ENTRY_FILE_PATTERNS' in plugin ? plugin.PRODUCTION_ENTRY_FILE_PATTERNS : [];
107
107
  patterns.push(...entry);
@@ -116,15 +116,13 @@ export default class WorkspaceWorker {
116
116
  const pluginConfig = this.getConfigForPlugin(pluginName);
117
117
  if (this.enabled[pluginName] && pluginConfig) {
118
118
  const { entry, project } = pluginConfig;
119
- const defaultEntryFiles = 'ENTRY_FILE_PATTERNS' in plugin ? plugin.ENTRY_FILE_PATTERNS : [];
120
- const defaultProjectFiles = 'PROJECT_FILE_PATTERNS' in plugin ? plugin.PROJECT_FILE_PATTERNS : defaultEntryFiles;
121
- patterns.push(...(project.length > 0
122
- ? project
123
- : defaultProjectFiles.length > 0
124
- ? defaultProjectFiles
125
- : entry.length > 0
126
- ? entry
127
- : defaultEntryFiles));
119
+ patterns.push(...(project ??
120
+ entry ??
121
+ ('PROJECT_FILE_PATTERNS' in plugin
122
+ ? plugin.PROJECT_FILE_PATTERNS
123
+ : 'ENTRY_FILE_PATTERNS' in plugin
124
+ ? plugin.ENTRY_FILE_PATTERNS
125
+ : [])));
128
126
  }
129
127
  }
130
128
  return [patterns, this.isRoot ? this.negatedWorkspacePatterns : []].flat();
@@ -136,7 +134,7 @@ export default class WorkspaceWorker {
136
134
  if (this.enabled[pluginName] && pluginConfig) {
137
135
  const { config } = pluginConfig;
138
136
  const defaultConfigFiles = 'CONFIG_FILE_PATTERNS' in plugin ? plugin.CONFIG_FILE_PATTERNS : [];
139
- patterns.push(...(config.length > 0 ? config : defaultConfigFiles));
137
+ patterns.push(...(config ?? defaultConfigFiles));
140
138
  }
141
139
  }
142
140
  return patterns;
@@ -177,9 +175,7 @@ export default class WorkspaceWorker {
177
175
  const pluginConfig = this.getConfigForPlugin(pluginName);
178
176
  if (this.enabled[pluginName] && pluginConfig) {
179
177
  if ('PRODUCTION_ENTRY_FILE_PATTERNS' in plugin) {
180
- const { entry } = pluginConfig;
181
- const defaultEntryFiles = plugin.PRODUCTION_ENTRY_FILE_PATTERNS;
182
- patterns.push(...(entry.length > 0 ? entry : defaultEntryFiles));
178
+ patterns.push(...(pluginConfig.entry ?? plugin.PRODUCTION_ENTRY_FILE_PATTERNS));
183
179
  }
184
180
  }
185
181
  }
@@ -191,9 +187,8 @@ export default class WorkspaceWorker {
191
187
  const plugin = plugins[pluginName];
192
188
  const pluginConfig = this.getConfigForPlugin(pluginName);
193
189
  if (pluginConfig) {
194
- const { config } = pluginConfig;
195
190
  const defaultConfig = 'CONFIG_FILE_PATTERNS' in plugin ? plugin.CONFIG_FILE_PATTERNS : [];
196
- return config.length > 0 ? config : defaultConfig;
191
+ return pluginConfig.config ?? defaultConfig;
197
192
  }
198
193
  return [];
199
194
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "knip",
3
- "version": "1.0.0-beta.1",
3
+ "version": "1.0.0-beta.2",
4
4
  "description": "Find unused files, dependencies and exports in your TypeScript and JavaScript project",
5
5
  "keywords": [
6
6
  "find",