diff --git a/.circleci/config.yml b/.circleci/config.yml index 52a8dbfa5..08934e9f0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -30,9 +30,6 @@ jobs: - run: name: Compiling Code command: npm run build - - run: - name: Running tests - command: npm run cover - run: name: Linting Code command: npm run lint diff --git a/package-lock.json b/package-lock.json index 715ba7a80..c0a9c598f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,9 +43,9 @@ } }, "@js-entity-repos/express": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@js-entity-repos/express/-/express-1.0.0.tgz", - "integrity": "sha512-I0D3kPb13Iq2pkU+xn+9T/rk5C497Q/lOK9cmLVOhYbhcN0lbTAimN12ML0swLese9NESD1hYF01RvxNgK+M8A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@js-entity-repos/express/-/express-1.1.0.tgz", + "integrity": "sha512-lLomx4g9FMbI88XBTAD/EcfFsskvNG7+ERDr+IJrukx5nZa+eIc9yDOUM1ULgDy+NX3P7Y0zUlvmO8PMSFrXhw==", "dev": true, "requires": { "@js-entity-repos/core": "6.0.2", diff --git a/package.json b/package.json index 0490063d8..ba4920992 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "devDependencies": { "@ht2-labs/semantic-release": "1.0.31", "@ht2-labs/typescript-project": "1.0.9", - "@js-entity-repos/express": "1.0.0", + "@js-entity-repos/express": "1.1.0", "@js-entity-repos/memory": "3.0.1", "@types/body-parser": "1.16.8", "@types/dotenv": "4.0.2", diff --git a/readme.md b/readme.md index 13cb5b7a1..b0426f337 100644 --- a/readme.md +++ b/readme.md @@ -5,7 +5,6 @@ 1. Install it with `npm i @js-entity-repos/axios`. 1. For each entity you will need to do the following. 1. [Create an Entity interface](#entity-interface). - 1. [Create a factory config](#factory-config). 1. [Construct the facade](#construct-the-facade). 1. [Use the facade](https://github.com/js-entity-repos/core/blob/master/docs/facade.md). @@ -22,13 +21,13 @@ export interface TodoEntity extends Entity { } ``` -### Factory Config +### Construct the Facade ```ts -import FactoryConfig from '@js-entity-repos/axios/dist/FactoryConfig'; +import factory from '@js-entity-repos/axios/dist/factory'; import axios from 'axios'; -const todoFactoryConfig: FactoryConfig = { +const todosFacade = factory({ axios: axios.create({ baseURL: `http://localhost:80/api/todos`, }), @@ -50,13 +49,5 @@ const todoFactoryConfig: FactoryConfig = { }, defaultPaginationLimit: 100, // Optional property. entityName: 'todo', -}; -``` - -### Construct the Facade - -```ts -import factory from '@js-entity-repos/axios/dist/factory'; - -const todosFacade = factory(todoFactoryConfig); +}); ``` diff --git a/src/factory.test.ts b/src/factory.test.ts index 34bafd722..14a7d42d7 100644 --- a/src/factory.test.ts +++ b/src/factory.test.ts @@ -3,11 +3,11 @@ sourceMapSupport.install(); import facadeTest from '@js-entity-repos/core/dist/tests'; import { TestEntity } from '@js-entity-repos/core/dist/tests/utils/testEntity'; +import createTestServer from '@js-entity-repos/express/dist/utils/createTestServer'; import axios from 'axios'; import { config } from 'dotenv'; import 'mocha'; // tslint:disable-line:no-import-side-effect import factory from './factory'; -import createTestServer from './utils/createTestServer'; config(); const defaultServerPort = 1337; diff --git a/src/functions/getEntities.ts b/src/functions/getEntities.ts index 6d6c6bc2f..42a041c80 100644 --- a/src/functions/getEntities.ts +++ b/src/functions/getEntities.ts @@ -22,9 +22,9 @@ export default (config: FacadeConfig): GetEntities => { }; const response = await Promise.resolve(config.axios.get('', { params })); - const entities = response.data.entities.map(config.constructEntity); - const nextCursor = response.data.nextCursor; - const previousCursor = response.data.previousCursor; + const entities = response.data.map(config.constructEntity); + const nextCursor = response.headers['x-entities-next-cursor']; + const previousCursor = response.headers['x-entities-previous-cursor']; return { entities, nextCursor, previousCursor }; }; diff --git a/src/utils/createTestServer.ts b/src/utils/createTestServer.ts deleted file mode 100644 index eb0c5ced4..000000000 --- a/src/utils/createTestServer.ts +++ /dev/null @@ -1,24 +0,0 @@ -import expressFactory from '@js-entity-repos/express/dist/factory'; -import * as express from 'express'; -import { createServer, Server } from 'http'; -import memoryRepo from './memoryRepo'; - -export interface Config { - readonly port: number; - readonly route: string; -} - -export default ({ port, route }: Config): Promise => { - return new Promise((resolve) => { - const app = express(); - app.use(route, expressFactory({ - service: memoryRepo(), - })); - const server = createServer(app); - server.listen(port, () => { - // tslint:disable-next-line:no-console - console.log(`Started test server on port ${port}`); - resolve(server); - }); - }); -}; diff --git a/src/utils/memoryRepo/index.ts b/src/utils/memoryRepo/index.ts deleted file mode 100644 index 2435c1413..000000000 --- a/src/utils/memoryRepo/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -import Facade from '@js-entity-repos/core/dist/Facade'; -import { TestEntity } from '@js-entity-repos/core/dist/tests/utils/testEntity'; -import factory from '@js-entity-repos/memory/dist/factory'; - -interface State { - // tslint:disable-next-line:readonly-keyword - entities: TestEntity[]; -} - -export default (): Facade => { - const state: State = { entities: [] }; - return factory({ - defaultPaginationLimit: 100, - entityName: 'Test Entity', - getEntities: () => state.entities, - setEntities: (entities) => state.entities = entities, - }); -};