Skip to content

Commit

Permalink
Convert dataProvider, fakeServer and i18n to ts
Browse files Browse the repository at this point in the history
  • Loading branch information
josephktcheung committed Mar 11, 2020
1 parent a5c7bcf commit cc348ed
Show file tree
Hide file tree
Showing 16 changed files with 36 additions and 12 deletions.
1 change: 1 addition & 0 deletions examples/demo/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
"not op_mini all"
],
"devDependencies": {
"@types/fetch-mock": "^7.3.2",
"@types/classnames": "^2.2.9",
"@types/jest": "^24.0.23",
"@types/node": "^12.12.14",
Expand Down
4 changes: 2 additions & 2 deletions examples/demo/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ const App = () => {

const fetchDataProvider = async () => {
restoreFetch = await fakeServerFactory(
process.env.REACT_APP_DATA_PROVIDER
process.env.REACT_APP_DATA_PROVIDER || ''
);
const dataProviderInstance = await dataProviderFactory(
process.env.REACT_APP_DATA_PROVIDER
process.env.REACT_APP_DATA_PROVIDER || ''
);
setDataProvider(
// GOTCHA: dataProviderInstance can be a function
Expand Down
1 change: 1 addition & 0 deletions examples/demo/src/data-generator-retail.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
declare module 'data-generator-retail';
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import buildApolloClient, {
} from 'ra-data-graphql-simple';
import { DELETE } from 'ra-core';
import gql from 'graphql-tag';
const getGqlResource = resource => {
const getGqlResource = (resource: string) => {
switch (resource) {
case 'customers':
return 'Customer';
Expand All @@ -28,17 +28,17 @@ const getGqlResource = resource => {
}
};

const customBuildQuery = introspectionResults => {
const customBuildQuery = (introspectionResults: any) => {
const buildQuery = buildQueryFactory(introspectionResults);

return (type, resource, params) => {
return (type: any, resource: any, params: any) => {
if (type === DELETE) {
return {
query: gql`mutation remove${resource}($id: ID!) {
remove${resource}(id: $id)
}`,
variables: { id: params.id },
parseResponse: ({ data }) => {
parseResponse: ({ data }: any) => {
if (data[`remove${resource}`]) {
return { data: { id: params.id } };
}
Expand All @@ -59,11 +59,11 @@ export default () => {
},
introspection: {
operationNames: {
[DELETE]: resource => `remove${resource.name}`,
[DELETE]: (resource: any) => `remove${resource.name}`,
},
},
buildQuery: customBuildQuery,
}).then(dataProvider => (type, resource, params) =>
}).then((dataProvider: any) => (type: any, resource: any, params: any) =>
dataProvider(type, getGqlResource(resource), params)
);
};
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export default type => {
export default (type: string) => {
switch (type) {
case 'graphql':
return import('./graphql').then(factory => factory.default());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@ const delayedDataProvider = new Proxy(restProvider, {
get: (target, name, self) =>
name === 'then' // as we await for the dataProvider, JS calls then on it. We must trap that call or else the dataProvider will be called with the then method
? self
: (resource, params) =>
: (resource: any, params: any) =>
new Promise(resolve =>
setTimeout(
() => resolve(restProvider[name](resource, params)),
() =>
resolve(
restProvider[name as any](resource, params)
),
500
)
),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import JsonGraphqlServer from 'json-graphql-server';
import generateData from 'data-generator-retail';

import fetchMock from 'fetch-mock';

export default () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export default type => {
export default (type: string) => {
switch (type) {
case 'graphql':
return import('./graphql').then(factory => factory.default());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
// @ts-ignore
import FakeRest from 'fakerest';
import fetchMock from 'fetch-mock';
// @ts-ignore
import generateData from 'data-generator-retail';

export default () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// @ts-ignore
import englishMessages from 'ra-language-english';

export default {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// @ts-ignore
import frenchMessages from 'ra-language-french';

export default {
Expand Down
1 change: 1 addition & 0 deletions examples/demo/src/json-graphql-server.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
declare module 'json-graphql-server';
1 change: 1 addition & 0 deletions examples/demo/src/ra-data-graphql-simple.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
declare module 'ra-data-graphql-simple';
1 change: 1 addition & 0 deletions examples/demo/src/ra-language-english.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
declare module 'ra-language-english';
6 changes: 6 additions & 0 deletions examples/demo/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,9 @@ export interface FieldProps<T extends Record = Record> {
export interface Review extends Record {
customer_id: string;
}

declare global {
interface Window {
restServer: any;
}
}
5 changes: 5 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1485,6 +1485,11 @@
resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==

"@types/fetch-mock@^7.3.2":
version "7.3.2"
resolved "https://registry.yarnpkg.com/@types/fetch-mock/-/fetch-mock-7.3.2.tgz#58805ba36a9357be92cc8c008dbfda937e9f7d8f"
integrity sha512-NCEfv49jmDsBAixjMjEHKVgmVQlJ+uK56FOc+2roYPExnXCZDpi6mJOHQ3v23BiO84hBDStND9R2itJr7PNoow==

"@types/glob@^7.1.1":
version "7.1.1"
resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"
Expand Down

0 comments on commit cc348ed

Please sign in to comment.