Skip to content

Commit 59a1093

Browse files
committed
feat(cli): generate datasource json with '.config.json` extension
Workaround for microsoft/TypeScript#34761
1 parent 7db846b commit 59a1093

29 files changed

+62
-61
lines changed

Diff for: docs/site/DataSource-generator.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Once all the prompts have been answered, the CLI will do the following:
5151
- Install `@loopback/repository` and the connector package (if it's not a custom
5252
connector).
5353
- Create a file with the connector configuration as follows:
54-
`/src/datasources/${dataSource.dataSourceName}.datasource.json`
54+
`/src/datasources/${dataSource.dataSourceName}.config.json`
5555
- Create a DataSource class which recieves the connector config using
5656
[Dependency Injection](Dependency-injection.md) as follows:
5757
`/src/datasources/${dataSource.dataSourceName}.datasource.ts`

Diff for: docs/site/DataSources.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ It is recommended to use the [`lb4 datasource` command](DataSource-generator.md)
2020
provided by the CLI to generate a DataSource. The CLI will prompt for all
2121
necessary connector information and create the following files:
2222

23-
- `${dataSource.dataSourceName}.datasource.json` containing the connector
23+
- `${dataSource.dataSourceName}.config.json` containing the connector
2424
configuration
2525
- `${dataSource.dataSourceName}.datasource.ts` containing a class extending
2626
`juggler.DataSource`. This class can be used to override the default
@@ -37,7 +37,7 @@ Example DataSource Class:
3737
```ts
3838
import {inject} from '@loopback/core';
3939
import {juggler} from '@loopback/repository';
40-
import * as config from './db.datasource.json';
40+
import * as config from './db.config.json';
4141

4242
export class DbDataSource extends juggler.DataSource {
4343
static dataSourceName = 'db';

Diff for: docs/site/Inside-Loopback-Application.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -258,9 +258,9 @@ We need appropriate drivers to connect with the backend datasources.
258258
> to provide easy to use CRUD operations and connection configurations.
259259
260260
In the example,
261-
[Redis datasource definition](https://github.com/strongloop/loopback4-example-shopping/blob/master/packages/shopping/src/datasources/redis.datasource.json)
261+
[Redis datasource definition](https://github.com/strongloop/loopback4-example-shopping/blob/master/packages/shopping/src/datasources/redis.config.json)
262262
uses the LoopBack `kv-redis` connector and
263-
[MongoDB datasource definition](https://github.com/strongloop/loopback4-example-shopping/blob/master/packages/shopping/src/datasources/mongo.datasource.json)
263+
[MongoDB datasource definition](https://github.com/strongloop/loopback4-example-shopping/blob/master/packages/shopping/src/datasources/mongo.config.json)
264264
uses the LoopBack `mongodb` connector.
265265

266266
## Application startup

Diff for: docs/site/Repositories.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ better flexibility, we split the datasource definition into two files. The json
312312
file captures the configuration properties and it can be possibly overridden by
313313
dependency injection.
314314

315-
1. redis.datasource.json
315+
1. redis.config.json
316316

317317
```json
318318
{
@@ -328,14 +328,14 @@ dependency injection.
328328
2. redis.datasource.ts
329329

330330
The class uses a configuration object to set up a datasource for the Redis
331-
instance. By default, the configuration is loaded from `redis.datasource.json`.
331+
instance. By default, the configuration is loaded from `redis.config.json`.
332332
We can override it by binding a new object to `datasources.config.redis` for a
333333
context.
334334

335335
```ts
336336
import {inject} from '@loopback/core';
337337
import {juggler, AnyObject} from '@loopback/repository';
338-
import * as config from './redis.datasource.json';
338+
import * as config from './redis.config.json';
339339

340340
export class RedisDataSource extends juggler.DataSource {
341341
static dataSourceName = 'redis';

Diff for: docs/site/Testing-your-application.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -740,7 +740,7 @@ instance:
740740

741741
```ts
742742
import {merge} from 'lodash';
743-
import * as GEO_CODER_CONFIG from '../datasources/geo.datasource.json';
743+
import * as GEO_CODER_CONFIG from '../datasources/geo.config.json';
744744

745745
function givenGeoService() {
746746
const config = merge({}, GEO_CODER_CONFIG, {

Diff for: docs/site/deployment/Deploying-to-IBM-Cloud.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ Cloudant connector, so data is persisted.
6969

7070
### Step 3: Updating your DataSource
7171

72-
Update `db.datasource.json` to use the Cloudant connector. The value for the
72+
Update `db.config.json` to use the Cloudant connector. The value for the
7373
`url` property is just a placeholder and does not need to have the correct
7474
credential because we will be binding the app with the Cloudant service once
7575
it's pushed to IBM Cloud.
@@ -106,7 +106,7 @@ $ npm i loopback-connector-cloudant
106106
import {TodoListApplication} from './application';
107107
import {ApplicationConfig} from '@loopback/core';
108108
// --------- ADD THIS SNIPPET ---------
109-
const datasourceDb = require('./datasources/db.datasource.json');
109+
const datasourceDb = require('./datasources/db.config.json');
110110
const cfenv = require('cfenv');
111111
const appEnv = cfenv.getAppEnv();
112112
// --------- ADD THIS SNIPPET ---------

Diff for: docs/site/tutorials/soap-calculator/soap-calculator-tutorial-add-datasource.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ JSON configuration file and a .ts file with the Datasource name and added an
6767
entry inside the index.ts file.
6868

6969
```sh
70-
create src/datasources/calculator.datasource.json
70+
create src/datasources/calculator.config.json
7171
create src/datasources/calculator.datasource.ts
7272
update src/datasources/index.ts
7373

@@ -103,10 +103,10 @@ bind the Node.js method _Multiply_.
103103
}
104104
```
105105

106-
Edit the file `src/datasources/calculator.datasource.json` and add the following
106+
Edit the file `src/datasources/calculator.config.json` and add the following
107107
configuration after the `remoteEnabled: true,` property as follows:
108108

109-
{% include code-caption.html content="src/datasources/calculator.datasource.json" %}
109+
{% include code-caption.html content="src/datasources/calculator.config.json" %}
110110

111111
```ts
112112
"operations": {

Diff for: docs/site/tutorials/todo/todo-tutorial-datasource.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ lb4 datasource
3939
? window.localStorage key to use for persistence (browser only):
4040
? Full path to file for persistence (server only): ./data/db.json
4141

42-
create src/datasources/db.datasource.json
42+
create src/datasources/db.config.json
4343
create src/datasources/db.datasource.ts
4444
update src/datasources/index.ts
4545

Diff for: docs/site/tutorials/todo/todo-tutorial-geocoding-service.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ $ lb4 datasource
4747
? Default options for the request:
4848
? An array of operation templates:
4949
? Use default CRUD mapping: No
50-
create src/datasources/geocoder.datasource.json
50+
create src/datasources/geocoder.config.json
5151
create src/datasources/geocoder.datasource.ts
5252
# npm will install dependencies now
5353
update src/datasources/index.ts
@@ -59,7 +59,7 @@ Edit the newly created datasource configuration to configure Geocoder API
5959
endpoints. Configuration options provided by REST Connector are described in our
6060
docs here: [REST connector](/doc/en/lb3/REST-connector.html).
6161

62-
{% include code-caption.html content="/src/datasources/geocoder.datasource.json" %}
62+
{% include code-caption.html content="/src/datasources/geocoder.config.json" %}
6363

6464
```json
6565
{

Diff for: examples/express-composition/src/datasources/ds.datasource.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
// This file is licensed under the MIT License.
44
// License text available at https://opensource.org/licenses/MIT
55

6-
import {inject} from '@loopback/core';
7-
import {juggler} from '@loopback/repository';
8-
import * as config from './ds.datasource.json';
6+
import { inject } from '@loopback/core';
7+
import { juggler } from '@loopback/repository';
8+
import * as config from './ds.config.json';
99

1010
export class DsDataSource extends juggler.DataSource {
1111
static dataSourceName = 'ds';

Diff for: examples/soap-calculator/src/datasources/calculator.datasource.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
// This file is licensed under the MIT License.
44
// License text available at https://opensource.org/licenses/MIT
55

6-
import {inject} from '@loopback/core';
7-
import {juggler} from '@loopback/repository';
8-
import * as config from './calculator.datasource.json';
6+
import { inject } from '@loopback/core';
7+
import { juggler } from '@loopback/repository';
8+
import * as config from './calculator.config.json';
99

1010
export class CalculatorDataSource extends juggler.DataSource {
1111
static dataSourceName = 'calculator';

Diff for: examples/todo-list/src/datasources/db.datasource.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
// This file is licensed under the MIT License.
44
// License text available at https://opensource.org/licenses/MIT
55

6-
import {inject} from '@loopback/core';
7-
import {juggler} from '@loopback/repository';
8-
import * as config from './db.datasource.json';
6+
import { inject } from '@loopback/core';
7+
import { juggler } from '@loopback/repository';
8+
import * as config from './db.config.json';
99

1010
export class DbDataSource extends juggler.DataSource {
1111
static dataSourceName = 'db';

Diff for: examples/todo/src/__tests__/helpers.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
// This file is licensed under the MIT License.
44
// License text available at https://opensource.org/licenses/MIT
55

6-
import {HttpCachingProxy} from '@loopback/http-caching-proxy';
7-
import {merge} from 'lodash';
6+
import { HttpCachingProxy } from '@loopback/http-caching-proxy';
7+
import { merge } from 'lodash';
88
import * as path from 'path';
9-
import * as GEO_CODER_CONFIG from '../datasources/geocoder.datasource.json';
10-
import {Todo} from '../models/index';
11-
import {GeocoderService, GeoPoint} from '../services/geocoder.service';
9+
import * as GEO_CODER_CONFIG from '../datasources/geocoder.config.json';
10+
import { Todo } from '../models/index';
11+
import { GeocoderService, GeoPoint } from '../services/geocoder.service';
1212

1313
/*
1414
==============================================================================
@@ -63,7 +63,7 @@ export function getProxiedGeoCoderConfig(proxy: HttpCachingProxy) {
6363
});
6464
}
6565

66-
export {HttpCachingProxy};
66+
export { HttpCachingProxy };
6767
export async function givenCachingProxy() {
6868
const proxy = new HttpCachingProxy({
6969
cachePath: path.resolve(__dirname, '.http-cache'),

Diff for: examples/todo/src/datasources/db.datasource.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
// This file is licensed under the MIT License.
44
// License text available at https://opensource.org/licenses/MIT
55

6-
import {inject} from '@loopback/core';
7-
import {juggler} from '@loopback/repository';
8-
import * as config from './db.datasource.json';
6+
import { inject } from '@loopback/core';
7+
import { juggler } from '@loopback/repository';
8+
import * as config from './db.config.json';
99

1010
export class DbDataSource extends juggler.DataSource {
1111
static dataSourceName = 'db';

Diff for: examples/todo/src/datasources/geocoder.datasource.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
// This file is licensed under the MIT License.
44
// License text available at https://opensource.org/licenses/MIT
55

6-
import {inject} from '@loopback/core';
7-
import {juggler, AnyObject} from '@loopback/repository';
8-
import * as config from './geocoder.datasource.json';
6+
import { inject } from '@loopback/core';
7+
import { AnyObject, juggler } from '@loopback/repository';
8+
import * as config from './geocoder.config.json';
99

1010
export class GeocoderDataSource extends juggler.DataSource {
1111
static dataSourceName = 'geocoder';

Diff for: packages/cli/generators/datasource/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ module.exports = class DataSourceGenerator extends ArtifactGenerator {
240240
this.artifactInfo.className = utils.toClassName(this.artifactInfo.name);
241241
this.artifactInfo.fileName = utils.toFileName(this.artifactInfo.name);
242242
// prettier-ignore
243-
this.artifactInfo.jsonFileName = `${this.artifactInfo.fileName}.datasource.json`;
243+
this.artifactInfo.jsonFileName = `${this.artifactInfo.fileName}.config.json`;
244244
// prettier-ignore
245245
this.artifactInfo.outFile = `${this.artifactInfo.fileName}.datasource.ts`;
246246

Diff for: packages/cli/lib/utils.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,7 @@ exports.getDataSourceName = function(datasourcesDir, dataSourceClass) {
559559

560560
exports.dataSourceToJSONFileName = function(dataSourceClass) {
561561
return path.join(
562-
toFileName(dataSourceClass.replace('Datasource', '')) + '.datasource.json',
562+
toFileName(dataSourceClass.replace('Datasource', '')) + '.config.json',
563563
);
564564
};
565565

Diff for: packages/cli/snapshots/integration/generators/datasource.integration.snapshots.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
ValueOrPromise,
1616
} from '@loopback/core';
1717
import {juggler} from '@loopback/repository';
18-
import * as config from './ds.datasource.json';
18+
import * as config from './ds.config.json';
1919
2020
@lifeCycleObserver('datasource')
2121
export class DsDataSource extends juggler.DataSource
@@ -56,7 +56,7 @@ import {
5656
ValueOrPromise,
5757
} from '@loopback/core';
5858
import {juggler} from '@loopback/repository';
59-
import * as config from './ds.datasource.json';
59+
import * as config from './ds.config.json';
6060
6161
@lifeCycleObserver('datasource')
6262
export class DsDataSource extends juggler.DataSource
@@ -97,7 +97,7 @@ import {
9797
ValueOrPromise,
9898
} from '@loopback/core';
9999
import {juggler} from '@loopback/repository';
100-
import * as config from './ds.datasource.json';
100+
import * as config from './ds.config.json';
101101
102102
@lifeCycleObserver('datasource')
103103
export class DsDataSource extends juggler.DataSource
@@ -138,7 +138,7 @@ import {
138138
ValueOrPromise,
139139
} from '@loopback/core';
140140
import {juggler} from '@loopback/repository';
141-
import * as config from './ds.datasource.json';
141+
import * as config from './ds.config.json';
142142
143143
@lifeCycleObserver('datasource')
144144
export class DsDataSource extends juggler.DataSource
@@ -179,7 +179,7 @@ import {
179179
ValueOrPromise,
180180
} from '@loopback/core';
181181
import {juggler} from '@loopback/repository';
182-
import * as config from './ds.datasource.json';
182+
import * as config from './ds.config.json';
183183
184184
@lifeCycleObserver('datasource')
185185
export class DsDataSource extends juggler.DataSource

Diff for: packages/cli/test/fixtures/relation/index.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ exports.SANDBOX_FILES = [
108108
},
109109
{
110110
path: DATASOURCE_APP_PATH,
111-
file: 'dbkv.datasource.json',
111+
file: 'dbkv.config.json',
112112
content: JSON.stringify({
113113
name: 'dbkv',
114114
connector: 'kv-redis',
@@ -121,15 +121,15 @@ exports.SANDBOX_FILES = [
121121
},
122122
{
123123
path: DATASOURCE_APP_PATH,
124-
file: 'dbmem.datasource.json',
124+
file: 'dbmem.config.json',
125125
content: JSON.stringify({
126126
name: 'dbmem',
127127
connector: 'memory',
128128
}),
129129
},
130130
{
131131
path: DATASOURCE_APP_PATH,
132-
file: 'my-ds.datasource.json',
132+
file: 'my-ds.config.json',
133133
content: JSON.stringify({
134134
name: 'MyDS',
135135
connector: 'memory',
@@ -142,15 +142,15 @@ exports.SANDBOX_FILES = [
142142
},
143143
{
144144
path: DATASOURCE_APP_PATH,
145-
file: 'restdb.datasource.json',
145+
file: 'restdb.config.json',
146146
content: JSON.stringify({
147147
name: 'restdb',
148148
connector: 'rest',
149149
}),
150150
},
151151
{
152152
path: DATASOURCE_APP_PATH,
153-
file: 'sqlite3.datasource.json',
153+
file: 'sqlite3.config.json',
154154
content: JSON.stringify({
155155
name: 'sqlite3',
156156
connector: 'loopback-connector-sqlite3',

Diff for: packages/cli/test/fixtures/repository/index.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ exports.SANDBOX_FILES = [
2121
},
2222
{
2323
path: DATASOURCE_APP_PATH,
24-
file: 'dbkv.datasource.json',
24+
file: 'dbkv.config.json',
2525
content: JSON.stringify({
2626
name: 'dbkv',
2727
connector: 'kv-redis',
@@ -34,15 +34,15 @@ exports.SANDBOX_FILES = [
3434
},
3535
{
3636
path: DATASOURCE_APP_PATH,
37-
file: 'dbmem.datasource.json',
37+
file: 'dbmem.config.json',
3838
content: JSON.stringify({
3939
name: 'dbmem',
4040
connector: 'memory',
4141
}),
4242
},
4343
{
4444
path: DATASOURCE_APP_PATH,
45-
file: 'my-ds.datasource.json',
45+
file: 'my-ds.config.json',
4646
content: JSON.stringify({
4747
name: 'MyDS',
4848
connector: 'memory',
@@ -55,15 +55,15 @@ exports.SANDBOX_FILES = [
5555
},
5656
{
5757
path: DATASOURCE_APP_PATH,
58-
file: 'restdb.datasource.json',
58+
file: 'restdb.config.json',
5959
content: JSON.stringify({
6060
name: 'restdb',
6161
connector: 'rest',
6262
}),
6363
},
6464
{
6565
path: DATASOURCE_APP_PATH,
66-
file: 'sqlite3.datasource.json',
66+
file: 'sqlite3.config.json',
6767
content: JSON.stringify({
6868
name: 'sqlite3',
6969
connector: 'loopback-connector-sqlite3',

0 commit comments

Comments
 (0)