diff --git a/package.json b/package.json index c83408a5ad6dfca838119c59f596cb83ee2e0bce..33ce4a6c5ab274cb94956c7e7f66fc2730913cfe 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "@types/d3": "^5.7.2", "@types/lodash": "^4.14.149", "@types/luxon": "^1.21.0", + "@types/node-fetch": "^2.5.7", "@types/react": "^16.9.15", "@types/react-dom": "^16.9.8", "@types/react-router-dom": "^5.1.3", diff --git a/src/cozy-client.d.ts b/src/cozy-client.d.ts index 7af0d41b8278cc1c40bb598ec1b901317fc19d08..57ae513900b5e53b1c6301e30ffe047a46e1db94 100644 --- a/src/cozy-client.d.ts +++ b/src/cozy-client.d.ts @@ -74,3 +74,5 @@ export type QueryState<D> = { count: number data: D[] } + +export function fromEnv(env: NodeJS.ProcessEnv, schema: object): () => Client diff --git a/src/targets/services/service.ts b/src/targets/services/service.ts index 4443dacc35351cfcf0089d2502c2189e6ada7562..c0788e1ffd2154653da9c9bd8e48822ed9900418 100644 --- a/src/targets/services/service.ts +++ b/src/targets/services/service.ts @@ -2,26 +2,21 @@ import fetch from 'node-fetch' global.fetch = fetch import CozyClient from 'cozy-client' -import { schema } from 'doctypes' +import schema from 'doctypes' -const assertEnvVar = varName => { +const assertEnvVar = (varName: string) => { if (!process.env[varName]) { throw new Error(`${varName} environment variable is not set`) } } -// TODO Check to use CozyClient.fromEnv -export const runService = service => { +export const runService = (service: Function) => { assertEnvVar('COZY_URL') assertEnvVar('COZY_CREDENTIALS') - const client = new CozyClient({ - uri: process.env.COZY_URL.trim(), - schema, - token: process.env.COZY_CREDENTIALS.trim(), - }) + const client = CozyClient.fromEnv(process.env, { schema }) - return service({ client }).catch(e => { + return service({ client }).catch((e: ExceptionInformation) => { // eslint-disable-next-line no-console console.error(e) process.exit(1) diff --git a/yarn.lock b/yarn.lock index 05d86c03cc6273b34156f0fc618ce84e2e156416..fbfbd082d74a107839dc326a74a81eb4469bf6c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1566,6 +1566,14 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== +"@types/node-fetch@^2.5.7": + version "2.5.7" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.7.tgz#20a2afffa882ab04d44ca786449a276f9f6bbf3c" + integrity sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + "@types/node@*": version "14.0.23" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.23.tgz#676fa0883450ed9da0bb24156213636290892806" @@ -3401,7 +3409,7 @@ columnify@1.5.4: strip-ansi "^3.0.0" wcwidth "^1.0.0" -combined-stream@^1.0.6, combined-stream@~1.0.6: +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -6301,6 +6309,15 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= +form-data@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" + integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -9220,13 +9237,6 @@ minilog@3.1.0, "minilog@https://github.com/cozy/minilog.git#master": dependencies: microee "0.0.6" -"minilog@git+https://github.com/cozy/minilog.git#master": - version "3.1.0" - uid f01f7d9dfe20981177dd34b9662c2f077d818f82 - resolved "git+https://github.com/cozy/minilog.git#f01f7d9dfe20981177dd34b9662c2f077d818f82" - dependencies: - microee "0.0.6" - minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"