Skip to content

Commit 35b916b

Browse files
bajtosraymondfeng
authored andcommitted
fix: remove extra imports for mixin dependencies
With the new TypeScript version, it is no longer necessary to manually import types referenced by mixin classes. This commit removes those extra imports from the CLI template and scaffolded "application.ts" files; and also sorts import using VS Code's feature "Organize imports". While removing unused imports, I cleaned up few more places where we were importing extra types.
1 parent 294c50e commit 35b916b

File tree

11 files changed

+20
-110
lines changed

11 files changed

+20
-110
lines changed

docs/site/Booting-an-Application.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,8 @@ example below)_
6161

6262
### Using the BootMixin
6363

64-
`Booter` and `Binding` types must be imported alongside `BootMixin` to allow
65-
TypeScript to infer types and avoid errors. _If using `tslint` with the
66-
`no-unused-variable` rule, you can disable it for the import line by adding
67-
`// tslint:disable-next-line:no-unused-variable` above the import statement_.
68-
6964
```ts
70-
import {BootMixin, Booter, Binding} from "@loopback/boot";
65+
import {BootMixin} from "@loopback/boot";
7166

7267
class MyApplication extends BootMixin(Application) {
7368
constructor(options?: ApplicationConfig) {

docs/site/todo-tutorial-putting-it-together.md

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,23 +34,12 @@ artifacts and inject them into our application for use.
3434
#### src/application.ts
3535

3636
```ts
37+
import {BootMixin} from '@loopback/boot';
3738
import {ApplicationConfig} from '@loopback/core';
39+
import {RepositoryMixin} from '@loopback/repository';
3840
import {RestApplication, RestServer} from '@loopback/rest';
3941
import {MySequence} from './sequence';
4042

