Skip to content

Commit

Permalink
feat(betterer ✨): remove old exported test functions (#223)
Browse files Browse the repository at this point in the history
Removes the `eslintBetterer` function from @betterer/eslint
Removes the `regexpBetterer` function from @betterer/regexp
Removes the `tsqueryBetterer` function from @betterer/tsquery
Removes the `typescriptBetterer` function from @betterer/typescript

BREAKING CHANGE: Changes to the public API
  • Loading branch information
phenomnomnominal authored Aug 18, 2020
1 parent 0f1724f commit 2d29b25
Show file tree
Hide file tree
Showing 16 changed files with 6 additions and 1,096 deletions.
6 changes: 0 additions & 6 deletions packages/eslint/src/errors.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
import { registerError } from '@betterer/errors';

export const FILE_GLOB_REQUIRED = registerError(
() => "For `@betterer/eslint` to work, you need to provide a file glob, e.g. `'./src/**/*'`. ❌"
);
export const RULE_OPTIONS_REQUIRED = registerError(
() => "For `@betterer/eslint` to work, you need to provide rule options, e.g. `['no-debugger', 'error']`. ❌"
);
export const RULES_OPTIONS_REQUIRED = registerError(
() => "For `@betterer/eslint` to work, you need to provide rule options, e.g. `{ 'no-debugger': 'error' }`. ❌"
);
29 changes: 2 additions & 27 deletions packages/eslint/src/eslint.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,41 +8,16 @@ import {
import { Linter, ESLint } from 'eslint';
import LinesAndColumns from 'lines-and-columns';

import { FILE_GLOB_REQUIRED, RULE_OPTIONS_REQUIRED, RULES_OPTIONS_REQUIRED } from './errors';
import { RULES_OPTIONS_REQUIRED } from './errors';

type ESLintRuleConfig = [string, Linter.RuleLevel | Linter.RuleLevelAndOptions];
type ESLintRulesConfig = Record<string, Linter.RuleLevel | Linter.RuleLevelAndOptions>;

export function eslint(rules: ESLintRulesConfig): BettererFileTest {
if (!rules) {
throw RULES_OPTIONS_REQUIRED();
}

return createEslintTest(rules);
}

/**
* @deprecated Use {@link @betterer/eslint:eslint} instead!
*/
export function eslintBetterer(globs: string | ReadonlyArray<string>, rule: ESLintRuleConfig): BettererFileTest {
if (!globs) {
throw FILE_GLOB_REQUIRED();
}
if (!rule) {
throw RULE_OPTIONS_REQUIRED();
}

const [ruleName, ruleOptions] = rule;
const test = createEslintTest({ [ruleName]: ruleOptions });
test.include(globs);
return test;
}

// We need an extra function so that `new BettererFileResolver()` is called
// from the same depth in the call stack. This is gross, but it can go away
// once we remove `eslintBetterer`:
function createEslintTest(rules: ESLintRulesConfig): BettererFileTest {
const resolver = new BettererFileResolver(3);
const resolver = new BettererFileResolver();
return new BettererFileTest(resolver, async (files) => {
const { cwd } = resolver;
const cli = new ESLint({ cwd });
Expand Down
2 changes: 1 addition & 1 deletion packages/eslint/src/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export { eslintBetterer, eslint } from './eslint';
export { eslint } from './eslint';
3 changes: 0 additions & 3 deletions packages/regexp/src/errors.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
import { registerError } from '@betterer/errors';

export const FILE_GLOB_REQUIRED = registerError(
() => "For `@betterer/regexp` to work, you need to provide a file glob, e.g. `'./src/**/*'`. ❌"
);
export const REGEXP_REQUIRED = registerError(
() => 'For `@betterer/regexp` to work, you need to provide a RegExp, e.g. `/^foo$/`. ❌'
);
2 changes: 1 addition & 1 deletion packages/regexp/src/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export { regexpBetterer, regexp } from './regexp';
export { regexp } from './regexp';
27 changes: 2 additions & 25 deletions packages/regexp/src/regexp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,37 +6,14 @@ import {
} from '@betterer/betterer';
import { promises as fs } from 'fs';

import { FILE_GLOB_REQUIRED, REGEXP_REQUIRED } from './errors';
import { REGEXP_REQUIRED } from './errors';

export function regexp(pattern: RegExp): BettererFileTest {
if (!pattern) {
throw REGEXP_REQUIRED();
}

return createRegExpTest(pattern);
}

/**
* @deprecated Use {@link @betterer/regexp:regexp} instead!
*/
export function regexpBetterer(globs: string | ReadonlyArray<string>, pattern: RegExp): BettererFileTest {
if (!globs) {
throw FILE_GLOB_REQUIRED();
}
if (!pattern) {
throw REGEXP_REQUIRED();
}

const test = createRegExpTest(pattern);
test.include(globs);
return test;
}

// We need an extra function so that `new BettererFileResolver()` is called
// from the same depth in the call stack. This is gross, but it can go away
// once we remove `regexpBetterer`:
function createRegExpTest(pattern: RegExp): BettererFileTest {
const resolver = new BettererFileResolver(3);
const resolver = new BettererFileResolver();
return new BettererFileTest(resolver, async (files) => {
pattern = new RegExp(pattern.source, pattern.flags.includes('g') ? pattern.flags : `${pattern.flags}g`);
const matches = await Promise.all(
Expand Down
6 changes: 0 additions & 6 deletions packages/tsquery/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1 @@
export { tsquery } from './tsquery';
import { tsquery } from './tsquery';

/**
* @deprecated Use {@link @betterer/tsquery:tsquery} instead!
*/
export const tsqueryBetterer = tsquery;
6 changes: 0 additions & 6 deletions packages/typescript/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1 @@
export { typescript } from './typescript';
import { typescript } from './typescript';

/**
* @deprecated Use {@link @betterer/typescript:typescript} instead!
*/
export const typescriptBetterer = typescript;
143 changes: 0 additions & 143 deletions test/__snapshots__/betterer-eslint.spec.ts.snap
Original file line number Diff line number Diff line change
@@ -1,148 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`betterer eslintBetterer (deprecated) should report the status of a new eslint rule 1`] = `
"// BETTERER RESULTS V2.
exports[\`eslint enable new rule\`] = {
value: \`{
\\"src/index.ts:3201740415\\": [
[0, 0, 9, \\"Unexpected \\\\'debugger\\\\' statement.\\", \\"3201740415\\"]
]
}\`
};
"
`;
exports[`betterer eslintBetterer (deprecated) should report the status of a new eslint rule 2`] = `
Array [
"
/ | / _ _ _
'-.ooo.-' | |__ ___| |_| |_ ___ _ __ ___ _ __
---ooooo--- | '_ / / _ / __| __/ _ / '__/ _ / '__|
.-'ooo'-. | |_) | __/ |_| || __/ | | __/ |
/ | / |_.__/ /___|/__|/__/___|_| /___|_|
",
" ☀️ betterer info 💬 - ",
"running \\"eslint enable new rule\\"!",
" ☀️ betterer succ ✅ - ",
"\\"eslint enable new rule\\" got checked for the first time! 🎉",
" ☀️ betterer info 💬 - ",
"1 test got checked. 🤔",
" ☀️ betterer info 💬 - ",
"1 test got checked for the first time! 🎉",
"
/ | / _ _ _
'-.ooo.-' | |__ ___| |_| |_ ___ _ __ ___ _ __
---ooooo--- | '_ / / _ / __| __/ _ / '__/ _ / '__|
.-'ooo'-. | |_) | __/ |_| || __/ | | __/ |
/ | / |_.__/ /___|/__|/__/___|_| /___|_|
",
" ☀️ betterer info 💬 - ",
"running \\"eslint enable new rule\\"!",
" ☀️ betterer warn 🚨 - ",
"\\"eslint enable new rule\\" stayed the same. 😐",
" ☀️ betterer info 💬 - ",
"1 test got checked. 🤔",
" ☀️ betterer warn 🚨 - ",
"1 test stayed the same. 😐",
"
/ | / _ _ _
'-.ooo.-' | |__ ___| |_| |_ ___ _ __ ___ _ __
---ooooo--- | '_ / / _ / __| __/ _ / '__/ _ / '__|
.-'ooo'-. | |_) | __/ |_| || __/ | | __/ |
/ | / |_.__/ /___|/__|/__/___|_| /___|_|
",
" ☀️ betterer info 💬 - ",
"running \\"eslint enable new rule\\"!",
" ☀️ betterer erro 🔥 - ",
"\\"eslint enable new rule\\" got worse. 😔",
"",
" ☀️ betterer warn 🚨 - ",
"1 existing issue in \\"src/index.ts\\".",
" ☀️ betterer erro 🔥 - ",
"1 new issue in \\"src/index.ts\\":",
"
Unexpected 'debugger' statement.
1 | debugger;
> 2 | debugger;
| ^^^^^^^^^",
"",
"",
" ☀️ betterer info 💬 - ",
"1 test got checked. 🤔",
" ☀️ betterer erro 🔥 - ",
"1 test got worse. 😔",
" ☀️ betterer erro 🔥 - ",
"Run \`betterer --update\` to force an update of the results file. 🆙",
"
/ | / _ _ _
'-.ooo.-' | |__ ___| |_| |_ ___ _ __ ___ _ __
---ooooo--- | '_ / / _ / __| __/ _ / '__/ _ / '__|
.-'ooo'-. | |_) | __/ |_| || __/ | | __/ |
/ | / |_.__/ /___|/__|/__/___|_| /___|_|
",
" ☀️ betterer info 💬 - ",
"running \\"eslint enable new rule\\"!",
" ☀️ betterer succ ✅ - ",
"\\"eslint enable new rule\\" met its goal! 🎉",
" ☀️ betterer info 💬 - ",
"1 test got checked. 🤔",
" ☀️ betterer succ ✅ - ",
"1 test got better! 😍",
" ☀️ betterer succ ✅ - ",
"\\"eslint enable new rule\\" met its goal! 🎉",
"
/ | / _ _ _
'-.ooo.-' | |__ ___| |_| |_ ___ _ __ ___ _ __
---ooooo--- | '_ / / _ / __| __/ _ / '__/ _ / '__|
.-'ooo'-. | |_) | __/ |_| || __/ | | __/ |
/ | / |_.__/ /___|/__|/__/___|_| /___|_|
",
" ☀️ betterer info 💬 - ",
"running \\"eslint enable new rule\\"!",
" ☀️ betterer succ ✅ - ",
"\\"eslint enable new rule\\" has already met its goal! ✨",
" ☀️ betterer info 💬 - ",
"1 test got checked. 🤔",
" ☀️ betterer info 💬 - ",
"1 test got checked for the first time! 🎉",
" ☀️ betterer succ ✅ - ",
"\\"eslint enable new rule\\" met its goal! 🎉",
]
`;
exports[`betterer eslintBetterer (deprecated) should throw if there is no globs 1`] = `
Array [
"
/ | / _ _ _
'-.ooo.-' | |__ ___| |_| |_ ___ _ __ ___ _ __
---ooooo--- | '_ / / _ / __| __/ _ / '__/ _ / '__|
.-'ooo'-. | |_) | __/ |_| || __/ | | __/ |
/ | / |_.__/ /___|/__|/__/___|_| /___|_|
",
" ☀️ betterer erro 🔥 - ",
"could not read config from \\"<project>/fixtures/test-betterer-eslint-no-globs-deprecated/.betterer\\". 😔",
" ☀️ betterer erro 🔥 - ",
"For \`@betterer/eslint\` to work, you need to provide a file glob, e.g. \`'./src/**/*'\`. ❌",
]
`;
exports[`betterer eslintBetterer (deprecated) should throw if there is no rule 1`] = `
Array [
"
/ | / _ _ _
'-.ooo.-' | |__ ___| |_| |_ ___ _ __ ___ _ __
---ooooo--- | '_ / / _ / __| __/ _ / '__/ _ / '__|
.-'ooo'-. | |_) | __/ |_| || __/ | | __/ |
/ | / |_.__/ /___|/__|/__/___|_| /___|_|
",
" ☀️ betterer erro 🔥 - ",
"could not read config from \\"<project>/fixtures/test-betterer-eslint-no-rule-deprecated/.betterer\\". 😔",
" ☀️ betterer erro 🔥 - ",
"For \`@betterer/eslint\` to work, you need to provide rule options, e.g. \`['no-debugger', 'error']\`. ❌",
]
`;
exports[`betterer should report the status of a new eslint rule 1`] = `
"// BETTERER RESULTS V2.
exports[\`eslint enable new rule\`] = {
Expand Down
Loading

0 comments on commit 2d29b25

Please sign in to comment.