Description
Since util.is**() is deprecated in Node.js v23.9.0, we should provide a codemod to replace it.
- The codemod should remove import if it's only thing imported or remove the member if not anymore used.
- The codemod should modify any call expression of this api.
Examples
Before:
import util from 'node:util';
if (util.isArray(someValue)) {
console.log('someValue is an array');
}
if (util.isBoolean(someValue)) {
console.log('someValue is a boolean');
}
if (util.isBuffer(someValue)) {
console.log('someValue is a buffer');
}
if (util.isDate(someValue)) {
console.log('someValue is a date');
}
if (util.isError(someValue)) {
console.log('someValue is an error');
}
if (util.isFunction(someValue)) {
console.log('someValue is a function');
}
if (util.isNull(someValue)) {
console.log('someValue is null');
}
if (util.isNullOrUndefined(someValue)) {
console.log('someValue is null or undefined');
}
if (util.isNumber(someValue)) {
console.log('someValue is a number');
}
if (util.isObject(someValue)) {
console.log('someValue is an object');
}
if (util.isPrimitive(someValue)) {
console.log('someValue is a primitive');
}
if (util.isRegExp(someValue)) {
console.log('someValue is a regular expression');
}
if (util.isString(someValue)) {
console.log('someValue is a string');
}
if (util.isSymbol(someValue)) {
console.log('someValue is a symbol');
}
if (util.isUndefined(someValue)) {
console.log('someValue is undefined');
}
After:
if (Array.isArray(someValue)) {
console.log('someValue is an array');
}
if (typeof someValue === 'boolean') {
console.log('someValue is a boolean');
}
if (Buffer.isBuffer(someValue)) {
console.log('someValue is a buffer');
}
if (someValue instanceof Date) {
console.log('someValue is a date');
}
if (someValue instanceof Error) {
console.log('someValue is an error');
}
if (typeof someValue === 'function') {
console.log('someValue is a function');
}
if (someValue === null) {
console.log('someValue is null');
}
if (someValue == null) {
console.log('someValue is null or undefined');
}
if (typeof someValue === 'number') {
console.log('someValue is a number');
}
if (typeof someValue === 'object' && someValue !== null) {
console.log('someValue is an object');
}
if (someValue !== Object(someValue)) {
console.log('someValue is a primitive');
}
if (someValue instanceof RegExp) {
console.log('someValue is a regular expression');
}
if (typeof someValue === 'string') {
console.log('someValue is a string');
}
if (typeof someValue === 'symbol') {
console.log('someValue is a symbol');
}
if (typeof someValue === 'undefined') {
console.log('someValue is undefined');
}
REFS
Description
Since
util.is**()is deprecated in Node.js v23.9.0, we should provide a codemod to replace it.Examples
Before:
After:
REFS
util.isArray()util.isBoolean()util.isBuffer()util.isDate()util.isError()util.isFunction()util.isNull()util.isNullOrUndefined()util.isNumber()util.isObject()util.isPrimitive()util.isRegExp()util.isString()util.isSymbol()util.isUndefined()