diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..d18c893 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "[javascript]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[typescript]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[json]": { + "editor.defaultFormatter": "biomejs.biome" + } +} diff --git a/biome.json b/biome.json index a4a8d16..feaa7c4 100644 --- a/biome.json +++ b/biome.json @@ -1,14 +1,17 @@ { - "$schema": "https://biomejs.dev/schemas/1.8.3/schema.json", - "organizeImports": { - "enabled": true - }, - "files": { - "ignore": ["node_modules/*", "test/fixtures/*", "types/*"] - }, - "javascript": { - "formatter": { - "quoteStyle": "single" - } - } + "$schema": "https://biomejs.dev/schemas/1.8.3/schema.json", + "organizeImports": { + "enabled": true + }, + "files": { + "ignore": ["node_modules/*", "test/fixtures/*", "types/*"] + }, + "javascript": { + "formatter": { + "quoteStyle": "single" + }, + "linter": { + "enabled": false + } + } } diff --git a/codemods/abort-controller/index.js b/codemods/abort-controller/index.js index c9ce2f9..abc5b9a 100644 --- a/codemods/abort-controller/index.js +++ b/codemods/abort-controller/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'abort-controller', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array-buffer-byte-length/index.js b/codemods/array-buffer-byte-length/index.js index 4fd9348..d7af1a8 100644 --- a/codemods/array-buffer-byte-length/index.js +++ b/codemods/array-buffer-byte-length/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array-buffer-byte-length', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array-every/index.js b/codemods/array-every/index.js index 1473e01..78ccc58 100644 --- a/codemods/array-every/index.js +++ b/codemods/array-every/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array-every', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array-includes/index.js b/codemods/array-includes/index.js index 64ce3d1..d372e7f 100644 --- a/codemods/array-includes/index.js +++ b/codemods/array-includes/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array-includes', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/array-map/index.js b/codemods/array-map/index.js index 4c434ba..3c934f7 100644 --- a/codemods/array-map/index.js +++ b/codemods/array-map/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array-map', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.from/index.js b/codemods/array.from/index.js index 68705ce..210c1d6 100644 --- a/codemods/array.from/index.js +++ b/codemods/array.from/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.from', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/array.of/index.js b/codemods/array.of/index.js index 96a2b3a..256f7f3 100644 --- a/codemods/array.of/index.js +++ b/codemods/array.of/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.of', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/array.prototype.at/index.js b/codemods/array.prototype.at/index.js index 1350a52..b957ae7 100644 --- a/codemods/array.prototype.at/index.js +++ b/codemods/array.prototype.at/index.js @@ -1,10 +1,7 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** * @NOTE @@ -14,14 +11,13 @@ import { transformArrayMethod } from '../shared.js'; * We don't support that for now, but the most common usage seems to be similar * to the native usage * - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.at', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.concat/index.js b/codemods/array.prototype.concat/index.js index 53ef292..720536a 100644 --- a/codemods/array.prototype.concat/index.js +++ b/codemods/array.prototype.concat/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.concat', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.copywithin/index.js b/codemods/array.prototype.copywithin/index.js index d8baca8..fab0a16 100644 --- a/codemods/array.prototype.copywithin/index.js +++ b/codemods/array.prototype.copywithin/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.copywithin', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.entries/index.js b/codemods/array.prototype.entries/index.js index 27272de..9454cf1 100644 --- a/codemods/array.prototype.entries/index.js +++ b/codemods/array.prototype.entries/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.entries', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/array.prototype.every/index.js b/codemods/array.prototype.every/index.js index 3126970..17be155 100644 --- a/codemods/array.prototype.every/index.js +++ b/codemods/array.prototype.every/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.every', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.filter/index.js b/codemods/array.prototype.filter/index.js index 900d965..d093151 100644 --- a/codemods/array.prototype.filter/index.js +++ b/codemods/array.prototype.filter/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.filter', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.find/index.js b/codemods/array.prototype.find/index.js index 4cc0f22..c879a86 100644 --- a/codemods/array.prototype.find/index.js +++ b/codemods/array.prototype.find/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.find', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.findindex/index.js b/codemods/array.prototype.findindex/index.js index a5da33d..1f21ed6 100644 --- a/codemods/array.prototype.findindex/index.js +++ b/codemods/array.prototype.findindex/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.findindex', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.findlast/index.js b/codemods/array.prototype.findlast/index.js index 6ee24fd..57d5ccd 100644 --- a/codemods/array.prototype.findlast/index.js +++ b/codemods/array.prototype.findlast/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.findlast', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.findlastindex/index.js b/codemods/array.prototype.findlastindex/index.js index be7c741..a4ad68c 100644 --- a/codemods/array.prototype.findlastindex/index.js +++ b/codemods/array.prototype.findlastindex/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.findlastindex', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.flat/index.js b/codemods/array.prototype.flat/index.js index db7e929..19a9ab0 100644 --- a/codemods/array.prototype.flat/index.js +++ b/codemods/array.prototype.flat/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.flat', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.flatmap/index.js b/codemods/array.prototype.flatmap/index.js index 78f7bc1..3d61f16 100644 --- a/codemods/array.prototype.flatmap/index.js +++ b/codemods/array.prototype.flatmap/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.flatmap', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.foreach/index.js b/codemods/array.prototype.foreach/index.js index 47eaf17..8375c5c 100644 --- a/codemods/array.prototype.foreach/index.js +++ b/codemods/array.prototype.foreach/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.foreach', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.indexof/index.js b/codemods/array.prototype.indexof/index.js index b187edd..6ec1290 100644 --- a/codemods/array.prototype.indexof/index.js +++ b/codemods/array.prototype.indexof/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.indexof', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.join/index.js b/codemods/array.prototype.join/index.js index 9e08904..c75d31a 100644 --- a/codemods/array.prototype.join/index.js +++ b/codemods/array.prototype.join/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.join', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.keys/index.js b/codemods/array.prototype.keys/index.js index c58e089..cfb5156 100644 --- a/codemods/array.prototype.keys/index.js +++ b/codemods/array.prototype.keys/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.keys', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.lastindexof/index.js b/codemods/array.prototype.lastindexof/index.js index 2d7b175..5fdfdbb 100644 --- a/codemods/array.prototype.lastindexof/index.js +++ b/codemods/array.prototype.lastindexof/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.lastindexof', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.map/index.js b/codemods/array.prototype.map/index.js index 145c510..32cd00a 100644 --- a/codemods/array.prototype.map/index.js +++ b/codemods/array.prototype.map/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.map', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.push/index.js b/codemods/array.prototype.push/index.js index e1155d6..d48853f 100644 --- a/codemods/array.prototype.push/index.js +++ b/codemods/array.prototype.push/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.push', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.reduce/index.js b/codemods/array.prototype.reduce/index.js index 4e6ae41..3ebf76c 100644 --- a/codemods/array.prototype.reduce/index.js +++ b/codemods/array.prototype.reduce/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.reduce', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.reduceright/index.js b/codemods/array.prototype.reduceright/index.js index d3e6ef8..e1338b4 100644 --- a/codemods/array.prototype.reduceright/index.js +++ b/codemods/array.prototype.reduceright/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.reduceright', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/array.prototype.slice/index.js b/codemods/array.prototype.slice/index.js index 1a34f40..47ead31 100644 --- a/codemods/array.prototype.slice/index.js +++ b/codemods/array.prototype.slice/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.slice', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/array.prototype.some/index.js b/codemods/array.prototype.some/index.js index a6a8482..e1d7bd8 100644 --- a/codemods/array.prototype.some/index.js +++ b/codemods/array.prototype.some/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.some', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.splice/index.js b/codemods/array.prototype.splice/index.js index 5b46a57..cee69c5 100644 --- a/codemods/array.prototype.splice/index.js +++ b/codemods/array.prototype.splice/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.splice', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/array.prototype.toreversed/index.js b/codemods/array.prototype.toreversed/index.js index 4b8aa2b..8329eef 100644 --- a/codemods/array.prototype.toreversed/index.js +++ b/codemods/array.prototype.toreversed/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.toreversed', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.tosorted/index.js b/codemods/array.prototype.tosorted/index.js index ea9d27d..dd6962e 100644 --- a/codemods/array.prototype.tosorted/index.js +++ b/codemods/array.prototype.tosorted/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.tosorted', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.tospliced/index.js b/codemods/array.prototype.tospliced/index.js index 188ee19..5303dab 100644 --- a/codemods/array.prototype.tospliced/index.js +++ b/codemods/array.prototype.tospliced/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.tospliced', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.unshift/index.js b/codemods/array.prototype.unshift/index.js index ba5bb92..7cdb523 100644 --- a/codemods/array.prototype.unshift/index.js +++ b/codemods/array.prototype.unshift/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.unshift', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/array.prototype.values/index.js b/codemods/array.prototype.values/index.js index e41c11c..4b95359 100644 --- a/codemods/array.prototype.values/index.js +++ b/codemods/array.prototype.values/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.values', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/array.prototype.with/index.js b/codemods/array.prototype.with/index.js index 06945a8..34c1e1e 100644 --- a/codemods/array.prototype.with/index.js +++ b/codemods/array.prototype.with/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'array.prototype.with', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/arraybuffer.prototype.slice/index.js b/codemods/arraybuffer.prototype.slice/index.js index 43df6a6..20b6891 100644 --- a/codemods/arraybuffer.prototype.slice/index.js +++ b/codemods/arraybuffer.prototype.slice/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'arraybuffer.prototype.slice', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/chalk/index.js b/codemods/chalk/index.js index 0067beb..646ff0f 100644 --- a/codemods/chalk/index.js +++ b/codemods/chalk/index.js @@ -29,22 +29,19 @@ const picoNames = [ 'bgWhite', ]; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'chalk', to: 'picocolors', transform: ({ file }) => { const ast = ts.parse(file.source); const root = ast.root(); + const imports = root.findAll({ rule: { pattern: { @@ -75,21 +72,8 @@ export default function (options) { const nameMatch = imp.getMatch('NAME'); if (nameMatch) { - const namespaceImport = nameMatch.find({ - rule: { - kind: 'identifier', - inside: { - kind: 'namespace_import', - }, - }, - }); - - if (namespaceImport) { - chalkName = namespaceImport.text(); - } else { - chalkName = nameMatch.text(); - } - edits.push(nameMatch.replace('* as pc')); + chalkName = nameMatch.text(); + edits.push(nameMatch.replace('pc')); } edits.push(source.replace(`${quoteType}picocolors${quoteType}`)); @@ -185,7 +169,16 @@ export default function (options) { } } - return root.commitEdits(edits); + if (edits.length) { + return { + code: root.commitEdits(edits), + replacements: { + chalk: 'picocolors', + }, + }; + } + + return file.source; }, }; } diff --git a/codemods/clone-regexp/index.js b/codemods/clone-regexp/index.js index 419fe0b..059f4cd 100644 --- a/codemods/clone-regexp/index.js +++ b/codemods/clone-regexp/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'clone-regexp', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); @@ -39,7 +35,7 @@ export default function (options) { } return newRegExp; }) - .toSource({ quote: 'single' }); + .toSource(options); }, }; } diff --git a/codemods/concat-map/index.js b/codemods/concat-map/index.js index 56f525d..e47792c 100644 --- a/codemods/concat-map/index.js +++ b/codemods/concat-map/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'concat-map', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/data-view-buffer/index.js b/codemods/data-view-buffer/index.js index 21b59b8..102e80e 100644 --- a/codemods/data-view-buffer/index.js +++ b/codemods/data-view-buffer/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport, transformInstanceProperty } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'data-view-buffer', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); // let dirty = false; diff --git a/codemods/data-view-byte-length/index.js b/codemods/data-view-byte-length/index.js index d436450..ee891e6 100644 --- a/codemods/data-view-byte-length/index.js +++ b/codemods/data-view-byte-length/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport, transformInstanceProperty } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'data-view-byte-length', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/data-view-byte-offset/index.js b/codemods/data-view-byte-offset/index.js index ddb290d..3872c85 100644 --- a/codemods/data-view-byte-offset/index.js +++ b/codemods/data-view-byte-offset/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport, transformInstanceProperty } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'data-view-byte-offset', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/date/index.js b/codemods/date/index.js index 2094ddb..3d2fa22 100644 --- a/codemods/date/index.js +++ b/codemods/date/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'date', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/deep-equal/index.js b/codemods/deep-equal/index.js index 9346f5f..6e4d265 100644 --- a/codemods/deep-equal/index.js +++ b/codemods/deep-equal/index.js @@ -1,16 +1,12 @@ import jscodeshift from 'jscodeshift'; import { replaceImport } from '../replaceImport.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'deep-equal', to: 'dequal', diff --git a/codemods/define-properties/index.js b/codemods/define-properties/index.js index 83058fb..c18f246 100644 --- a/codemods/define-properties/index.js +++ b/codemods/define-properties/index.js @@ -6,15 +6,10 @@ import { insertAfterImports, insertCommentAboveNode, removeImport, - replaceDefaultImport, replaceRequireMemberExpression, } from '../shared.js'; -import { dir } from 'console'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** * @@ -46,14 +41,13 @@ const ${name} = function (object, map) { };`; /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'define-properties', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); const variableExpressionHasIdentifier = diff --git a/codemods/error-cause/index.js b/codemods/error-cause/index.js index 2821e3e..1e00205 100644 --- a/codemods/error-cause/index.js +++ b/codemods/error-cause/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'error-cause', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/es-aggregate-error/index.js b/codemods/es-aggregate-error/index.js index 7bc14ec..77dfbe0 100644 --- a/codemods/es-aggregate-error/index.js +++ b/codemods/es-aggregate-error/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; -import { removeImport, transformMathPolyfill } from '../shared.js'; +import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'es-aggregate-error', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/es-define-property/index.js b/codemods/es-define-property/index.js index 241f298..9eed6b6 100644 --- a/codemods/es-define-property/index.js +++ b/codemods/es-define-property/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'es-define-property', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/es-errors/index.js b/codemods/es-errors/index.js index 5d88954..7138d4b 100644 --- a/codemods/es-errors/index.js +++ b/codemods/es-errors/index.js @@ -1,10 +1,7 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ const moduleToErrorMap = { 'es-errors': 'Error', @@ -17,17 +14,15 @@ const moduleToErrorMap = { }; /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'es-errors', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); - let dirtyFlag = false; for (const [moduleName, errorName] of Object.entries(moduleToErrorMap)) { const { identifier } = removeImport(moduleName, root, j); diff --git a/codemods/es-get-iterator/index.js b/codemods/es-get-iterator/index.js index 960fe9e..08d5029 100644 --- a/codemods/es-get-iterator/index.js +++ b/codemods/es-get-iterator/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'es-get-iterator', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/es-set-tostringtag/index.js b/codemods/es-set-tostringtag/index.js index de20782..00d5651 100644 --- a/codemods/es-set-tostringtag/index.js +++ b/codemods/es-set-tostringtag/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'es-set-tostringtag', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/es-shim-unscopables/index.js b/codemods/es-shim-unscopables/index.js index 76e70e0..a30ea90 100644 --- a/codemods/es-shim-unscopables/index.js +++ b/codemods/es-shim-unscopables/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'es-shim-unscopables', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); @@ -31,7 +27,7 @@ export default function (options) { j(path).remove(); }); - return root.toSource({ quote: 'single' }); + return root.toSource(options); }, }; } diff --git a/codemods/es-string-html-methods/index.js b/codemods/es-string-html-methods/index.js index 6fc99d1..c3cdf51 100644 --- a/codemods/es-string-html-methods/index.js +++ b/codemods/es-string-html-methods/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'es-string-html-methods', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); @@ -72,7 +68,7 @@ export default function (options) { }); }); - return root.toSource({ quote: 'single' }); + return root.toSource(options); }, }; } diff --git a/codemods/filter-array/index.js b/codemods/filter-array/index.js index cfb6d4f..4fbbe31 100644 --- a/codemods/filter-array/index.js +++ b/codemods/filter-array/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'filter-array', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/for-each/index.js b/codemods/for-each/index.js index 6757004..7f90db7 100644 --- a/codemods/for-each/index.js +++ b/codemods/for-each/index.js @@ -1,10 +1,7 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** * @NOTE @@ -13,14 +10,13 @@ import { removeImport } from '../shared.js'; * * If a project does use `for-each` on an object, you can replace it with `Object.entries(obj).forEach` * - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'for-each', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/function-bind/index.js b/codemods/function-bind/index.js index 7c7b4aa..03cc792 100644 --- a/codemods/function-bind/index.js +++ b/codemods/function-bind/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'function-bind', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/function.prototype.name/index.js b/codemods/function.prototype.name/index.js index 0f50178..266c23f 100644 --- a/codemods/function.prototype.name/index.js +++ b/codemods/function.prototype.name/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'function.prototype.name', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/functions-have-names/index.js b/codemods/functions-have-names/index.js index e72c97e..f277e65 100644 --- a/codemods/functions-have-names/index.js +++ b/codemods/functions-have-names/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'functions-have-names', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/get-symbol-description/index.js b/codemods/get-symbol-description/index.js index 17c69ba..128e6ed 100644 --- a/codemods/get-symbol-description/index.js +++ b/codemods/get-symbol-description/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'get-symbol-description', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/global/index.js b/codemods/global/index.js index 26912ad..ca4a951 100644 --- a/codemods/global/index.js +++ b/codemods/global/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'global', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); @@ -40,7 +36,7 @@ export default function (options) { .find(j.Identifier, { name: windowIdentifier }) .replaceWith(j.identifier('window')); - return root.toSource({ quote: 'single' }); + return root.toSource(options); }, }; } diff --git a/codemods/gopd/index.js b/codemods/gopd/index.js index 03da889..74ab00c 100644 --- a/codemods/gopd/index.js +++ b/codemods/gopd/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'gopd', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/has-own-prop/index.js b/codemods/has-own-prop/index.js index c26a8b5..9bede71 100644 --- a/codemods/has-own-prop/index.js +++ b/codemods/has-own-prop/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'has-own-prop', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/has-proto/index.js b/codemods/has-proto/index.js index 45aea92..49ce379 100644 --- a/codemods/has-proto/index.js +++ b/codemods/has-proto/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'has-proto', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/has-symbols/index.js b/codemods/has-symbols/index.js index dc575cc..829d74c 100644 --- a/codemods/has-symbols/index.js +++ b/codemods/has-symbols/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'has-symbols', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/has-tostringtag/index.js b/codemods/has-tostringtag/index.js index 7963de6..a9bf08a 100644 --- a/codemods/has-tostringtag/index.js +++ b/codemods/has-tostringtag/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'has-tostringtag', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/has/index.js b/codemods/has/index.js index a4dc355..b3291ce 100644 --- a/codemods/has/index.js +++ b/codemods/has/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'has', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/hasown/index.js b/codemods/hasown/index.js index ca9e500..2e7809e 100644 --- a/codemods/hasown/index.js +++ b/codemods/hasown/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'hasown', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/index-of/index.js b/codemods/index-of/index.js index 8e77637..eacda03 100644 --- a/codemods/index-of/index.js +++ b/codemods/index-of/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'index-of', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/is-array-buffer/index.js b/codemods/is-array-buffer/index.js index bff6ce9..8301e53 100644 --- a/codemods/is-array-buffer/index.js +++ b/codemods/is-array-buffer/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-array-buffer', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/is-boolean-object/index.js b/codemods/is-boolean-object/index.js index 3adbcc4..fd50481 100644 --- a/codemods/is-boolean-object/index.js +++ b/codemods/is-boolean-object/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-boolean-object', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); @@ -62,7 +58,7 @@ export default function (options) { } }); - return root.toSource({ quote: 'single' }); + return root.toSource(options); }, }; } diff --git a/codemods/is-builtin-module/index.js b/codemods/is-builtin-module/index.js index f28baaa..83a9981 100644 --- a/codemods/is-builtin-module/index.js +++ b/codemods/is-builtin-module/index.js @@ -1,15 +1,11 @@ import jscodeshift from 'jscodeshift'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-builtin-module', to: 'native', diff --git a/codemods/is-date-object/index.js b/codemods/is-date-object/index.js index 97c1ee0..7cd1fd7 100644 --- a/codemods/is-date-object/index.js +++ b/codemods/is-date-object/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-date-object', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); @@ -62,7 +58,7 @@ export default function (options) { } }); - return root.toSource({ quote: 'single' }); + return root.toSource(options); }, }; } diff --git a/codemods/is-even/index.js b/codemods/is-even/index.js index 939e736..e1443e5 100644 --- a/codemods/is-even/index.js +++ b/codemods/is-even/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-even', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); @@ -43,7 +39,7 @@ export default function (options) { j(path).replaceWith(wrappedExpression); }); - return root.toSource({ quote: 'single' }); + return root.toSource(options); }, }; } diff --git a/codemods/is-nan/index.js b/codemods/is-nan/index.js index 7acca20..72fb8b7 100644 --- a/codemods/is-nan/index.js +++ b/codemods/is-nan/index.js @@ -1,23 +1,18 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-nan', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); - let dirtyFlag = false; let { identifier } = removeImport('is-nan', root, j); diff --git a/codemods/is-negative-zero/index.js b/codemods/is-negative-zero/index.js index 96aca26..f108b0c 100644 --- a/codemods/is-negative-zero/index.js +++ b/codemods/is-negative-zero/index.js @@ -1,19 +1,15 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-negative-zero', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/is-npm/index.js b/codemods/is-npm/index.js index d980653..8d12b13 100644 --- a/codemods/is-npm/index.js +++ b/codemods/is-npm/index.js @@ -5,20 +5,16 @@ import { removeImport, } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-npm', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let isDirty = false; diff --git a/codemods/is-number-object/index.js b/codemods/is-number-object/index.js index 7da171c..66a859b 100644 --- a/codemods/is-number-object/index.js +++ b/codemods/is-number-object/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-number-object', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); @@ -62,7 +58,7 @@ export default function (options) { } }); - return root.toSource({ quote: 'single' }); + return root.toSource(options); }, }; } diff --git a/codemods/is-number/index.js b/codemods/is-number/index.js index 792fee4..027d757 100644 --- a/codemods/is-number/index.js +++ b/codemods/is-number/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-number', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; @@ -61,7 +57,7 @@ export default function (options) { return j.parenthesizedExpression(detailedCheck); }); - return dirtyFlag ? root.toSource({ quote: 'single' }) : file.source; + return dirtyFlag ? root.toSource(options) : file.source; }, }; } diff --git a/codemods/is-odd/index.js b/codemods/is-odd/index.js index ee08f4d..cb0e15e 100644 --- a/codemods/is-odd/index.js +++ b/codemods/is-odd/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-odd', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); @@ -43,7 +39,7 @@ export default function (options) { j(path).replaceWith(wrappedExpression); }); - return root.toSource({ quote: 'single' }); + return root.toSource(options); }, }; } diff --git a/codemods/is-plain-object/index.js b/codemods/is-plain-object/index.js index 5668eb3..5b42d68 100644 --- a/codemods/is-plain-object/index.js +++ b/codemods/is-plain-object/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-plain-object', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let isDirty = false; diff --git a/codemods/is-primitive/index.js b/codemods/is-primitive/index.js index 59844d4..0e6c771 100644 --- a/codemods/is-primitive/index.js +++ b/codemods/is-primitive/index.js @@ -7,14 +7,13 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-primitive', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); @@ -50,7 +49,7 @@ export default function (options) { root.find(j.Program).get('body').push(func); - return root.toSource({ quote: 'single' }); + return root.toSource(options); } return file.source; diff --git a/codemods/is-regexp/index.js b/codemods/is-regexp/index.js index 123d707..4d68ac4 100644 --- a/codemods/is-regexp/index.js +++ b/codemods/is-regexp/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-regexp', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/is-string/index.js b/codemods/is-string/index.js index a0ed147..f514c94 100644 --- a/codemods/is-string/index.js +++ b/codemods/is-string/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-string', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); @@ -62,7 +58,7 @@ export default function (options) { } }); - return root.toSource({ quote: 'single' }); + return root.toSource(options); }, }; } diff --git a/codemods/is-travis/index.js b/codemods/is-travis/index.js index 06f5b45..5f4e3ad 100644 --- a/codemods/is-travis/index.js +++ b/codemods/is-travis/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-travis', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; @@ -31,7 +27,7 @@ export default function (options) { ); }); - return dirtyFlag ? root.toSource({ quote: 'single' }) : file.source; + return dirtyFlag ? root.toSource(options) : file.source; }, }; } diff --git a/codemods/is-whitespace/index.js b/codemods/is-whitespace/index.js index 7286a18..4adc5a6 100644 --- a/codemods/is-whitespace/index.js +++ b/codemods/is-whitespace/index.js @@ -1,10 +1,7 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** * @TODO @@ -13,14 +10,13 @@ import { removeImport } from '../shared.js'; */ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-whitespace', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); @@ -47,7 +43,7 @@ export default function (options) { ); }); - return root.toSource({ quote: 'single' }); + return root.toSource(options); }, }; } diff --git a/codemods/is-windows/index.js b/codemods/is-windows/index.js index 01032be..d041c7e 100644 --- a/codemods/is-windows/index.js +++ b/codemods/is-windows/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'is-windows', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; @@ -40,7 +36,7 @@ export default function (options) { ), ); }); - return dirtyFlag ? root.toSource({ quote: 'single' }) : file.source; + return dirtyFlag ? root.toSource(options) : file.source; }, }; } diff --git a/codemods/iterate-value/index.js b/codemods/iterate-value/index.js index 4094849..e673b34 100644 --- a/codemods/iterate-value/index.js +++ b/codemods/iterate-value/index.js @@ -1,15 +1,11 @@ import { ts } from '@ast-grep/napi'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'iterate-value', to: 'native', diff --git a/codemods/last-index-of/index.js b/codemods/last-index-of/index.js index e8b3746..76c8820 100644 --- a/codemods/last-index-of/index.js +++ b/codemods/last-index-of/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformArrayMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'last-index-of', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/left-pad/index.js b/codemods/left-pad/index.js index 77d102e..8391a28 100644 --- a/codemods/left-pad/index.js +++ b/codemods/left-pad/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'left-pad', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/math.acosh/index.js b/codemods/math.acosh/index.js index db6f29a..b6f4bde 100644 --- a/codemods/math.acosh/index.js +++ b/codemods/math.acosh/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformMathPolyfill } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'math.acosh', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/math.atanh/index.js b/codemods/math.atanh/index.js index 499cb49..a17a36e 100644 --- a/codemods/math.atanh/index.js +++ b/codemods/math.atanh/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformMathPolyfill } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'math.atanh', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/math.cbrt/index.js b/codemods/math.cbrt/index.js index 36bd97f..2eefb01 100644 --- a/codemods/math.cbrt/index.js +++ b/codemods/math.cbrt/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformMathPolyfill } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'math.cbrt', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/math.clz32/index.js b/codemods/math.clz32/index.js index 2349de2..ff6917b 100644 --- a/codemods/math.clz32/index.js +++ b/codemods/math.clz32/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformMathPolyfill } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'math.clz32', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/math.f16round/index.js b/codemods/math.f16round/index.js index 37c6f8c..84c54d6 100644 --- a/codemods/math.f16round/index.js +++ b/codemods/math.f16round/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformMathPolyfill } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'math.f16round', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/math.fround/index.js b/codemods/math.fround/index.js index c924c47..7e24e3c 100644 --- a/codemods/math.fround/index.js +++ b/codemods/math.fround/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformMathPolyfill } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'math.fround', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/math.imul/index.js b/codemods/math.imul/index.js index c4d6a22..f2b157d 100644 --- a/codemods/math.imul/index.js +++ b/codemods/math.imul/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformMathPolyfill } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'math.imul', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/math.log10/index.js b/codemods/math.log10/index.js index 92c01bf..6155aac 100644 --- a/codemods/math.log10/index.js +++ b/codemods/math.log10/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformMathPolyfill } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'math.log10', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/math.log1p/index.js b/codemods/math.log1p/index.js index 2753fe3..39929cb 100644 --- a/codemods/math.log1p/index.js +++ b/codemods/math.log1p/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformMathPolyfill } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'math.log1p', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/math.sign/index.js b/codemods/math.sign/index.js index 11e7c46..614c542 100644 --- a/codemods/math.sign/index.js +++ b/codemods/math.sign/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformMathPolyfill } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'math.sign', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/md5/index.js b/codemods/md5/index.js index 56832d3..eed1622 100644 --- a/codemods/md5/index.js +++ b/codemods/md5/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { replaceDefaultImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'md5', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); @@ -54,7 +50,7 @@ export default function (options) { j(path).replaceWith(newExpression); }); - return root.toSource({ quote: 'single' }); + return root.toSource(options); }, }; } diff --git a/codemods/number.isfinite/index.js b/codemods/number.isfinite/index.js index 889c4d4..fa1fa74 100644 --- a/codemods/number.isfinite/index.js +++ b/codemods/number.isfinite/index.js @@ -1,5 +1,5 @@ /** - * @import { Codemod, CodemodOptions } from "../../types.js" + * @import { Codemod } from "../../types.js" */ import jscodeshift from 'jscodeshift'; @@ -7,20 +7,19 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'number.isfinite', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); const importDeclaration = removeImport('number.isfinite', root, j); if (importDeclaration) { - return root.toSource({ quote: 'single' }); + return root.toSource(options); } return file.source; diff --git a/codemods/number.isinteger/index.js b/codemods/number.isinteger/index.js index d05576a..b24c5af 100644 --- a/codemods/number.isinteger/index.js +++ b/codemods/number.isinteger/index.js @@ -1,5 +1,5 @@ /** - * @import { Codemod, CodemodOptions } from "../../types.js" + * @import { Codemod } from "../../types.js" */ import jscodeshift from 'jscodeshift'; @@ -7,20 +7,19 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'number.isinteger', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); const importDeclaration = removeImport('number.isinteger', root, j); if (importDeclaration) { - return root.toSource({ quote: 'single' }); + return root.toSource(options); } return file.source; diff --git a/codemods/number.isnan/index.js b/codemods/number.isnan/index.js index f2309cd..83cb6c2 100644 --- a/codemods/number.isnan/index.js +++ b/codemods/number.isnan/index.js @@ -1,23 +1,18 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'number.isnan', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); - let dirtyFlag = false; let { identifier } = removeImport('number.isnan', root, j); diff --git a/codemods/number.issafeinteger/index.js b/codemods/number.issafeinteger/index.js index 450fe3d..cdc2fa6 100644 --- a/codemods/number.issafeinteger/index.js +++ b/codemods/number.issafeinteger/index.js @@ -7,20 +7,19 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'number.issafeinteger', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); const importDeclaration = removeImport('number.issafeinteger', root, j); if (importDeclaration) { - return root.toSource({ quote: 'single' }); + return root.toSource(options); } return file.source; diff --git a/codemods/number.parsefloat/index.js b/codemods/number.parsefloat/index.js index 91a58be..bb714a5 100644 --- a/codemods/number.parsefloat/index.js +++ b/codemods/number.parsefloat/index.js @@ -1,5 +1,5 @@ /** - * @import { Codemod, CodemodOptions } from "../../types.js" + * @import { Codemod } from "../../types.js" */ import jscodeshift from 'jscodeshift'; @@ -7,20 +7,19 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'number.parsefloat', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); const importDeclaration = removeImport('number.parsefloat', root, j); if (importDeclaration) { - return root.toSource({ quote: 'single' }); + return root.toSource(options); } return file.source; diff --git a/codemods/number.parseint/index.js b/codemods/number.parseint/index.js index a0403c6..4a604fc 100644 --- a/codemods/number.parseint/index.js +++ b/codemods/number.parseint/index.js @@ -1,5 +1,5 @@ /** - * @import { Codemod, CodemodOptions } from "../../types.js" + * @import { Codemod } from "../../types.js" */ import jscodeshift from 'jscodeshift'; @@ -7,20 +7,19 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'number.parseint', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); const importDeclaration = removeImport('number.parseint', root, j); if (importDeclaration) { - return root.toSource({ quote: 'single' }); + return root.toSource(options); } return file.source; diff --git a/codemods/number.prototype.toexponential/index.js b/codemods/number.prototype.toexponential/index.js index c04b6a0..a5ad9cb 100644 --- a/codemods/number.prototype.toexponential/index.js +++ b/codemods/number.prototype.toexponential/index.js @@ -1,5 +1,5 @@ /** - * @import { Codemod, CodemodOptions } from "../../types.js" + * @import { Codemod } from "../../types.js" */ import jscodeshift from 'jscodeshift'; @@ -7,14 +7,13 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'number.prototype.toexponential', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); const importDeclaration = removeImport( @@ -24,7 +23,7 @@ export default function (options) { ); if (importDeclaration) { - return root.toSource({ quote: 'single' }); + return root.toSource(options); } return file.source; diff --git a/codemods/object-assign/index.js b/codemods/object-assign/index.js index 03c3860..4969e95 100644 --- a/codemods/object-assign/index.js +++ b/codemods/object-assign/index.js @@ -1,23 +1,18 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'object-assign', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); - let dirtyFlag = false; let { identifier } = removeImport('object-assign', root, j); diff --git a/codemods/object-is/index.js b/codemods/object-is/index.js index b643a9d..43519c5 100644 --- a/codemods/object-is/index.js +++ b/codemods/object-is/index.js @@ -1,23 +1,18 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'object-is', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); - let dirtyFlag = false; let { identifier } = removeImport('object-is', root, j); diff --git a/codemods/object-keys/index.js b/codemods/object-keys/index.js index 1ac01d0..dff0feb 100644 --- a/codemods/object-keys/index.js +++ b/codemods/object-keys/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'object-keys', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/object.assign/index.js b/codemods/object.assign/index.js index b871ee2..93c8f90 100644 --- a/codemods/object.assign/index.js +++ b/codemods/object.assign/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'object.assign', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/object.defineproperties/index.js b/codemods/object.defineproperties/index.js index 3b2db82..a90110b 100644 --- a/codemods/object.defineproperties/index.js +++ b/codemods/object.defineproperties/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'object.defineproperties', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/object.entries/index.js b/codemods/object.entries/index.js index f6e9598..662631f 100644 --- a/codemods/object.entries/index.js +++ b/codemods/object.entries/index.js @@ -1,23 +1,18 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'object.entries', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); - let dirtyFlag = false; let { identifier } = removeImport('object.entries', root, j); diff --git a/codemods/object.fromentries/index.js b/codemods/object.fromentries/index.js index 6e05a1b..a51e390 100644 --- a/codemods/object.fromentries/index.js +++ b/codemods/object.fromentries/index.js @@ -1,23 +1,18 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'object.fromentries', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); - let dirtyFlag = false; let { identifier } = removeImport('object.fromentries', root, j); diff --git a/codemods/object.getprototypeof/index.js b/codemods/object.getprototypeof/index.js index e560727..ff86cdf 100644 --- a/codemods/object.getprototypeof/index.js +++ b/codemods/object.getprototypeof/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'object.getprototypeof', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/object.hasown/index.js b/codemods/object.hasown/index.js index caafd19..5429c67 100644 --- a/codemods/object.hasown/index.js +++ b/codemods/object.hasown/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'object.hasown', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/object.keys/index.js b/codemods/object.keys/index.js index a7a38f8..9504181 100644 --- a/codemods/object.keys/index.js +++ b/codemods/object.keys/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'object.keys', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/object.values/index.js b/codemods/object.values/index.js index 32a6a56..e1aeeae 100644 --- a/codemods/object.values/index.js +++ b/codemods/object.values/index.js @@ -1,23 +1,18 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'object.values', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); - let dirtyFlag = false; let { identifier } = removeImport('object.values', root, j); diff --git a/codemods/pad-left/index.js b/codemods/pad-left/index.js index 05ea82b..f8158c9 100644 --- a/codemods/pad-left/index.js +++ b/codemods/pad-left/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'pad-left', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/parseint/index.js b/codemods/parseint/index.js index 78f5a1f..c3211e6 100644 --- a/codemods/parseint/index.js +++ b/codemods/parseint/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'parseint', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/promise.allsettled/index.js b/codemods/promise.allsettled/index.js index 5c52d91..43bbfa5 100644 --- a/codemods/promise.allsettled/index.js +++ b/codemods/promise.allsettled/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'promise.allsettled', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/promise.any/index.js b/codemods/promise.any/index.js index 8605036..9a8217a 100644 --- a/codemods/promise.any/index.js +++ b/codemods/promise.any/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'promise.any', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/promise.prototype.finally/index.js b/codemods/promise.prototype.finally/index.js index 5bb7db8..bdeee48 100644 --- a/codemods/promise.prototype.finally/index.js +++ b/codemods/promise.prototype.finally/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'promise.prototype.finally', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/qs/index.js b/codemods/qs/index.js index 6941f20..2ad62ce 100644 --- a/codemods/qs/index.js +++ b/codemods/qs/index.js @@ -1,5 +1,8 @@ import { ts } from '@ast-grep/napi'; +/** @import { Codemod, CodemodOptions, Warning } from '../../types.js'} */ +/** @import { SgNode } from '@ast-grep/napi' */ + const qsLikeOptions = { nesting: true, nestingSyntax: 'js', @@ -8,12 +11,6 @@ const qsLikeOptions = { }; const qsLikeOptionsStr = JSON.stringify(qsLikeOptions); -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - * @typedef {import('@ast-grep/napi').SgNode} SgNode - */ - /** * @param {SgNode} obj * @return {Record} @@ -129,11 +126,14 @@ const replacements = { * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function (options = {}) { return { name: 'qs', to: 'picoquery', transform: ({ file }) => { + /** @type {Warning[]} */ + const warnings = []; + let isDirty = false; const ast = ts.parse(file.source); const root = ast.root(); const imports = root.findAll({ @@ -166,8 +166,21 @@ export default function (options) { const nameMatch = imp.getMatch('NAME'); if (nameMatch) { - importName = nameMatch.text(); - edits.push(nameMatch.replace('pq')); + const namespaceImport = nameMatch.find({ + rule: { + kind: 'identifier', + inside: { + kind: 'namespace_import', + }, + }, + }); + if (namespaceImport) { + importName = namespaceImport.text(); + } else { + importName = nameMatch.text(); + } + edits.push(nameMatch.replace('* as pq')); + isDirty = true; } edits.push(source.replace(`${quoteType}picoquery${quoteType}`)); @@ -187,6 +200,7 @@ export default function (options) { if (name) { importName = name.text(); edits.push(name.replace('pq')); + isDirty = true; } } } @@ -232,11 +246,29 @@ export default function (options) { const replacer = replacements[key]; if (!replacer) { - console.warn( - `Warning: encountered an unknown option. ` + + if (options.strict) { + return { + code: file.source, + meta: { + warnings: [ + { + range: val.range(), + message: `Unknown option "${key}". Aborting codemod due to strict mode.`, + file: file.filename, + }, + ], + }, + }; + } + + warnings.push({ + range: val.range(), + message: + `encountered an unknown option. ` + `The option ("${key}") will be dropped, so may need ` + `additional fixes after this codemod executes.`, - ); + file: file.filename, + }); continue; } @@ -257,12 +289,30 @@ export default function (options) { } if (!foundReplacement) { - console.warn( - `Warning: encountered an option with a value we could not parse. ` + + if (options.strict) { + return { + code: file.source, + meta: { + warnings: [ + { + range: val.range(), + message: `Unexpected value for option "${key}". Aborting codemod due to strict mode.`, + file: file.filename, + }, + ], + }, + }; + } + + warnings.push({ + range: val.range(), + message: + `encountered an option with a value we could not parse. ` + `The option ("${key}") has a computed value or an unexpected ` + `type. It will be dropped, so may need additional fixes ` + `after this codemod executes.`, - ); + file: file.filename, + }); } } @@ -270,10 +320,14 @@ export default function (options) { } if (decodeResult) { - console.warn( - `Warning: the "encode: false" option will be ` + + warnings.push({ + range: func.range(), + message: + `the "encode: false" option will be ` + `replaced by a call to decodeURIComponent`, - ); + file: file.filename, + }); + edits.push(func.replace('decodeURIComponent(pq')); const argsChildren = expr.field('arguments')?.children(); @@ -290,7 +344,13 @@ export default function (options) { } } - return root.commitEdits(edits); + return { + code: root.commitEdits(edits), + warnings, + replacements: { + ...(isDirty ? { qs: 'picoquery' } : undefined), + }, + }; }, }; } diff --git a/codemods/reflect.getprototypeof/index.js b/codemods/reflect.getprototypeof/index.js index 150d3b0..df0a250 100644 --- a/codemods/reflect.getprototypeof/index.js +++ b/codemods/reflect.getprototypeof/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'reflect.getprototypeof', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/reflect.ownkeys/index.js b/codemods/reflect.ownkeys/index.js index cf6cc0c..b3be9b1 100644 --- a/codemods/reflect.ownkeys/index.js +++ b/codemods/reflect.ownkeys/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'reflect.ownkeys', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/regexp.prototype.flags/index.js b/codemods/regexp.prototype.flags/index.js index 4ac39c8..a5583b2 100644 --- a/codemods/regexp.prototype.flags/index.js +++ b/codemods/regexp.prototype.flags/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'regexp.prototype.flags', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); @@ -52,7 +48,7 @@ export default function (options) { } }); - return root.toSource({ quote: 'single' }); + return root.toSource(options); }, }; } diff --git a/codemods/setprototypeof/index.js b/codemods/setprototypeof/index.js index ce0fcda..c1c2c6e 100644 --- a/codemods/setprototypeof/index.js +++ b/codemods/setprototypeof/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'setprototypeof', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirtyFlag = false; diff --git a/codemods/shared.js b/codemods/shared.js index 55c0290..cc38770 100644 --- a/codemods/shared.js +++ b/codemods/shared.js @@ -9,7 +9,7 @@ /** * @param {string} name - package name to remove import/require calls for - * @param {import("jscodeshift").Collection} root - package name to remove import/require calls for + * @param {import("jscodeshift").Collection} root - jscodeshift collection / ast * @param {import("jscodeshift").JSCodeshift} j - jscodeshift instance * @returns {RemoveImport} */ diff --git a/codemods/split-lines/index.js b/codemods/split-lines/index.js index b2fa428..aa54e5e 100644 --- a/codemods/split-lines/index.js +++ b/codemods/split-lines/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'split-lines', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let isDirty = false; diff --git a/codemods/string.prototype.at/index.js b/codemods/string.prototype.at/index.js index 2888c94..92130a9 100644 --- a/codemods/string.prototype.at/index.js +++ b/codemods/string.prototype.at/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformStringMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'string.prototype.at', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/string.prototype.lastindexof/index.js b/codemods/string.prototype.lastindexof/index.js index c543a74..3fc0666 100644 --- a/codemods/string.prototype.lastindexof/index.js +++ b/codemods/string.prototype.lastindexof/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformStringMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'string.prototype.lastindexof', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/string.prototype.matchall/index.js b/codemods/string.prototype.matchall/index.js index 5694e73..6bdfe91 100644 --- a/codemods/string.prototype.matchall/index.js +++ b/codemods/string.prototype.matchall/index.js @@ -1,10 +1,7 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** * @NOTE @@ -13,14 +10,13 @@ import { removeImport } from '../shared.js'; * * If a project does use `for-each` on an object, you can replace it with `Object.entries(obj).forEach` * - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'string.prototype.matchall', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/string.prototype.padend/index.js b/codemods/string.prototype.padend/index.js index 89612be..7b3e02d 100644 --- a/codemods/string.prototype.padend/index.js +++ b/codemods/string.prototype.padend/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformStringMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'string.prototype.padend', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/string.prototype.padleft/index.js b/codemods/string.prototype.padleft/index.js index 825bc17..4461a6b 100644 --- a/codemods/string.prototype.padleft/index.js +++ b/codemods/string.prototype.padleft/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformStringMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'string.prototype.padleft', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/string.prototype.padright/index.js b/codemods/string.prototype.padright/index.js index 8885912..e1b331e 100644 --- a/codemods/string.prototype.padright/index.js +++ b/codemods/string.prototype.padright/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformStringMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'string.prototype.padright', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/string.prototype.padstart/index.js b/codemods/string.prototype.padstart/index.js index d6fb5ca..3ed576c 100644 --- a/codemods/string.prototype.padstart/index.js +++ b/codemods/string.prototype.padstart/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformStringMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'string.prototype.padstart', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/string.prototype.repeat/index.js b/codemods/string.prototype.repeat/index.js index 77cb9d0..522793f 100644 --- a/codemods/string.prototype.repeat/index.js +++ b/codemods/string.prototype.repeat/index.js @@ -1,10 +1,7 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** * @NOTE @@ -13,14 +10,13 @@ import { removeImport } from '../shared.js'; * * If a project does use `for-each` on an object, you can replace it with `Object.entries(obj).forEach` * - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'string.prototype.repeat', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/string.prototype.replaceall/index.js b/codemods/string.prototype.replaceall/index.js index 70277cd..a471b09 100644 --- a/codemods/string.prototype.replaceall/index.js +++ b/codemods/string.prototype.replaceall/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformStringMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'string.prototype.replaceall', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/string.prototype.split/index.js b/codemods/string.prototype.split/index.js index ff4b3a9..696df0c 100644 --- a/codemods/string.prototype.split/index.js +++ b/codemods/string.prototype.split/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformStringMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'string.prototype.split', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/string.prototype.substr/index.js b/codemods/string.prototype.substr/index.js index 765794c..029ad53 100644 --- a/codemods/string.prototype.substr/index.js +++ b/codemods/string.prototype.substr/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformStringMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'string.prototype.substr', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/string.prototype.trim/index.js b/codemods/string.prototype.trim/index.js index 8abd280..665fa08 100644 --- a/codemods/string.prototype.trim/index.js +++ b/codemods/string.prototype.trim/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformStringMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'string.prototype.trim', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/string.prototype.trimend/index.js b/codemods/string.prototype.trimend/index.js index 218b955..f5964bb 100644 --- a/codemods/string.prototype.trimend/index.js +++ b/codemods/string.prototype.trimend/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformStringMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'string.prototype.trimend', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/string.prototype.trimleft/index.js b/codemods/string.prototype.trimleft/index.js index 8a1d833..fbb7c84 100644 --- a/codemods/string.prototype.trimleft/index.js +++ b/codemods/string.prototype.trimleft/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformStringMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'string.prototype.trimleft', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/string.prototype.trimright/index.js b/codemods/string.prototype.trimright/index.js index 46a7769..6edd102 100644 --- a/codemods/string.prototype.trimright/index.js +++ b/codemods/string.prototype.trimright/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformStringMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'string.prototype.trimright', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/string.prototype.trimstart/index.js b/codemods/string.prototype.trimstart/index.js index a88f220..e3a9cbe 100644 --- a/codemods/string.prototype.trimstart/index.js +++ b/codemods/string.prototype.trimstart/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { transformStringMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'string.prototype.trimstart', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/string.raw/index.js b/codemods/string.raw/index.js index e4289c1..4339c9b 100644 --- a/codemods/string.raw/index.js +++ b/codemods/string.raw/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'string.raw', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/codemods/symbol.prototype.description/index.js b/codemods/symbol.prototype.description/index.js index 946fbf3..8d93bfd 100644 --- a/codemods/symbol.prototype.description/index.js +++ b/codemods/symbol.prototype.description/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'symbol.prototype.description', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); @@ -62,7 +58,7 @@ export default function (options) { ); }); - return root.toSource({ quote: 'single' }); + return root.toSource(options); }, }; } diff --git a/codemods/traverse/index.js b/codemods/traverse/index.js index 045ec08..49796cf 100644 --- a/codemods/traverse/index.js +++ b/codemods/traverse/index.js @@ -1,22 +1,20 @@ import jscodeshift from 'jscodeshift'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'traverse', to: 'neotraverse', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); + let dirty = false; + // Transform import declarations root.find(j.ImportDeclaration).forEach((path) => { if ( @@ -24,6 +22,7 @@ export default function (options) { path.node.source.value === 'traverse' ) { path.node.source.value = 'neotraverse/legacy'; + dirty = true; } }); @@ -37,10 +36,20 @@ export default function (options) { path.node.arguments[0].value === 'traverse' ) { path.node.arguments[0].value = 'neotraverse/legacy'; + dirty = true; } }); - return root.toSource({ quote: 'single' }); + if (dirty) { + return { + code: root.toSource(options), + replacements: { + traverse: 'neotraverse', + }, + }; + } + + return file.source; }, }; } diff --git a/codemods/typed-array-buffer/index.js b/codemods/typed-array-buffer/index.js index a04e012..a09513c 100644 --- a/codemods/typed-array-buffer/index.js +++ b/codemods/typed-array-buffer/index.js @@ -2,20 +2,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport, transformInstanceProperty } from '../shared.js'; import { ALL_TYPED_ARRAY_OBJECTS } from '../CONSTANTS.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'typed-array-buffer', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirty = false; diff --git a/codemods/typed-array-byte-length/index.js b/codemods/typed-array-byte-length/index.js index 3c41174..c19e5d1 100644 --- a/codemods/typed-array-byte-length/index.js +++ b/codemods/typed-array-byte-length/index.js @@ -2,20 +2,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport, transformInstanceProperty } from '../shared.js'; import { ALL_TYPED_ARRAY_OBJECTS } from '../CONSTANTS.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'typed-array-byte-length', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirty = false; diff --git a/codemods/typed-array-byte-offset/index.js b/codemods/typed-array-byte-offset/index.js index 8c70cdd..104bf9d 100644 --- a/codemods/typed-array-byte-offset/index.js +++ b/codemods/typed-array-byte-offset/index.js @@ -2,20 +2,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport, transformInstanceProperty } from '../shared.js'; import { ALL_TYPED_ARRAY_OBJECTS } from '../CONSTANTS.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'typed-array-byte-offset', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirty = false; diff --git a/codemods/typed-array-length/index.js b/codemods/typed-array-length/index.js index f8c82f3..84692ca 100644 --- a/codemods/typed-array-length/index.js +++ b/codemods/typed-array-length/index.js @@ -2,20 +2,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport, transformInstanceProperty } from '../shared.js'; import { ALL_TYPED_ARRAY_OBJECTS } from '../CONSTANTS.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'typed-array-length', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirty = false; diff --git a/codemods/typedarray.prototype.slice/index.js b/codemods/typedarray.prototype.slice/index.js index c0fc1b1..3cd45a0 100644 --- a/codemods/typedarray.prototype.slice/index.js +++ b/codemods/typedarray.prototype.slice/index.js @@ -1,25 +1,17 @@ import jscodeshift from 'jscodeshift'; -import { - removeImport, - transformInstanceMethod, - transformInstanceProperty, -} from '../shared.js'; import { ALL_TYPED_ARRAY_OBJECTS } from '../CONSTANTS.js'; +import { removeImport, transformInstanceMethod } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'typedarray.prototype.slice', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); let dirty = false; diff --git a/codemods/xtend/index.js b/codemods/xtend/index.js index 3fcf4b8..ef7bef6 100644 --- a/codemods/xtend/index.js +++ b/codemods/xtend/index.js @@ -1,20 +1,16 @@ import jscodeshift from 'jscodeshift'; import { removeImport } from '../shared.js'; -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** - * @param {CodemodOptions} [options] * @returns {Codemod} */ -export default function (options) { +export default function () { return { name: 'xtend', to: 'native', - transform: ({ file }) => { + transform: ({ file, options }) => { const j = jscodeshift; const root = j(file.source); diff --git a/scripts/scaffold-codemod.js b/scripts/scaffold-codemod.js index f6550fd..60d07d6 100644 --- a/scripts/scaffold-codemod.js +++ b/scripts/scaffold-codemod.js @@ -28,10 +28,7 @@ fs.mkdirSync(`./codemods/${name}`); fs.writeFileSync( `./codemods/${name}/index.js`, ` -/** - * @typedef {import('../../types.js').Codemod} Codemod - * @typedef {import('../../types.js').CodemodOptions} CodemodOptions - */ +/** @import { Codemod, CodemodOptions } from '../../types.js' **/ /** * @param {CodemodOptions} [options] @@ -40,7 +37,7 @@ fs.writeFileSync( export default function(options) { return { name: '${name}', - transform: ({ file }) => { + transform: ({ file, options }) => { return ''; }, } diff --git a/scripts/updateFixtures.js b/scripts/updateFixtures.js new file mode 100644 index 0000000..732cc83 --- /dev/null +++ b/scripts/updateFixtures.js @@ -0,0 +1,14 @@ +import fs from 'node:fs'; + +const codemods = fs.readdirSync('./test/fixtures'); + +for (const codemod of codemods) { + const fixtures = fs.readdirSync(`./test/fixtures/${codemod}`); + + for (const fixture of fixtures) { + const after = `./test/fixtures/${codemod}/${fixture}/after.js`; + const result = `./test/fixtures/${codemod}/${fixture}/result.js`; + + fs.copyFileSync(result, after); + } +} diff --git a/test/codemod.test.js b/test/codemod.test.js index 41dbd88..03fd8b0 100644 --- a/test/codemod.test.js +++ b/test/codemod.test.js @@ -34,6 +34,11 @@ describe('codemod', async () => { source: before, }, }); + + if (typeof result !== 'string') { + result = result.code; + } + fs.writeFileSync( `./test/fixtures/${codemod.name}/${fixture}/result.js`, result, @@ -44,7 +49,11 @@ describe('codemod', async () => { { cause: e }, ); } - assert.strictEqual(result, after); + assert.strictEqual( + result, + after, + `./fixtures/${codemod.name}/${fixture}/result.js`, + ); }); } } diff --git a/test/fixtures/arraybuffer.prototype.slice/case-1/after.js b/test/fixtures/arraybuffer.prototype.slice/case-1/after.js index 280206d..bcdf568 100644 --- a/test/fixtures/arraybuffer.prototype.slice/case-1/after.js +++ b/test/fixtures/arraybuffer.prototype.slice/case-1/after.js @@ -1,5 +1,5 @@ const buffer = new ArrayBuffer(16); -const sliced1 = new Int32Array(buffer.slice(4, 12)); -const sliced2 = new Int32Array(buffer.slice(-2)); -const sliced3 = new Int32Array(new ArrayBuffer(16).slice(-2)); +new Int32Array(buffer.slice(4, 12)); +new Int32Array(buffer.slice(-2)); +new Int32Array(new ArrayBuffer(16).slice(-2)); diff --git a/test/fixtures/arraybuffer.prototype.slice/case-1/before.js b/test/fixtures/arraybuffer.prototype.slice/case-1/before.js index 42a7eb3..190e9a2 100644 --- a/test/fixtures/arraybuffer.prototype.slice/case-1/before.js +++ b/test/fixtures/arraybuffer.prototype.slice/case-1/before.js @@ -2,6 +2,6 @@ const slice = require("arraybuffer.prototype.slice"); const buffer = new ArrayBuffer(16); -const sliced1 = new Int32Array(slice(buffer, 4, 12)); -const sliced2 = new Int32Array(slice(buffer, -2)); -const sliced3 = new Int32Array(slice(new ArrayBuffer(16), -2)); +new Int32Array(slice(buffer, 4, 12)); +new Int32Array(slice(buffer, -2)); +new Int32Array(slice(new ArrayBuffer(16), -2)); diff --git a/test/fixtures/arraybuffer.prototype.slice/case-1/result.js b/test/fixtures/arraybuffer.prototype.slice/case-1/result.js index 280206d..bcdf568 100644 --- a/test/fixtures/arraybuffer.prototype.slice/case-1/result.js +++ b/test/fixtures/arraybuffer.prototype.slice/case-1/result.js @@ -1,5 +1,5 @@ const buffer = new ArrayBuffer(16); -const sliced1 = new Int32Array(buffer.slice(4, 12)); -const sliced2 = new Int32Array(buffer.slice(-2)); -const sliced3 = new Int32Array(new ArrayBuffer(16).slice(-2)); +new Int32Array(buffer.slice(4, 12)); +new Int32Array(buffer.slice(-2)); +new Int32Array(new ArrayBuffer(16).slice(-2)); diff --git a/test/fixtures/chalk/esm/after.js b/test/fixtures/chalk/esm/after.js index 1b33a47..241d2aa 100644 --- a/test/fixtures/chalk/esm/after.js +++ b/test/fixtures/chalk/esm/after.js @@ -1,4 +1,4 @@ -import * as pc from 'picocolors'; +import pc from 'picocolors'; pc.red(); pc.red('im red'); diff --git a/test/fixtures/chalk/esm/result.js b/test/fixtures/chalk/esm/result.js index 1b33a47..241d2aa 100644 --- a/test/fixtures/chalk/esm/result.js +++ b/test/fixtures/chalk/esm/result.js @@ -1,4 +1,4 @@ -import * as pc from 'picocolors'; +import pc from 'picocolors'; pc.red(); pc.red('im red'); diff --git a/test/fixtures/is-boolean-object/case-1/after.js b/test/fixtures/is-boolean-object/case-1/after.js index a368a3d..5aaad99 100644 --- a/test/fixtures/is-boolean-object/case-1/after.js +++ b/test/fixtures/is-boolean-object/case-1/after.js @@ -1,20 +1,20 @@ var assert = require('assert'); -assert.notOk(Object.prototype.toString.call(undefined) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(null) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call('foo') === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(function () {}) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call([]) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call({}) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(/a/g) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(new Date()) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(42) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(NaN) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(Infinity) === '[object Boolean]'); +assert.notOk(Object.prototype.toString.call(undefined) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(null) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call('foo') === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(function () {}) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call([]) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call({}) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(/a/g) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(new Date()) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(42) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(NaN) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(Infinity) === "[object Boolean]"); -assert.ok(Object.prototype.toString.call(new Boolean(42)) === '[object Boolean]'); -assert.ok(Object.prototype.toString.call(false) === '[object Boolean]'); -assert.ok(Object.prototype.toString.call(Object(false)) === '[object Boolean]'); -assert.ok(Object.prototype.toString.call(true) === '[object Boolean]'); -assert.ok(Object.prototype.toString.call(Object(true)) === '[object Boolean]'); +assert.ok(Object.prototype.toString.call(new Boolean(42)) === "[object Boolean]"); +assert.ok(Object.prototype.toString.call(false) === "[object Boolean]"); +assert.ok(Object.prototype.toString.call(Object(false)) === "[object Boolean]"); +assert.ok(Object.prototype.toString.call(true) === "[object Boolean]"); +assert.ok(Object.prototype.toString.call(Object(true)) === "[object Boolean]"); diff --git a/test/fixtures/is-boolean-object/case-1/result.js b/test/fixtures/is-boolean-object/case-1/result.js index a368a3d..5aaad99 100644 --- a/test/fixtures/is-boolean-object/case-1/result.js +++ b/test/fixtures/is-boolean-object/case-1/result.js @@ -1,20 +1,20 @@ var assert = require('assert'); -assert.notOk(Object.prototype.toString.call(undefined) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(null) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call('foo') === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(function () {}) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call([]) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call({}) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(/a/g) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(new Date()) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(42) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(NaN) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(Infinity) === '[object Boolean]'); +assert.notOk(Object.prototype.toString.call(undefined) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(null) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call('foo') === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(function () {}) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call([]) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call({}) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(/a/g) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(new Date()) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(42) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(NaN) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(Infinity) === "[object Boolean]"); -assert.ok(Object.prototype.toString.call(new Boolean(42)) === '[object Boolean]'); -assert.ok(Object.prototype.toString.call(false) === '[object Boolean]'); -assert.ok(Object.prototype.toString.call(Object(false)) === '[object Boolean]'); -assert.ok(Object.prototype.toString.call(true) === '[object Boolean]'); -assert.ok(Object.prototype.toString.call(Object(true)) === '[object Boolean]'); +assert.ok(Object.prototype.toString.call(new Boolean(42)) === "[object Boolean]"); +assert.ok(Object.prototype.toString.call(false) === "[object Boolean]"); +assert.ok(Object.prototype.toString.call(Object(false)) === "[object Boolean]"); +assert.ok(Object.prototype.toString.call(true) === "[object Boolean]"); +assert.ok(Object.prototype.toString.call(Object(true)) === "[object Boolean]"); diff --git a/test/fixtures/is-boolean-object/case-2/after.js b/test/fixtures/is-boolean-object/case-2/after.js index 3bbb2ea..b268955 100644 --- a/test/fixtures/is-boolean-object/case-2/after.js +++ b/test/fixtures/is-boolean-object/case-2/after.js @@ -1,20 +1,20 @@ import assert from 'assert'; -assert.notOk(Object.prototype.toString.call(undefined) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(null) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call('foo') === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(function () {}) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call([]) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call({}) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(/a/g) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(new Date()) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(42) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(NaN) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(Infinity) === '[object Boolean]'); +assert.notOk(Object.prototype.toString.call(undefined) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(null) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call('foo') === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(function () {}) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call([]) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call({}) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(/a/g) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(new Date()) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(42) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(NaN) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(Infinity) === "[object Boolean]"); -assert.ok(Object.prototype.toString.call(new Boolean(42)) === '[object Boolean]'); -assert.ok(Object.prototype.toString.call(false) === '[object Boolean]'); -assert.ok(Object.prototype.toString.call(Object(false)) === '[object Boolean]'); -assert.ok(Object.prototype.toString.call(true) === '[object Boolean]'); -assert.ok(Object.prototype.toString.call(Object(true)) === '[object Boolean]'); +assert.ok(Object.prototype.toString.call(new Boolean(42)) === "[object Boolean]"); +assert.ok(Object.prototype.toString.call(false) === "[object Boolean]"); +assert.ok(Object.prototype.toString.call(Object(false)) === "[object Boolean]"); +assert.ok(Object.prototype.toString.call(true) === "[object Boolean]"); +assert.ok(Object.prototype.toString.call(Object(true)) === "[object Boolean]"); diff --git a/test/fixtures/is-boolean-object/case-2/result.js b/test/fixtures/is-boolean-object/case-2/result.js index 3bbb2ea..b268955 100644 --- a/test/fixtures/is-boolean-object/case-2/result.js +++ b/test/fixtures/is-boolean-object/case-2/result.js @@ -1,20 +1,20 @@ import assert from 'assert'; -assert.notOk(Object.prototype.toString.call(undefined) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(null) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call('foo') === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(function () {}) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call([]) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call({}) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(/a/g) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(new Date()) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(42) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(NaN) === '[object Boolean]'); -assert.notOk(Object.prototype.toString.call(Infinity) === '[object Boolean]'); +assert.notOk(Object.prototype.toString.call(undefined) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(null) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call('foo') === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(function () {}) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call([]) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call({}) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(/a/g) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(new Date()) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(42) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(NaN) === "[object Boolean]"); +assert.notOk(Object.prototype.toString.call(Infinity) === "[object Boolean]"); -assert.ok(Object.prototype.toString.call(new Boolean(42)) === '[object Boolean]'); -assert.ok(Object.prototype.toString.call(false) === '[object Boolean]'); -assert.ok(Object.prototype.toString.call(Object(false)) === '[object Boolean]'); -assert.ok(Object.prototype.toString.call(true) === '[object Boolean]'); -assert.ok(Object.prototype.toString.call(Object(true)) === '[object Boolean]'); +assert.ok(Object.prototype.toString.call(new Boolean(42)) === "[object Boolean]"); +assert.ok(Object.prototype.toString.call(false) === "[object Boolean]"); +assert.ok(Object.prototype.toString.call(Object(false)) === "[object Boolean]"); +assert.ok(Object.prototype.toString.call(true) === "[object Boolean]"); +assert.ok(Object.prototype.toString.call(Object(true)) === "[object Boolean]"); diff --git a/test/fixtures/is-date-object/case-1/after.js b/test/fixtures/is-date-object/case-1/after.js index 85c3f5d..b3390fd 100644 --- a/test/fixtures/is-date-object/case-1/after.js +++ b/test/fixtures/is-date-object/case-1/after.js @@ -1,15 +1,15 @@ var assert = require('assert'); -assert.notOk(Object.prototype.toString.call(undefined) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(null) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(false) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(true) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(42) === '[object Date]'); -assert.notOk(Object.prototype.toString.call('foo') === '[object Date]'); -assert.notOk(Object.prototype.toString.call(function () {}) === '[object Date]'); -assert.notOk(Object.prototype.toString.call([]) === '[object Date]'); -assert.notOk(Object.prototype.toString.call({}) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(/a/g) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === '[object Date]'); +assert.notOk(Object.prototype.toString.call(undefined) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(null) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(false) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(true) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(42) === "[object Date]"); +assert.notOk(Object.prototype.toString.call('foo') === "[object Date]"); +assert.notOk(Object.prototype.toString.call(function () {}) === "[object Date]"); +assert.notOk(Object.prototype.toString.call([]) === "[object Date]"); +assert.notOk(Object.prototype.toString.call({}) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(/a/g) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === "[object Date]"); -assert.ok(Object.prototype.toString.call(new Date()) === '[object Date]'); +assert.ok(Object.prototype.toString.call(new Date()) === "[object Date]"); diff --git a/test/fixtures/is-date-object/case-1/result.js b/test/fixtures/is-date-object/case-1/result.js index 85c3f5d..b3390fd 100644 --- a/test/fixtures/is-date-object/case-1/result.js +++ b/test/fixtures/is-date-object/case-1/result.js @@ -1,15 +1,15 @@ var assert = require('assert'); -assert.notOk(Object.prototype.toString.call(undefined) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(null) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(false) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(true) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(42) === '[object Date]'); -assert.notOk(Object.prototype.toString.call('foo') === '[object Date]'); -assert.notOk(Object.prototype.toString.call(function () {}) === '[object Date]'); -assert.notOk(Object.prototype.toString.call([]) === '[object Date]'); -assert.notOk(Object.prototype.toString.call({}) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(/a/g) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === '[object Date]'); +assert.notOk(Object.prototype.toString.call(undefined) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(null) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(false) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(true) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(42) === "[object Date]"); +assert.notOk(Object.prototype.toString.call('foo') === "[object Date]"); +assert.notOk(Object.prototype.toString.call(function () {}) === "[object Date]"); +assert.notOk(Object.prototype.toString.call([]) === "[object Date]"); +assert.notOk(Object.prototype.toString.call({}) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(/a/g) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === "[object Date]"); -assert.ok(Object.prototype.toString.call(new Date()) === '[object Date]'); +assert.ok(Object.prototype.toString.call(new Date()) === "[object Date]"); diff --git a/test/fixtures/is-date-object/case-2/after.js b/test/fixtures/is-date-object/case-2/after.js index ff9886b..fece401 100644 --- a/test/fixtures/is-date-object/case-2/after.js +++ b/test/fixtures/is-date-object/case-2/after.js @@ -1,15 +1,15 @@ import assert from 'assert'; -assert.notOk(Object.prototype.toString.call(undefined) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(null) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(false) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(true) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(42) === '[object Date]'); -assert.notOk(Object.prototype.toString.call('foo') === '[object Date]'); -assert.notOk(Object.prototype.toString.call(function () {}) === '[object Date]'); -assert.notOk(Object.prototype.toString.call([]) === '[object Date]'); -assert.notOk(Object.prototype.toString.call({}) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(/a/g) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === '[object Date]'); +assert.notOk(Object.prototype.toString.call(undefined) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(null) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(false) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(true) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(42) === "[object Date]"); +assert.notOk(Object.prototype.toString.call('foo') === "[object Date]"); +assert.notOk(Object.prototype.toString.call(function () {}) === "[object Date]"); +assert.notOk(Object.prototype.toString.call([]) === "[object Date]"); +assert.notOk(Object.prototype.toString.call({}) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(/a/g) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === "[object Date]"); -assert.ok(Object.prototype.toString.call(new Date()) === '[object Date]'); +assert.ok(Object.prototype.toString.call(new Date()) === "[object Date]"); diff --git a/test/fixtures/is-date-object/case-2/result.js b/test/fixtures/is-date-object/case-2/result.js index ff9886b..fece401 100644 --- a/test/fixtures/is-date-object/case-2/result.js +++ b/test/fixtures/is-date-object/case-2/result.js @@ -1,15 +1,15 @@ import assert from 'assert'; -assert.notOk(Object.prototype.toString.call(undefined) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(null) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(false) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(true) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(42) === '[object Date]'); -assert.notOk(Object.prototype.toString.call('foo') === '[object Date]'); -assert.notOk(Object.prototype.toString.call(function () {}) === '[object Date]'); -assert.notOk(Object.prototype.toString.call([]) === '[object Date]'); -assert.notOk(Object.prototype.toString.call({}) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(/a/g) === '[object Date]'); -assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === '[object Date]'); +assert.notOk(Object.prototype.toString.call(undefined) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(null) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(false) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(true) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(42) === "[object Date]"); +assert.notOk(Object.prototype.toString.call('foo') === "[object Date]"); +assert.notOk(Object.prototype.toString.call(function () {}) === "[object Date]"); +assert.notOk(Object.prototype.toString.call([]) === "[object Date]"); +assert.notOk(Object.prototype.toString.call({}) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(/a/g) === "[object Date]"); +assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === "[object Date]"); -assert.ok(Object.prototype.toString.call(new Date()) === '[object Date]'); +assert.ok(Object.prototype.toString.call(new Date()) === "[object Date]"); diff --git a/test/fixtures/is-even/case-1/after.js b/test/fixtures/is-even/case-1/after.js index 6b4729e..4394922 100644 --- a/test/fixtures/is-even/case-1/after.js +++ b/test/fixtures/is-even/case-1/after.js @@ -1,8 +1,8 @@ (0 % 2 === 0); //=> true -('1' % 2 === 0); +("1" % 2 === 0); //=> false (2 % 2 === 0); //=> true -('3' % 2 === 0); +("3" % 2 === 0); //=> false diff --git a/test/fixtures/is-even/case-1/result.js b/test/fixtures/is-even/case-1/result.js index 6b4729e..4394922 100644 --- a/test/fixtures/is-even/case-1/result.js +++ b/test/fixtures/is-even/case-1/result.js @@ -1,8 +1,8 @@ (0 % 2 === 0); //=> true -('1' % 2 === 0); +("1" % 2 === 0); //=> false (2 % 2 === 0); //=> true -('3' % 2 === 0); +("3" % 2 === 0); //=> false diff --git a/test/fixtures/is-number-object/case-1/after.js b/test/fixtures/is-number-object/case-1/after.js index f367a49..c748f78 100644 --- a/test/fixtures/is-number-object/case-1/after.js +++ b/test/fixtures/is-number-object/case-1/after.js @@ -1,18 +1,18 @@ var assert = require('assert'); -assert.notOk(Object.prototype.toString.call(undefined) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(null) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(false) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(true) === '[object Number]'); -assert.notOk(Object.prototype.toString.call('foo') === '[object Number]'); -assert.notOk(Object.prototype.toString.call(function () {}) === '[object Number]'); -assert.notOk(Object.prototype.toString.call([]) === '[object Number]'); -assert.notOk(Object.prototype.toString.call({}) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(/a/g) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(new Date()) === '[object Number]'); +assert.notOk(Object.prototype.toString.call(undefined) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(null) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(false) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(true) === "[object Number]"); +assert.notOk(Object.prototype.toString.call('foo') === "[object Number]"); +assert.notOk(Object.prototype.toString.call(function () {}) === "[object Number]"); +assert.notOk(Object.prototype.toString.call([]) === "[object Number]"); +assert.notOk(Object.prototype.toString.call({}) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(/a/g) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(new Date()) === "[object Number]"); -assert.ok(Object.prototype.toString.call(42) === '[object Number]'); -assert.ok(Object.prototype.toString.call(NaN) === '[object Number]'); -assert.ok(Object.prototype.toString.call(Infinity) === '[object Number]'); -assert.ok(Object.prototype.toString.call(new Number(42)) === '[object Number]'); +assert.ok(Object.prototype.toString.call(42) === "[object Number]"); +assert.ok(Object.prototype.toString.call(NaN) === "[object Number]"); +assert.ok(Object.prototype.toString.call(Infinity) === "[object Number]"); +assert.ok(Object.prototype.toString.call(new Number(42)) === "[object Number]"); diff --git a/test/fixtures/is-number-object/case-1/result.js b/test/fixtures/is-number-object/case-1/result.js index f367a49..c748f78 100644 --- a/test/fixtures/is-number-object/case-1/result.js +++ b/test/fixtures/is-number-object/case-1/result.js @@ -1,18 +1,18 @@ var assert = require('assert'); -assert.notOk(Object.prototype.toString.call(undefined) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(null) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(false) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(true) === '[object Number]'); -assert.notOk(Object.prototype.toString.call('foo') === '[object Number]'); -assert.notOk(Object.prototype.toString.call(function () {}) === '[object Number]'); -assert.notOk(Object.prototype.toString.call([]) === '[object Number]'); -assert.notOk(Object.prototype.toString.call({}) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(/a/g) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(new Date()) === '[object Number]'); +assert.notOk(Object.prototype.toString.call(undefined) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(null) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(false) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(true) === "[object Number]"); +assert.notOk(Object.prototype.toString.call('foo') === "[object Number]"); +assert.notOk(Object.prototype.toString.call(function () {}) === "[object Number]"); +assert.notOk(Object.prototype.toString.call([]) === "[object Number]"); +assert.notOk(Object.prototype.toString.call({}) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(/a/g) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(new Date()) === "[object Number]"); -assert.ok(Object.prototype.toString.call(42) === '[object Number]'); -assert.ok(Object.prototype.toString.call(NaN) === '[object Number]'); -assert.ok(Object.prototype.toString.call(Infinity) === '[object Number]'); -assert.ok(Object.prototype.toString.call(new Number(42)) === '[object Number]'); +assert.ok(Object.prototype.toString.call(42) === "[object Number]"); +assert.ok(Object.prototype.toString.call(NaN) === "[object Number]"); +assert.ok(Object.prototype.toString.call(Infinity) === "[object Number]"); +assert.ok(Object.prototype.toString.call(new Number(42)) === "[object Number]"); diff --git a/test/fixtures/is-number-object/case-2/after.js b/test/fixtures/is-number-object/case-2/after.js index 5d7cd19..b1b8460 100644 --- a/test/fixtures/is-number-object/case-2/after.js +++ b/test/fixtures/is-number-object/case-2/after.js @@ -1,18 +1,18 @@ import assert from 'assert'; -assert.notOk(Object.prototype.toString.call(undefined) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(null) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(false) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(true) === '[object Number]'); -assert.notOk(Object.prototype.toString.call('foo') === '[object Number]'); -assert.notOk(Object.prototype.toString.call(function () {}) === '[object Number]'); -assert.notOk(Object.prototype.toString.call([]) === '[object Number]'); -assert.notOk(Object.prototype.toString.call({}) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(/a/g) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(new Date()) === '[object Number]'); +assert.notOk(Object.prototype.toString.call(undefined) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(null) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(false) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(true) === "[object Number]"); +assert.notOk(Object.prototype.toString.call('foo') === "[object Number]"); +assert.notOk(Object.prototype.toString.call(function () {}) === "[object Number]"); +assert.notOk(Object.prototype.toString.call([]) === "[object Number]"); +assert.notOk(Object.prototype.toString.call({}) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(/a/g) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(new Date()) === "[object Number]"); -assert.ok(Object.prototype.toString.call(42) === '[object Number]'); -assert.ok(Object.prototype.toString.call(NaN) === '[object Number]'); -assert.ok(Object.prototype.toString.call(Infinity) === '[object Number]'); -assert.ok(Object.prototype.toString.call(new Number(42)) === '[object Number]'); +assert.ok(Object.prototype.toString.call(42) === "[object Number]"); +assert.ok(Object.prototype.toString.call(NaN) === "[object Number]"); +assert.ok(Object.prototype.toString.call(Infinity) === "[object Number]"); +assert.ok(Object.prototype.toString.call(new Number(42)) === "[object Number]"); diff --git a/test/fixtures/is-number-object/case-2/result.js b/test/fixtures/is-number-object/case-2/result.js index 5d7cd19..b1b8460 100644 --- a/test/fixtures/is-number-object/case-2/result.js +++ b/test/fixtures/is-number-object/case-2/result.js @@ -1,18 +1,18 @@ import assert from 'assert'; -assert.notOk(Object.prototype.toString.call(undefined) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(null) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(false) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(true) === '[object Number]'); -assert.notOk(Object.prototype.toString.call('foo') === '[object Number]'); -assert.notOk(Object.prototype.toString.call(function () {}) === '[object Number]'); -assert.notOk(Object.prototype.toString.call([]) === '[object Number]'); -assert.notOk(Object.prototype.toString.call({}) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(/a/g) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === '[object Number]'); -assert.notOk(Object.prototype.toString.call(new Date()) === '[object Number]'); +assert.notOk(Object.prototype.toString.call(undefined) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(null) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(false) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(true) === "[object Number]"); +assert.notOk(Object.prototype.toString.call('foo') === "[object Number]"); +assert.notOk(Object.prototype.toString.call(function () {}) === "[object Number]"); +assert.notOk(Object.prototype.toString.call([]) === "[object Number]"); +assert.notOk(Object.prototype.toString.call({}) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(/a/g) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === "[object Number]"); +assert.notOk(Object.prototype.toString.call(new Date()) === "[object Number]"); -assert.ok(Object.prototype.toString.call(42) === '[object Number]'); -assert.ok(Object.prototype.toString.call(NaN) === '[object Number]'); -assert.ok(Object.prototype.toString.call(Infinity) === '[object Number]'); -assert.ok(Object.prototype.toString.call(new Number(42)) === '[object Number]'); +assert.ok(Object.prototype.toString.call(42) === "[object Number]"); +assert.ok(Object.prototype.toString.call(NaN) === "[object Number]"); +assert.ok(Object.prototype.toString.call(Infinity) === "[object Number]"); +assert.ok(Object.prototype.toString.call(new Number(42)) === "[object Number]"); diff --git a/test/fixtures/is-number/case-1/after.js b/test/fixtures/is-number/case-1/after.js index ca16ad3..6d6ae7d 100644 --- a/test/fixtures/is-number/case-1/after.js +++ b/test/fixtures/is-number/case-1/after.js @@ -1,21 +1,21 @@ -console.log((typeof 5e3 === 'number' || typeof 5e3 === 'string' && Number.isFinite(+5e3))); -console.log((typeof 0xff === 'number' || typeof 0xff === 'string' && Number.isFinite(+0xff))); -console.log((typeof -1.1 === 'number' || typeof -1.1 === 'string' && Number.isFinite(+-1.1))); -console.log((typeof 0 === 'number' || typeof 0 === 'string' && Number.isFinite(+0))); -console.log((typeof 1 === 'number' || typeof 1 === 'string' && Number.isFinite(+1))); -console.log((typeof 1.1 === 'number' || typeof 1.1 === 'string' && Number.isFinite(+1.1))); -console.log((typeof 10 === 'number' || typeof 10 === 'string' && Number.isFinite(+10))); -console.log((typeof 10.1 === 'number' || typeof 10.1 === 'string' && Number.isFinite(+10.1))); -console.log((typeof 100 === 'number' || typeof 100 === 'string' && Number.isFinite(+100))); -console.log((typeof '-1.1' === 'number' || typeof '-1.1' === 'string' && Number.isFinite(+'-1.1'))); -console.log((typeof '0' === 'number' || typeof '0' === 'string' && Number.isFinite(+'0'))); -console.log((typeof '012' === 'number' || typeof '012' === 'string' && Number.isFinite(+'012'))); -console.log((typeof '0xff' === 'number' || typeof '0xff' === 'string' && Number.isFinite(+'0xff'))); -console.log((typeof '1' === 'number' || typeof '1' === 'string' && Number.isFinite(+'1'))); -console.log((typeof '1.1' === 'number' || typeof '1.1' === 'string' && Number.isFinite(+'1.1'))); -console.log((typeof '10' === 'number' || typeof '10' === 'string' && Number.isFinite(+'10'))); -console.log((typeof '10.10' === 'number' || typeof '10.10' === 'string' && Number.isFinite(+'10.10'))); -console.log((typeof '100' === 'number' || typeof '100' === 'string' && Number.isFinite(+'100'))); -console.log((typeof '5e3' === 'number' || typeof '5e3' === 'string' && Number.isFinite(+'5e3'))); -console.log((typeof parseInt('012') === 'number' || typeof parseInt('012') === 'string' && Number.isFinite(+parseInt('012')))); -console.log((typeof parseFloat('012') === 'number' || typeof parseFloat('012') === 'string' && Number.isFinite(+parseFloat('012')))); \ No newline at end of file +console.log((typeof 5e3 === "number" || typeof 5e3 === "string" && Number.isFinite(+5e3))); +console.log((typeof 0xff === "number" || typeof 0xff === "string" && Number.isFinite(+0xff))); +console.log((typeof -1.1 === "number" || typeof -1.1 === "string" && Number.isFinite(+-1.1))); +console.log((typeof 0 === "number" || typeof 0 === "string" && Number.isFinite(+0))); +console.log((typeof 1 === "number" || typeof 1 === "string" && Number.isFinite(+1))); +console.log((typeof 1.1 === "number" || typeof 1.1 === "string" && Number.isFinite(+1.1))); +console.log((typeof 10 === "number" || typeof 10 === "string" && Number.isFinite(+10))); +console.log((typeof 10.1 === "number" || typeof 10.1 === "string" && Number.isFinite(+10.1))); +console.log((typeof 100 === "number" || typeof 100 === "string" && Number.isFinite(+100))); +console.log((typeof '-1.1' === "number" || typeof '-1.1' === "string" && Number.isFinite(+'-1.1'))); +console.log((typeof '0' === "number" || typeof '0' === "string" && Number.isFinite(+'0'))); +console.log((typeof '012' === "number" || typeof '012' === "string" && Number.isFinite(+'012'))); +console.log((typeof '0xff' === "number" || typeof '0xff' === "string" && Number.isFinite(+'0xff'))); +console.log((typeof '1' === "number" || typeof '1' === "string" && Number.isFinite(+'1'))); +console.log((typeof '1.1' === "number" || typeof '1.1' === "string" && Number.isFinite(+'1.1'))); +console.log((typeof '10' === "number" || typeof '10' === "string" && Number.isFinite(+'10'))); +console.log((typeof '10.10' === "number" || typeof '10.10' === "string" && Number.isFinite(+'10.10'))); +console.log((typeof '100' === "number" || typeof '100' === "string" && Number.isFinite(+'100'))); +console.log((typeof '5e3' === "number" || typeof '5e3' === "string" && Number.isFinite(+'5e3'))); +console.log((typeof parseInt('012') === "number" || typeof parseInt('012') === "string" && Number.isFinite(+parseInt('012')))); +console.log((typeof parseFloat('012') === "number" || typeof parseFloat('012') === "string" && Number.isFinite(+parseFloat('012')))); \ No newline at end of file diff --git a/test/fixtures/is-number/case-1/result.js b/test/fixtures/is-number/case-1/result.js index ca16ad3..6d6ae7d 100644 --- a/test/fixtures/is-number/case-1/result.js +++ b/test/fixtures/is-number/case-1/result.js @@ -1,21 +1,21 @@ -console.log((typeof 5e3 === 'number' || typeof 5e3 === 'string' && Number.isFinite(+5e3))); -console.log((typeof 0xff === 'number' || typeof 0xff === 'string' && Number.isFinite(+0xff))); -console.log((typeof -1.1 === 'number' || typeof -1.1 === 'string' && Number.isFinite(+-1.1))); -console.log((typeof 0 === 'number' || typeof 0 === 'string' && Number.isFinite(+0))); -console.log((typeof 1 === 'number' || typeof 1 === 'string' && Number.isFinite(+1))); -console.log((typeof 1.1 === 'number' || typeof 1.1 === 'string' && Number.isFinite(+1.1))); -console.log((typeof 10 === 'number' || typeof 10 === 'string' && Number.isFinite(+10))); -console.log((typeof 10.1 === 'number' || typeof 10.1 === 'string' && Number.isFinite(+10.1))); -console.log((typeof 100 === 'number' || typeof 100 === 'string' && Number.isFinite(+100))); -console.log((typeof '-1.1' === 'number' || typeof '-1.1' === 'string' && Number.isFinite(+'-1.1'))); -console.log((typeof '0' === 'number' || typeof '0' === 'string' && Number.isFinite(+'0'))); -console.log((typeof '012' === 'number' || typeof '012' === 'string' && Number.isFinite(+'012'))); -console.log((typeof '0xff' === 'number' || typeof '0xff' === 'string' && Number.isFinite(+'0xff'))); -console.log((typeof '1' === 'number' || typeof '1' === 'string' && Number.isFinite(+'1'))); -console.log((typeof '1.1' === 'number' || typeof '1.1' === 'string' && Number.isFinite(+'1.1'))); -console.log((typeof '10' === 'number' || typeof '10' === 'string' && Number.isFinite(+'10'))); -console.log((typeof '10.10' === 'number' || typeof '10.10' === 'string' && Number.isFinite(+'10.10'))); -console.log((typeof '100' === 'number' || typeof '100' === 'string' && Number.isFinite(+'100'))); -console.log((typeof '5e3' === 'number' || typeof '5e3' === 'string' && Number.isFinite(+'5e3'))); -console.log((typeof parseInt('012') === 'number' || typeof parseInt('012') === 'string' && Number.isFinite(+parseInt('012')))); -console.log((typeof parseFloat('012') === 'number' || typeof parseFloat('012') === 'string' && Number.isFinite(+parseFloat('012')))); \ No newline at end of file +console.log((typeof 5e3 === "number" || typeof 5e3 === "string" && Number.isFinite(+5e3))); +console.log((typeof 0xff === "number" || typeof 0xff === "string" && Number.isFinite(+0xff))); +console.log((typeof -1.1 === "number" || typeof -1.1 === "string" && Number.isFinite(+-1.1))); +console.log((typeof 0 === "number" || typeof 0 === "string" && Number.isFinite(+0))); +console.log((typeof 1 === "number" || typeof 1 === "string" && Number.isFinite(+1))); +console.log((typeof 1.1 === "number" || typeof 1.1 === "string" && Number.isFinite(+1.1))); +console.log((typeof 10 === "number" || typeof 10 === "string" && Number.isFinite(+10))); +console.log((typeof 10.1 === "number" || typeof 10.1 === "string" && Number.isFinite(+10.1))); +console.log((typeof 100 === "number" || typeof 100 === "string" && Number.isFinite(+100))); +console.log((typeof '-1.1' === "number" || typeof '-1.1' === "string" && Number.isFinite(+'-1.1'))); +console.log((typeof '0' === "number" || typeof '0' === "string" && Number.isFinite(+'0'))); +console.log((typeof '012' === "number" || typeof '012' === "string" && Number.isFinite(+'012'))); +console.log((typeof '0xff' === "number" || typeof '0xff' === "string" && Number.isFinite(+'0xff'))); +console.log((typeof '1' === "number" || typeof '1' === "string" && Number.isFinite(+'1'))); +console.log((typeof '1.1' === "number" || typeof '1.1' === "string" && Number.isFinite(+'1.1'))); +console.log((typeof '10' === "number" || typeof '10' === "string" && Number.isFinite(+'10'))); +console.log((typeof '10.10' === "number" || typeof '10.10' === "string" && Number.isFinite(+'10.10'))); +console.log((typeof '100' === "number" || typeof '100' === "string" && Number.isFinite(+'100'))); +console.log((typeof '5e3' === "number" || typeof '5e3' === "string" && Number.isFinite(+'5e3'))); +console.log((typeof parseInt('012') === "number" || typeof parseInt('012') === "string" && Number.isFinite(+parseInt('012')))); +console.log((typeof parseFloat('012') === "number" || typeof parseFloat('012') === "string" && Number.isFinite(+parseFloat('012')))); \ No newline at end of file diff --git a/test/fixtures/is-primitive/case-1/after.js b/test/fixtures/is-primitive/case-1/after.js index ca105dc..9dfeae4 100644 --- a/test/fixtures/is-primitive/case-1/after.js +++ b/test/fixtures/is-primitive/case-1/after.js @@ -18,9 +18,9 @@ assert.ok(isPrimitive('foo')); assert.notOk(isPrimitive(Object('foo'))); function isPrimitive(val) { - if (typeof val === 'object') { + if (typeof val === "object") { return val === null; } - return typeof val !== 'function'; + return typeof val !== "function"; } diff --git a/test/fixtures/is-primitive/case-1/result.js b/test/fixtures/is-primitive/case-1/result.js index ca105dc..9dfeae4 100644 --- a/test/fixtures/is-primitive/case-1/result.js +++ b/test/fixtures/is-primitive/case-1/result.js @@ -18,9 +18,9 @@ assert.ok(isPrimitive('foo')); assert.notOk(isPrimitive(Object('foo'))); function isPrimitive(val) { - if (typeof val === 'object') { + if (typeof val === "object") { return val === null; } - return typeof val !== 'function'; + return typeof val !== "function"; } diff --git a/test/fixtures/is-string/case-1 copy/after.js b/test/fixtures/is-string/case-1 copy/after.js index 321b252..ba93d1f 100644 --- a/test/fixtures/is-string/case-1 copy/after.js +++ b/test/fixtures/is-string/case-1 copy/after.js @@ -1,19 +1,19 @@ import assert from 'assert'; -assert.notOk(Object.prototype.toString.call(undefined) === '[object String]'); -assert.notOk(Object.prototype.toString.call(null) === '[object String]'); -assert.notOk(Object.prototype.toString.call(false) === '[object String]'); -assert.notOk(Object.prototype.toString.call(true) === '[object String]'); -assert.notOk(Object.prototype.toString.call(function () {}) === '[object String]'); -assert.notOk(Object.prototype.toString.call([]) === '[object String]'); -assert.notOk(Object.prototype.toString.call({}) === '[object String]'); -assert.notOk(Object.prototype.toString.call(/a/g) === '[object String]'); -assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === '[object String]'); -assert.notOk(Object.prototype.toString.call(new Date()) === '[object String]'); -assert.notOk(Object.prototype.toString.call(42) === '[object String]'); -assert.notOk(Object.prototype.toString.call(NaN) === '[object String]'); -assert.notOk(Object.prototype.toString.call(Infinity) === '[object String]'); -assert.notOk(Object.prototype.toString.call(new Number(42)) === '[object String]'); +assert.notOk(Object.prototype.toString.call(undefined) === "[object String]"); +assert.notOk(Object.prototype.toString.call(null) === "[object String]"); +assert.notOk(Object.prototype.toString.call(false) === "[object String]"); +assert.notOk(Object.prototype.toString.call(true) === "[object String]"); +assert.notOk(Object.prototype.toString.call(function () {}) === "[object String]"); +assert.notOk(Object.prototype.toString.call([]) === "[object String]"); +assert.notOk(Object.prototype.toString.call({}) === "[object String]"); +assert.notOk(Object.prototype.toString.call(/a/g) === "[object String]"); +assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === "[object String]"); +assert.notOk(Object.prototype.toString.call(new Date()) === "[object String]"); +assert.notOk(Object.prototype.toString.call(42) === "[object String]"); +assert.notOk(Object.prototype.toString.call(NaN) === "[object String]"); +assert.notOk(Object.prototype.toString.call(Infinity) === "[object String]"); +assert.notOk(Object.prototype.toString.call(new Number(42)) === "[object String]"); -assert.ok(Object.prototype.toString.call('foo') === '[object String]'); -assert.ok(Object.prototype.toString.call(Object('foo')) === '[object String]'); +assert.ok(Object.prototype.toString.call('foo') === "[object String]"); +assert.ok(Object.prototype.toString.call(Object('foo')) === "[object String]"); diff --git a/test/fixtures/is-string/case-1 copy/result.js b/test/fixtures/is-string/case-1 copy/result.js index 321b252..ba93d1f 100644 --- a/test/fixtures/is-string/case-1 copy/result.js +++ b/test/fixtures/is-string/case-1 copy/result.js @@ -1,19 +1,19 @@ import assert from 'assert'; -assert.notOk(Object.prototype.toString.call(undefined) === '[object String]'); -assert.notOk(Object.prototype.toString.call(null) === '[object String]'); -assert.notOk(Object.prototype.toString.call(false) === '[object String]'); -assert.notOk(Object.prototype.toString.call(true) === '[object String]'); -assert.notOk(Object.prototype.toString.call(function () {}) === '[object String]'); -assert.notOk(Object.prototype.toString.call([]) === '[object String]'); -assert.notOk(Object.prototype.toString.call({}) === '[object String]'); -assert.notOk(Object.prototype.toString.call(/a/g) === '[object String]'); -assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === '[object String]'); -assert.notOk(Object.prototype.toString.call(new Date()) === '[object String]'); -assert.notOk(Object.prototype.toString.call(42) === '[object String]'); -assert.notOk(Object.prototype.toString.call(NaN) === '[object String]'); -assert.notOk(Object.prototype.toString.call(Infinity) === '[object String]'); -assert.notOk(Object.prototype.toString.call(new Number(42)) === '[object String]'); +assert.notOk(Object.prototype.toString.call(undefined) === "[object String]"); +assert.notOk(Object.prototype.toString.call(null) === "[object String]"); +assert.notOk(Object.prototype.toString.call(false) === "[object String]"); +assert.notOk(Object.prototype.toString.call(true) === "[object String]"); +assert.notOk(Object.prototype.toString.call(function () {}) === "[object String]"); +assert.notOk(Object.prototype.toString.call([]) === "[object String]"); +assert.notOk(Object.prototype.toString.call({}) === "[object String]"); +assert.notOk(Object.prototype.toString.call(/a/g) === "[object String]"); +assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === "[object String]"); +assert.notOk(Object.prototype.toString.call(new Date()) === "[object String]"); +assert.notOk(Object.prototype.toString.call(42) === "[object String]"); +assert.notOk(Object.prototype.toString.call(NaN) === "[object String]"); +assert.notOk(Object.prototype.toString.call(Infinity) === "[object String]"); +assert.notOk(Object.prototype.toString.call(new Number(42)) === "[object String]"); -assert.ok(Object.prototype.toString.call('foo') === '[object String]'); -assert.ok(Object.prototype.toString.call(Object('foo')) === '[object String]'); +assert.ok(Object.prototype.toString.call('foo') === "[object String]"); +assert.ok(Object.prototype.toString.call(Object('foo')) === "[object String]"); diff --git a/test/fixtures/is-string/case-1/after.js b/test/fixtures/is-string/case-1/after.js index 6db389e..a074e3e 100644 --- a/test/fixtures/is-string/case-1/after.js +++ b/test/fixtures/is-string/case-1/after.js @@ -1,19 +1,19 @@ var assert = require('assert'); -assert.notOk(Object.prototype.toString.call(undefined) === '[object String]'); -assert.notOk(Object.prototype.toString.call(null) === '[object String]'); -assert.notOk(Object.prototype.toString.call(false) === '[object String]'); -assert.notOk(Object.prototype.toString.call(true) === '[object String]'); -assert.notOk(Object.prototype.toString.call(function () {}) === '[object String]'); -assert.notOk(Object.prototype.toString.call([]) === '[object String]'); -assert.notOk(Object.prototype.toString.call({}) === '[object String]'); -assert.notOk(Object.prototype.toString.call(/a/g) === '[object String]'); -assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === '[object String]'); -assert.notOk(Object.prototype.toString.call(new Date()) === '[object String]'); -assert.notOk(Object.prototype.toString.call(42) === '[object String]'); -assert.notOk(Object.prototype.toString.call(NaN) === '[object String]'); -assert.notOk(Object.prototype.toString.call(Infinity) === '[object String]'); -assert.notOk(Object.prototype.toString.call(new Number(42)) === '[object String]'); +assert.notOk(Object.prototype.toString.call(undefined) === "[object String]"); +assert.notOk(Object.prototype.toString.call(null) === "[object String]"); +assert.notOk(Object.prototype.toString.call(false) === "[object String]"); +assert.notOk(Object.prototype.toString.call(true) === "[object String]"); +assert.notOk(Object.prototype.toString.call(function () {}) === "[object String]"); +assert.notOk(Object.prototype.toString.call([]) === "[object String]"); +assert.notOk(Object.prototype.toString.call({}) === "[object String]"); +assert.notOk(Object.prototype.toString.call(/a/g) === "[object String]"); +assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === "[object String]"); +assert.notOk(Object.prototype.toString.call(new Date()) === "[object String]"); +assert.notOk(Object.prototype.toString.call(42) === "[object String]"); +assert.notOk(Object.prototype.toString.call(NaN) === "[object String]"); +assert.notOk(Object.prototype.toString.call(Infinity) === "[object String]"); +assert.notOk(Object.prototype.toString.call(new Number(42)) === "[object String]"); -assert.ok(Object.prototype.toString.call('foo') === '[object String]'); -assert.ok(Object.prototype.toString.call(Object('foo')) === '[object String]'); +assert.ok(Object.prototype.toString.call('foo') === "[object String]"); +assert.ok(Object.prototype.toString.call(Object('foo')) === "[object String]"); diff --git a/test/fixtures/is-string/case-1/result.js b/test/fixtures/is-string/case-1/result.js index 6db389e..a074e3e 100644 --- a/test/fixtures/is-string/case-1/result.js +++ b/test/fixtures/is-string/case-1/result.js @@ -1,19 +1,19 @@ var assert = require('assert'); -assert.notOk(Object.prototype.toString.call(undefined) === '[object String]'); -assert.notOk(Object.prototype.toString.call(null) === '[object String]'); -assert.notOk(Object.prototype.toString.call(false) === '[object String]'); -assert.notOk(Object.prototype.toString.call(true) === '[object String]'); -assert.notOk(Object.prototype.toString.call(function () {}) === '[object String]'); -assert.notOk(Object.prototype.toString.call([]) === '[object String]'); -assert.notOk(Object.prototype.toString.call({}) === '[object String]'); -assert.notOk(Object.prototype.toString.call(/a/g) === '[object String]'); -assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === '[object String]'); -assert.notOk(Object.prototype.toString.call(new Date()) === '[object String]'); -assert.notOk(Object.prototype.toString.call(42) === '[object String]'); -assert.notOk(Object.prototype.toString.call(NaN) === '[object String]'); -assert.notOk(Object.prototype.toString.call(Infinity) === '[object String]'); -assert.notOk(Object.prototype.toString.call(new Number(42)) === '[object String]'); +assert.notOk(Object.prototype.toString.call(undefined) === "[object String]"); +assert.notOk(Object.prototype.toString.call(null) === "[object String]"); +assert.notOk(Object.prototype.toString.call(false) === "[object String]"); +assert.notOk(Object.prototype.toString.call(true) === "[object String]"); +assert.notOk(Object.prototype.toString.call(function () {}) === "[object String]"); +assert.notOk(Object.prototype.toString.call([]) === "[object String]"); +assert.notOk(Object.prototype.toString.call({}) === "[object String]"); +assert.notOk(Object.prototype.toString.call(/a/g) === "[object String]"); +assert.notOk(Object.prototype.toString.call(new RegExp('a', 'g')) === "[object String]"); +assert.notOk(Object.prototype.toString.call(new Date()) === "[object String]"); +assert.notOk(Object.prototype.toString.call(42) === "[object String]"); +assert.notOk(Object.prototype.toString.call(NaN) === "[object String]"); +assert.notOk(Object.prototype.toString.call(Infinity) === "[object String]"); +assert.notOk(Object.prototype.toString.call(new Number(42)) === "[object String]"); -assert.ok(Object.prototype.toString.call('foo') === '[object String]'); -assert.ok(Object.prototype.toString.call(Object('foo')) === '[object String]'); +assert.ok(Object.prototype.toString.call('foo') === "[object String]"); +assert.ok(Object.prototype.toString.call(Object('foo')) === "[object String]"); diff --git a/test/fixtures/is-travis/case-1/after.js b/test/fixtures/is-travis/case-1/after.js index 85c4e0d..f76a8eb 100644 --- a/test/fixtures/is-travis/case-1/after.js +++ b/test/fixtures/is-travis/case-1/after.js @@ -1,3 +1,3 @@ -('TRAVIS' in process.env); -console.log(('TRAVIS' in process.env)); -if(('TRAVIS' in process.env)) {} \ No newline at end of file +("TRAVIS" in process.env); +console.log(("TRAVIS" in process.env)); +if(("TRAVIS" in process.env)) {} \ No newline at end of file diff --git a/test/fixtures/is-travis/case-1/result.js b/test/fixtures/is-travis/case-1/result.js index 85c4e0d..f76a8eb 100644 --- a/test/fixtures/is-travis/case-1/result.js +++ b/test/fixtures/is-travis/case-1/result.js @@ -1,3 +1,3 @@ -('TRAVIS' in process.env); -console.log(('TRAVIS' in process.env)); -if(('TRAVIS' in process.env)) {} \ No newline at end of file +("TRAVIS" in process.env); +console.log(("TRAVIS" in process.env)); +if(("TRAVIS" in process.env)) {} \ No newline at end of file diff --git a/test/fixtures/is-whitespace/case-1/after.js b/test/fixtures/is-whitespace/case-1/after.js index ea0fccc..49b4e1b 100644 --- a/test/fixtures/is-whitespace/case-1/after.js +++ b/test/fixtures/is-whitespace/case-1/after.js @@ -1,5 +1,5 @@ let str = ' '; let str2 = 'Hello'; -console.log(str1.trim() === ''); // true -console.log(str2.trim() === ''); // false +console.log(str1.trim() === ""); // true +console.log(str2.trim() === ""); // false diff --git a/test/fixtures/is-whitespace/case-1/result.js b/test/fixtures/is-whitespace/case-1/result.js index ea0fccc..49b4e1b 100644 --- a/test/fixtures/is-whitespace/case-1/result.js +++ b/test/fixtures/is-whitespace/case-1/result.js @@ -1,5 +1,5 @@ let str = ' '; let str2 = 'Hello'; -console.log(str1.trim() === ''); // true -console.log(str2.trim() === ''); // false +console.log(str1.trim() === ""); // true +console.log(str2.trim() === ""); // false diff --git a/test/fixtures/is-whitespace/case-2/after.js b/test/fixtures/is-whitespace/case-2/after.js index ea0fccc..49b4e1b 100644 --- a/test/fixtures/is-whitespace/case-2/after.js +++ b/test/fixtures/is-whitespace/case-2/after.js @@ -1,5 +1,5 @@ let str = ' '; let str2 = 'Hello'; -console.log(str1.trim() === ''); // true -console.log(str2.trim() === ''); // false +console.log(str1.trim() === ""); // true +console.log(str2.trim() === ""); // false diff --git a/test/fixtures/is-whitespace/case-2/result.js b/test/fixtures/is-whitespace/case-2/result.js index ea0fccc..49b4e1b 100644 --- a/test/fixtures/is-whitespace/case-2/result.js +++ b/test/fixtures/is-whitespace/case-2/result.js @@ -1,5 +1,5 @@ let str = ' '; let str2 = 'Hello'; -console.log(str1.trim() === ''); // true -console.log(str2.trim() === ''); // false +console.log(str1.trim() === ""); // true +console.log(str2.trim() === ""); // false diff --git a/test/fixtures/is-windows/case-1/after.js b/test/fixtures/is-windows/case-1/after.js index e9c8028..0841873 100644 --- a/test/fixtures/is-windows/case-1/after.js +++ b/test/fixtures/is-windows/case-1/after.js @@ -1,3 +1,3 @@ -console.log(process.platform === 'win32'); +console.log(process.platform === "win32"); -if(process.platform === 'win32') {} \ No newline at end of file +if(process.platform === "win32") {} \ No newline at end of file diff --git a/test/fixtures/is-windows/case-1/result.js b/test/fixtures/is-windows/case-1/result.js index e9c8028..0841873 100644 --- a/test/fixtures/is-windows/case-1/result.js +++ b/test/fixtures/is-windows/case-1/result.js @@ -1,3 +1,3 @@ -console.log(process.platform === 'win32'); +console.log(process.platform === "win32"); -if(process.platform === 'win32') {} \ No newline at end of file +if(process.platform === "win32") {} \ No newline at end of file diff --git a/test/fixtures/md5/case-1/after.js b/test/fixtures/md5/case-1/after.js index bc42b8d..8528b83 100644 --- a/test/fixtures/md5/case-1/after.js +++ b/test/fixtures/md5/case-1/after.js @@ -1,2 +1,2 @@ -import crypto from 'crypto'; -console.log(crypto.createHash('md5').update('message').digest('hex')); \ No newline at end of file +import crypto from "crypto"; +console.log(crypto.createHash("md5").update('message').digest("hex")); \ No newline at end of file diff --git a/test/fixtures/md5/case-1/result.js b/test/fixtures/md5/case-1/result.js index bc42b8d..8528b83 100644 --- a/test/fixtures/md5/case-1/result.js +++ b/test/fixtures/md5/case-1/result.js @@ -1,2 +1,2 @@ -import crypto from 'crypto'; -console.log(crypto.createHash('md5').update('message').digest('hex')); \ No newline at end of file +import crypto from "crypto"; +console.log(crypto.createHash("md5").update('message').digest("hex")); \ No newline at end of file diff --git a/test/fixtures/md5/case-2/after.js b/test/fixtures/md5/case-2/after.js index 6af7b79..ca25af0 100644 --- a/test/fixtures/md5/case-2/after.js +++ b/test/fixtures/md5/case-2/after.js @@ -1,6 +1,6 @@ import fs from 'fs'; -import crypto from 'crypto'; +import crypto from "crypto"; fs.readFile('example.txt', function (err, buf) { - console.log(crypto.createHash('md5').update(buf).digest('hex')); + console.log(crypto.createHash("md5").update(buf).digest("hex")); }); \ No newline at end of file diff --git a/test/fixtures/md5/case-2/result.js b/test/fixtures/md5/case-2/result.js index 6af7b79..ca25af0 100644 --- a/test/fixtures/md5/case-2/result.js +++ b/test/fixtures/md5/case-2/result.js @@ -1,6 +1,6 @@ import fs from 'fs'; -import crypto from 'crypto'; +import crypto from "crypto"; fs.readFile('example.txt', function (err, buf) { - console.log(crypto.createHash('md5').update(buf).digest('hex')); + console.log(crypto.createHash("md5").update(buf).digest("hex")); }); \ No newline at end of file diff --git a/test/fixtures/md5/case-3/after.js b/test/fixtures/md5/case-3/after.js index bbe2814..b286ff8 100644 --- a/test/fixtures/md5/case-3/after.js +++ b/test/fixtures/md5/case-3/after.js @@ -1,2 +1,2 @@ -var crypto = require('crypto'); -console.log(crypto.createHash('md5').update('message').digest('hex')); \ No newline at end of file +var crypto = require("crypto"); +console.log(crypto.createHash("md5").update('message').digest("hex")); \ No newline at end of file diff --git a/test/fixtures/md5/case-3/result.js b/test/fixtures/md5/case-3/result.js index bbe2814..b286ff8 100644 --- a/test/fixtures/md5/case-3/result.js +++ b/test/fixtures/md5/case-3/result.js @@ -1,2 +1,2 @@ -var crypto = require('crypto'); -console.log(crypto.createHash('md5').update('message').digest('hex')); \ No newline at end of file +var crypto = require("crypto"); +console.log(crypto.createHash("md5").update('message').digest("hex")); \ No newline at end of file diff --git a/test/fixtures/md5/case-4/after.js b/test/fixtures/md5/case-4/after.js index bbe2814..b286ff8 100644 --- a/test/fixtures/md5/case-4/after.js +++ b/test/fixtures/md5/case-4/after.js @@ -1,2 +1,2 @@ -var crypto = require('crypto'); -console.log(crypto.createHash('md5').update('message').digest('hex')); \ No newline at end of file +var crypto = require("crypto"); +console.log(crypto.createHash("md5").update('message').digest("hex")); \ No newline at end of file diff --git a/test/fixtures/md5/case-4/result.js b/test/fixtures/md5/case-4/result.js index bbe2814..b286ff8 100644 --- a/test/fixtures/md5/case-4/result.js +++ b/test/fixtures/md5/case-4/result.js @@ -1,2 +1,2 @@ -var crypto = require('crypto'); -console.log(crypto.createHash('md5').update('message').digest('hex')); \ No newline at end of file +var crypto = require("crypto"); +console.log(crypto.createHash("md5").update('message').digest("hex")); \ No newline at end of file diff --git a/test/fixtures/qs/basic/after.js b/test/fixtures/qs/basic/after.js index 8832aff..e2b88d4 100644 --- a/test/fixtures/qs/basic/after.js +++ b/test/fixtures/qs/basic/after.js @@ -1,4 +1,4 @@ -import pq from 'picoquery'; +import * as pq from 'picoquery'; const obj = {foo: 'bar'}; const query = 'foo=bar'; diff --git a/test/fixtures/qs/basic/result.js b/test/fixtures/qs/basic/result.js index 8832aff..e2b88d4 100644 --- a/test/fixtures/qs/basic/result.js +++ b/test/fixtures/qs/basic/result.js @@ -1,4 +1,4 @@ -import pq from 'picoquery'; +import * as pq from 'picoquery'; const obj = {foo: 'bar'}; const query = 'foo=bar'; diff --git a/test/fixtures/traverse/case-1/after.js b/test/fixtures/traverse/case-1/after.js index 00cf582..badcc07 100644 --- a/test/fixtures/traverse/case-1/after.js +++ b/test/fixtures/traverse/case-1/after.js @@ -1,6 +1,6 @@ // THESE ARE FOR ESM IMPORTS import assert from 'assert'; -import traverse from 'neotraverse/legacy'; +import traverse from "neotraverse/legacy"; const obj = { a: 1, diff --git a/test/fixtures/traverse/case-1/result.js b/test/fixtures/traverse/case-1/result.js index 00cf582..badcc07 100644 --- a/test/fixtures/traverse/case-1/result.js +++ b/test/fixtures/traverse/case-1/result.js @@ -1,6 +1,6 @@ // THESE ARE FOR ESM IMPORTS import assert from 'assert'; -import traverse from 'neotraverse/legacy'; +import traverse from "neotraverse/legacy"; const obj = { a: 1, diff --git a/test/fixtures/traverse/case-2/after.js b/test/fixtures/traverse/case-2/after.js index 2ecaa1f..cf04b0b 100644 --- a/test/fixtures/traverse/case-2/after.js +++ b/test/fixtures/traverse/case-2/after.js @@ -1,6 +1,6 @@ // THESE ARE FOR CJS IMPORTS const assert = require('assert'); -const traverse = require('neotraverse/legacy'); +const traverse = require("neotraverse/legacy"); const obj = { a: 1, diff --git a/test/fixtures/traverse/case-2/result.js b/test/fixtures/traverse/case-2/result.js index 2ecaa1f..cf04b0b 100644 --- a/test/fixtures/traverse/case-2/result.js +++ b/test/fixtures/traverse/case-2/result.js @@ -1,6 +1,6 @@ // THESE ARE FOR CJS IMPORTS const assert = require('assert'); -const traverse = require('neotraverse/legacy'); +const traverse = require("neotraverse/legacy"); const obj = { a: 1, diff --git a/types.ts b/types.ts index a192f50..0972dc5 100644 --- a/types.ts +++ b/types.ts @@ -1,20 +1,85 @@ +export interface SourceMap { + file?: string; + mappings: string; + names: string[]; + sourceRoot?: string; + sources: string[]; + sourcesContent?: string[]; + version: number; +} + +export interface Pos { + /** line number starting from 0 */ + line: number; + /** column number starting from 0 */ + column: number; + /** byte offset of the position */ + index: number; +} + +export interface Range { + /** starting position of the range */ + start: Pos; + /** ending position of the range */ + end: Pos; +} + +/** + * Used to show warnings with links to relevant lines + */ +export interface Warning { + range?: Range; + file?: string; + message: string; + stack?: string; +} + +export interface CodemodMeta { + /** + * @example { "lodash": "lodash-es" } + */ + replacements?: Record; + warnings?: Warning[]; +} + +export interface TransformResult extends CodemodMeta { + map?: SourceMap | string | null | { mappings: '' }; + code: string; +} + export interface CodemodOptions { + strict?: boolean; +} + +export interface File { + source: string; + filename: string; } export interface File { - source: string; - filename: string; + source: string; + filename: string; } +type KnownAstLibs = 'recast' | 'typescript' | 'jscodeshift' | (string & {}); + export interface Codemod { - /** - * The name of the codemod should be equal to the name of the package - * you're trying to replace - */ - name: string; - /** - * Either "native" or the name of the package you're replacing it with. - */ - to: "native" | string; - transform: (options: { file: File }) => string | Promise; -} \ No newline at end of file + /** + * The name of the codemod should be equal to the name of the package + * you're trying to replace + */ + name: string; + /** + * Either "native" or the name of the package you're replacing it with. + */ + to: 'native' | (string & {}); + /** + * setting this enables the consumer of the codemod to pass in options that can be used in this codemod + * e.g. (and specifically) sourceFileName and sourceMapName of recast.Options for automated sourcemap generation + */ + astlib?: KnownAstLibs; + transform: (options: { + file: File; + options?: Record; + }) => string | Promise | TransformResult | Promise; +}