Skip to content

Commit 98460e9

Browse files
authored
Merge pull request #49 from ajkl2533/parseint
feat: add `parseint`
2 parents 47e05c0 + 9a75c00 commit 98460e9

File tree

4 files changed

+58
-0
lines changed

4 files changed

+58
-0
lines changed

codemods/parseint/index.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import jscodeshift from 'jscodeshift';
2+
import { removeImport } from '../shared.js';
3+
4+
/**
5+
* @typedef {import('../../types.js').Codemod} Codemod
6+
* @typedef {import('../../types.js').CodemodOptions} CodemodOptions
7+
*/
8+
9+
/**
10+
* @param {CodemodOptions} [options]
11+
* @returns {Codemod}
12+
*/
13+
export default function (options) {
14+
return {
15+
name: 'parseint',
16+
transform: ({ file }) => {
17+
const j = jscodeshift;
18+
const root = j(file.source);
19+
20+
const { identifier } = removeImport('parseint', root, j);
21+
22+
let dirty = false;
23+
root
24+
.find(j.CallExpression, {
25+
callee: {
26+
type: 'Identifier',
27+
name: identifier,
28+
},
29+
})
30+
.forEach((path) => {
31+
// @ts-ignore
32+
path.node.callee.name = 'parseInt';
33+
dirty = true;
34+
});
35+
36+
return dirty ? root.toSource(options) : file.source;
37+
},
38+
};
39+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
var assert = require('assert');
2+
3+
assert.equal(parseInt('-3'), -3);
4+
assert.equal(parseInt('0x10'), 16);
5+
assert.equal(parseInt('30', 7), 21);
6+
assert.equal(parseInt('ef'), NaN);
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
var assert = require('assert');
2+
var banana = require('parseint');
3+
4+
assert.equal(banana('-3'), -3);
5+
assert.equal(banana('0x10'), 16);
6+
assert.equal(banana('30', 7), 21);
7+
assert.equal(banana('ef'), NaN);
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
var assert = require('assert');
2+
3+
assert.equal(parseInt('-3'), -3);
4+
assert.equal(parseInt('0x10'), 16);
5+
assert.equal(parseInt('30', 7), 21);
6+
assert.equal(parseInt('ef'), NaN);

0 commit comments

Comments
 (0)