Skip to content
This repository was archived by the owner on Sep 21, 2019. It is now read-only.

Commit 5089749

Browse files
committed
namespace import lodash & use lodash.find directly
1 parent 046857a commit 5089749

5 files changed

+27
-27
lines changed

src/helpers/index.ts

+13-17
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as ts from 'typescript';
2-
import { find, indexOf, slice } from 'lodash';
2+
import * as _ from 'lodash';
33

44
/**
55
* If a class declaration a react class?
@@ -78,7 +78,7 @@ export function hasStaticModifier(classMember: ts.ClassElement) {
7878
if (!classMember.modifiers) {
7979
return false;
8080
}
81-
const staticModifier = find(classMember.modifiers, (modifier) => {
81+
const staticModifier = _.find(classMember.modifiers, (modifier) => {
8282
return modifier.kind == ts.SyntaxKind.StaticKeyword;
8383
});
8484
return staticModifier !== undefined;
@@ -97,22 +97,18 @@ export function isPropTypesMember(classMember: ts.ClassElement, sourceFile: ts.S
9797
}
9898
}
9999

100-
101-
export { find };
102-
103-
// export const has = some
104100
/**
105101
* Insert an item in middle of an array after a specific item
106102
* @param collection
107103
* @param afterItem
108104
* @param newItem
109105
*/
110106
export function insertAfter<T>(collection: ArrayLike<T>, afterItem: T, newItem: T) {
111-
const index = indexOf(collection, afterItem) + 1;
107+
const index = _.indexOf(collection, afterItem) + 1;
112108

113-
return slice(collection, 0, index)
109+
return _.slice(collection, 0, index)
114110
.concat(newItem)
115-
.concat(slice(collection, index));
111+
.concat(_.slice(collection, index));
116112
}
117113

118114
/**
@@ -122,11 +118,11 @@ export function insertAfter<T>(collection: ArrayLike<T>, afterItem: T, newItem:
122118
* @param newItem
123119
*/
124120
export function insertBefore<T>(collection: ArrayLike<T>, beforeItem: T, newItems: T | T[]) {
125-
const index = indexOf(collection, beforeItem);
121+
const index = _.indexOf(collection, beforeItem);
126122

127-
return slice(collection, 0, index)
123+
return _.slice(collection, 0, index)
128124
.concat(newItems)
129-
.concat(slice(collection, index));
125+
.concat(_.slice(collection, index));
130126
}
131127

132128
/**
@@ -136,10 +132,10 @@ export function insertBefore<T>(collection: ArrayLike<T>, beforeItem: T, newItem
136132
* @param newItem
137133
*/
138134
export function replaceItem<T>(collection: ArrayLike<T>, item: T, newItem: T) {
139-
const index = indexOf(collection, item);
140-
return slice(collection, 0, index)
135+
const index = _.indexOf(collection, item);
136+
return _.slice(collection, 0, index)
141137
.concat(newItem)
142-
.concat(slice(collection, index + 1));
138+
.concat(_.slice(collection, index + 1));
143139
}
144140

145141
/**
@@ -149,6 +145,6 @@ export function replaceItem<T>(collection: ArrayLike<T>, item: T, newItem: T) {
149145
* @param newItem
150146
*/
151147
export function removeItem<T>(collection: ArrayLike<T>, item: T) {
152-
const index = indexOf(collection, item);
153-
return slice(collection, 0, index).concat(slice(collection, index + 1));
148+
const index = _.indexOf(collection, item);
149+
return _.slice(collection, 0, index).concat(_.slice(collection, index + 1));
154150
}

