From ed538e75c74a13ae83c11707e5193898e2c2be83 Mon Sep 17 00:00:00 2001 From: "Daniel A.C. Martin" Date: Tue, 8 May 2018 21:07:33 +0100 Subject: [PATCH] WIP: Support typescript --- .gitignore | 1 + Makefile | 5 ++++- package.json | 11 +++++++---- tsconfig.json | 23 +++++++++++++++++++++++ 4 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore index 0ac606f..bf34785 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .nyc_output/ +build/ coverage/ node_modules/ diff --git a/Makefile b/Makefile index a85aa5a..2a5085d 100644 --- a/Makefile +++ b/Makefile @@ -34,11 +34,14 @@ docker-test-deps: docker-compose-deps docker pull '$(test_image)' docker pull '$(perf_test_image)' -node-deps: node_modules/ +node-deps: build/ node_modules/ node_modules/: package.json npm install +build/: node_modules/ + npm run compile + docker: docker build -t '$(DOCKER_IMAGE)' . diff --git a/package.json b/package.json index b246f66..847c2f9 100644 --- a/package.json +++ b/package.json @@ -4,9 +4,10 @@ "description": "Life Event Verification API", "main": "src/app.js", "scripts": { - "start": "node .", - "start:dev": "NODE_ENV=development POSTGRES_DB=levdb POSTGRES_USER=lev POSTGRES_PASSWORD=lev POSTGRES_SSL=false nodemon -w src/ -w config.js .", - "start:dev-mock": "NODE_ENV=development MOCK=true nodemon -w src/ -w config.js -w mock/ .", + "compile": "tsc", + "start": "node build/src/app.js", + "start:dev": "NODE_ENV=development POSTGRES_DB=levdb POSTGRES_USER=lev POSTGRES_PASSWORD=lev POSTGRES_SSL=false nodemon -w src/ -w config.js -x ts-node .", + "start:dev-mock": "NODE_ENV=development MOCK=true nodemon -w src/ -w config.js -w mock/ -x ts-node .", "test": "npm run test:cover && npm run test:check-coverage", "test:unit": "mocha --reporter spec ./test/unit", "test:cover": "nyc --all npm run test:unit && nyc report --reporter=html", @@ -44,7 +45,9 @@ "nyc": "^11.8.0", "proxyquire": "^2.0.1", "sinon": "^5.0.10", - "sinon-chai": "^3.1.0" + "sinon-chai": "^3.1.0", + "ts-node": "^6.0.3", + "typescript": "^2.8.3" }, "nyc": { "include": [ diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..2161295 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "allowJs": true, + "noImplicitAny": true, + "noImplicitReturns": true, + "outDir": "./build", + "preserveConstEnums": true, + "removeComments": false, + "sourceMap": true, + "target": "es6" + }, + "include": [ + "./src/**/*", + "./test/**/*" + ], + "exclude": [ + "coverage", + "example-db", + "mock", + "node_modules", + "sql" + ] +}