Skip to content

Commit

Permalink
Add .ts extension to ava plugin entry file patterns, config can be a …
Browse files Browse the repository at this point in the history
…function
  • Loading branch information
webpro committed Oct 8, 2023
1 parent 28b723d commit 436a473
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 19 deletions.
16 changes: 8 additions & 8 deletions src/plugins/ava/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ or `devDependencies`:
"ava": {
"config": ["ava.config.{js,cjs,mjs}", "package.json"],
"entry": [
"test.{js,cjs,mjs}",
"{src,source}/test.{js,cjs,mjs}",
"**/__tests__/**/*.{js,cjs,mjs}",
"**/*.spec.{js,cjs,mjs}",
"**/*.test.{js,cjs,mjs}",
"**/test-*.{js,cjs,mjs}",
"**/test/**/*.{js,cjs,mjs}",
"**/tests/**/*.{js,cjs,mjs}",
"test.{js,cjs,mjs,ts}",
"{src,source}/test.{js,cjs,mjs,ts}",
"**/__tests__/**/*.{js,cjs,mjs,ts}",
"**/*.spec.{js,cjs,mjs,ts}",
"**/*.test.{js,cjs,mjs,ts}",
"**/test-*.{js,cjs,mjs,ts}",
"**/test/**/*.{js,cjs,mjs,ts}",
"**/tests/**/*.{js,cjs,mjs,ts}",
"!**/__tests__/**/__{helper,fixture}?(s)__/**/*",
"!**/test?(s)/**/{helper,fixture}?(s)/**/*"
]
Expand Down
22 changes: 12 additions & 10 deletions src/plugins/ava/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { _getDependenciesFromScripts } from '../../binaries/index.js';
import { timerify } from '../../util/Performance.js';
import { hasDependency, load } from '../../util/plugin.js';
import { toEntryPattern } from '../../util/protocols.js';
import type { PluginConfig } from './types.js';
import type { AvaConfig } from './types.js';
import type { IsPluginEnabledCallback, GenericPluginCallback } from '../../types/plugins.js';

// https://github.com/avajs/ava/blob/main/docs/06-configuration.md
Expand All @@ -18,20 +18,22 @@ export const CONFIG_FILE_PATTERNS = ['ava.config.{js,cjs,mjs}', 'package.json'];

/** @public */
export const ENTRY_FILE_PATTERNS = [
`test.{js,cjs,mjs}`,
`{src,source}/test.{js,cjs,mjs}`,
`**/__tests__/**/*.{js,cjs,mjs}`,
`**/*.spec.{js,cjs,mjs}`,
`**/*.test.{js,cjs,mjs}`,
`**/test-*.{js,cjs,mjs}`,
`**/test/**/*.{js,cjs,mjs}`,
`**/tests/**/*.{js,cjs,mjs}`,
`test.{js,cjs,mjs,ts}`,
`{src,source}/test.{js,cjs,mjs,ts}`,
`**/__tests__/**/*.{js,cjs,mjs,ts}`,
`**/*.spec.{js,cjs,mjs,ts}`,
`**/*.test.{js,cjs,mjs,ts}`,
`**/test-*.{js,cjs,mjs,ts}`,
`**/test/**/*.{js,cjs,mjs,ts}`,
`**/tests/**/*.{js,cjs,mjs,ts}`,
'!**/__tests__/**/__{helper,fixture}?(s)__/**/*',
'!**/test?(s)/**/{helper,fixture}?(s)/**/*',
];

const findAvaDependencies: GenericPluginCallback = async (configFilePath, { cwd, manifest, isProduction }) => {
const config: PluginConfig = configFilePath.endsWith('package.json') ? manifest.ava : await load(configFilePath);
let config: AvaConfig = configFilePath.endsWith('package.json') ? manifest.ava : await load(configFilePath);

if (typeof config === 'function') config = config();

const entryPatterns = (config?.files ?? ENTRY_FILE_PATTERNS).map(toEntryPattern);
if (isProduction) return entryPatterns;
Expand Down
5 changes: 4 additions & 1 deletion src/plugins/ava/types.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
export type PluginConfig = {
type Config = {
files?: string[];
require?: string[];
nodeArguments?: string[];
extensions?: string[];
};

export type AvaConfig = Config | (() => Config);

0 comments on commit 436a473

Please sign in to comment.