src/transforms/collapse-intersection-interfaces-transform.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,10 @@ export function collapseIntersectionInterfacesTransformFactoryFactory(
3333
function visitTypeAliasDeclaration(node: ts.TypeAliasDeclaration) {
3434
if (
3535
ts.isIntersectionTypeNode(node.type)
36-
&& node.type.types.every((type) => ts.isTypeLiteralNode(type))
36+
&& node.type.types.every(ts.isTypeLiteralNode)
3737
) {
38+
// We need cast `node.type.types` to `ts.NodeArray<ts.TypeLiteralNode>`
39+
// because TypeScript can't figure out `node.type.types.every(ts.isTypeLiteralNode)`
3840
const allMembers = (node.type.types as ts.NodeArray<ts.TypeLiteralNode>)
3941
.map((type) => type.members)
4042
.reduce((all, members) => ts.createNodeArray(all.concat(members)), ts.createNodeArray([]));

src/transforms/react-hoist-generics-transform.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import * as ts from 'typescript';
2+
import * as _ from 'lodash';
23

34
import * as helpers from '../helpers';
45

@@ -45,7 +46,7 @@ function hoist(reactClass: ts.ClassDeclaration, sourceFile: ts.SourceFile) {
4546
return sourceFile;
4647
}
4748
const className = reactClass && reactClass.name && reactClass.name.getText(sourceFile);
48-
const reactHeritageClauses = helpers.find(reactClass.heritageClauses, helpers.isReactHeritageClause);
49+
const reactHeritageClauses = _.find(reactClass.heritageClauses, helpers.isReactHeritageClause);
4950

5051
if (reactHeritageClauses === undefined || !reactHeritageClauses.types == undefined) {
5152
return sourceFile;
@@ -97,7 +98,7 @@ function insertTypeRefs(
9798
if (reactClassDeclaration.heritageClauses === undefined) {
9899
return reactClassDeclaration;
99100
}
100-
const reactHeritageClause = helpers.find(reactClassDeclaration.heritageClauses, helpers.isReactHeritageClause);
101+
const reactHeritageClause = _.find(reactClassDeclaration.heritageClauses, helpers.isReactHeritageClause);
101102

102103
if (reactHeritageClause === undefined) {
103104
return reactClassDeclaration;

src/transforms/react-js-make-props-and-state-transform.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as ts from 'typescript';
2-
2+
import * as _ from 'lodash';
33
import * as helpers from '../helpers';
44

55
export type Factory = ts.TransformerFactory<ts.SourceFile>;
@@ -77,7 +77,7 @@ function getPropsTypeOfReactComponentClass(
7777
classDeclaration: ts.ClassDeclaration,
7878
sourceFile: ts.SourceFile,
7979
): ts.TypeNode {
80-
const staticPropTypesMember = helpers.find(classDeclaration.members, (member) => {
80+
const staticPropTypesMember = _.find(classDeclaration.members, (member) => {
8181
return ts.isPropertyDeclaration(member) &&
8282
helpers.hasStaticModifier(member) &&
8383
helpers.isPropTypesMember(member, sourceFile);
@@ -92,7 +92,7 @@ function getPropsTypeOfReactComponentClass(
9292
return buildInterfaceFromPropTypeObjectLiteral(staticPropTypesMember.initializer)
9393
}
9494

95-
const staticPropTypesGetterMember = helpers.find(classDeclaration.members, (member) => {
95+
const staticPropTypesGetterMember = _.find(classDeclaration.members, (member) => {
9696
return ts.isGetAccessorDeclaration(member) &&
9797
helpers.hasStaticModifier(member) &&
9898
helpers.isPropTypesMember(member, sourceFile);
@@ -102,7 +102,7 @@ function getPropsTypeOfReactComponentClass(
102102
staticPropTypesGetterMember !== undefined
103103
&& ts.isGetAccessorDeclaration(staticPropTypesGetterMember) // check to satisfy typechecker
104104
) {
105-
const returnStatement = helpers.find(
105+
const returnStatement = _.find(
106106
staticPropTypesGetterMember.body.statements,
107107
(statement) => ts.isReturnStatement(statement),
108108
);
@@ -149,7 +149,7 @@ function getInitialStateFromClassDeclaration(
149149
): ts.TypeNode {
150150
// initial state class member
151151

152-
const initialStateMember = helpers.find(classDeclaration.members, (member) => {
152+
const initialStateMember = _.find(classDeclaration.members, (member) => {
153153
try {
154154
return ts.isPropertyDeclaration(member) &&
155155
member.name &&
@@ -169,7 +169,7 @@ function getInitialStateFromClassDeclaration(
169169
}
170170

171171
// Initial state in constructor
172-
const constructor = helpers.find(
172+
const constructor = _.find(
173173
classDeclaration.members,
174174
(member) => member.kind === ts.SyntaxKind.Constructor,
175175
) as ts.ConstructorDeclaration | undefined;

src/transforms/react-move-prop-types-to-class-transform.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import * as ts from 'typescript';
2+
import * as _ from 'lodash';
23

34
import * as helpers from '../helpers';
45

@@ -56,7 +57,7 @@ function visitSourceFile(sourceFile: ts.SourceFile, typeChecker: ts.TypeChecker)
5657
// Look for the class declarations with the same name
5758
const componentName = getComponentName(propTypeAssignment, sourceFile);
5859

59-
const classStatement = helpers.find(
60+
const classStatement = _.find(
6061
statements,
6162
(statement) => ts.isClassDeclaration(statement) &&
6263
statement.name !== undefined &&

0 commit comments

Comments
 (0)