41-
/* tslint:disable:no-unused-variable */
42-
// Binding and Booter imports are required to infer types for BootMixin!
43-
import {BootMixin, Booter, Binding} from '@loopback/boot';
44-
45-
// juggler imports are required to infer types for RepositoryMixin!
46-
import {
47-
Class,
48-
Repository,
49-
RepositoryMixin,
50-
juggler,
51-
} from '@loopback/repository';
52-
/* tslint:enable:no-unused-variable */
53-
5443
export class TodoListApplication extends BootMixin(
5544
RepositoryMixin(RestApplication),
5645
) {

examples/soap-calculator/src/application.ts

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,10 @@
1+
import {BootMixin} from '@loopback/boot';
12
import {ApplicationConfig, Constructor, Provider} from '@loopback/core';
3+
import {RepositoryMixin} from '@loopback/repository';
24
import {RestApplication} from '@loopback/rest';
35
import {MySequence} from './sequence';
46
import {CalculatorServiceProvider} from './services/calculator.service';
57

6-
// Binding and Booter imports are required to infer types for BootMixin!
7-
/* tslint:disable:no-unused-variable */
8-
import {BootMixin, Booter, Binding} from '@loopback/boot';
9-
10-
// juggler imports are required to infer types for RepositoryMixin!
11-
import {
12-
Class,
13-
Repository,
14-
RepositoryMixin,
15-
juggler,
16-
} from '@loopback/repository';
17-
/* tslint:enable:no-unused-variable */
18-
198
export class SoapCalculatorApplication extends BootMixin(
209
RepositoryMixin(RestApplication),
2110
) {

examples/todo-list/src/application.ts

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,12 @@
33
// This file is licensed under the MIT License.
44
// License text available at https://opensource.org/licenses/MIT
55

6+
import {BootMixin} from '@loopback/boot';
67
import {ApplicationConfig} from '@loopback/core';
8+
import {RepositoryMixin} from '@loopback/repository';
79
import {RestApplication} from '@loopback/rest';
810
import {MySequence} from './sequence';
911

10-
/* tslint:disable:no-unused-variable */
11-
// Binding and Booter imports are required to infer types for BootMixin!
12-
import {BootMixin, Booter, Binding} from '@loopback/boot';
13-
14-
// juggler imports are required to infer types for RepositoryMixin!
15-
import {
16-
Class,
17-
Repository,
18-
RepositoryMixin,
19-
juggler,
20-
} from '@loopback/repository';
21-
/* tslint:enable:no-unused-variable */
22-
2312
export class TodoListApplication extends BootMixin(
2413
RepositoryMixin(RestApplication),
2514
) {

examples/todo/src/application.ts

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,13 @@
33
// This file is licensed under the MIT License.
44
// License text available at https://opensource.org/licenses/MIT
55

6-
import {ApplicationConfig, Provider, Constructor} from '@loopback/core';
6+
import {BootMixin} from '@loopback/boot';
7+
import {ApplicationConfig, Constructor, Provider} from '@loopback/core';
8+
import {RepositoryMixin} from '@loopback/repository';
79
import {RestApplication} from '@loopback/rest';
810
import {MySequence} from './sequence';
911
import {GeocoderServiceProvider} from './services';
1012

11-
/* tslint:disable:no-unused-variable */
12-
// Binding and Booter imports are required to infer types for BootMixin!
13-
import {BootMixin, Booter, Binding} from '@loopback/boot';
14-
15-
// juggler imports are required to infer types for RepositoryMixin!
16-
import {
17-
Class,
18-
Repository,
19-
RepositoryMixin,
20-
juggler,
21-
} from '@loopback/repository';
22-
/* tslint:enable:no-unused-variable */
23-
2413
export class TodoListApplication extends BootMixin(
2514
RepositoryMixin(RestApplication),
2615
) {

packages/boot/test/fixtures/application.ts

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,10 @@
33
// This file is licensed under the MIT License.
44
// License text available at https://opensource.org/licenses/MIT
55

6-
import {RestApplication} from '@loopback/rest';
76
import {ApplicationConfig} from '@loopback/core';
8-
// tslint:disable:no-unused-variable
9-
import {
10-
RepositoryMixin,
11-
Class,
12-
Repository,
13-
juggler,
14-
} from '@loopback/repository';
15-
// tslint:enable:no-unused-variable
16-
17-
// Binding and Booter imports are required to infer types for BootMixin!
18-
// tslint:disable-next-line:no-unused-variable
19-
import {BootMixin, Booter, Binding} from '../../index';
7+
import {RepositoryMixin} from '@loopback/repository';
8+
import {RestApplication} from '@loopback/rest';
9+
import {BootMixin} from '../../index';
2010

2111
export class BooterApp extends RepositoryMixin(BootMixin(RestApplication)) {
2212
constructor(options?: ApplicationConfig) {

packages/cli/generators/app/templates/src/application.ts.ejs

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,10 @@
1+
import {BootMixin} from '@loopback/boot';
12
import {ApplicationConfig} from '@loopback/core';
2-
import {RestApplication} from '@loopback/rest';
3-
import {MySequence} from './sequence';
4-
5-
/* tslint:disable:no-unused-variable */
6-
// Binding and Booter imports are required to infer types for BootMixin!
7-
import {BootMixin, Booter, Binding} from '@loopback/boot';
83
<% if (project.enableRepository) { -%>
9-
10-
// juggler imports are required to infer types for RepositoryMixin!
11-
import {
12-
Class,
13-
Repository,
14-
RepositoryMixin,
15-
juggler,
16-
} from '@loopback/repository';
4+
import {RepositoryMixin} from '@loopback/repository';
175
<% } -%>
18-
/* tslint:enable:no-unused-variable */
6+
import {RestApplication} from '@loopback/rest';
7+
import {MySequence} from './sequence';
198

209
export class <%= project.applicationName %> <% if (!project.enableRepository) {-%>extends BootMixin(RestApplication) {<% } else { -%>extends BootMixin(
2110
RepositoryMixin(RestApplication),

packages/repository/README.md

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -130,18 +130,11 @@ We'll use `BootMixin` on top of `RepositoryMixin` so that Repository bindings
130130
can be taken care of automatically at boot time before the application starts.
131131

132132
```ts
133+
import {BootMixin} from '@loopback/boot';
133134
import {ApplicationConfig} from '@loopback/core';
135+
import {RepositoryMixin} from '@loopback/repository';
134136
import {RestApplication} from '@loopback/rest';
135137
import {db} from './datasources/db.datasource';
136-
/* tslint:disable:no-unused-variable */
137-
import {BootMixin, Booter, Binding} from '@loopback/boot';
138-
import {
139-
RepositoryMixin,
140-
Class,
141-
Repository,
142-
juggler,
143-
} from '@loopback/repository';
144-
/* tslint:enable:no-unused-variable */
145138

146139
export class RepoApplication extends BootMixin(
147140
RepositoryMixin(RestApplication),

packages/repository/src/repositories/legacy-juggler-bridge.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ import {
2323
HasManyRepositoryFactory,
2424
} from './relation.factory';
2525
import {HasManyDefinition} from '../decorators/relation.decorator';
26-
// need the import for exporting of a return type
27-
// tslint:disable-next-line:no-unused-variable
28-
import {HasManyRepository} from './relation.repository';
2926

3027
export namespace juggler {
3128
export import DataSource = legacy.DataSource;

packages/repository/test/unit/query/query-builder.unit.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,7 @@
44
// License text available at https://opensource.org/licenses/MIT
55

66
import {expect} from '@loopback/testlab';
7-
import {
8-
FilterBuilder,
9-
Filter,
10-
WhereBuilder,
11-
Where,
12-
filterTemplate,
13-
isFilter,
14-
} from '../../../';
7+
import {FilterBuilder, WhereBuilder, filterTemplate, isFilter} from '../../../';
158

169
describe('WhereBuilder', () => {
1710
it('builds where object', () => {

0 commit comments

Comments
 (0)