diff --git a/package-lock.json b/package-lock.json index 75e5fa9b5c291c5a746d1eb0ae0480326a05f9d8..b1bd16684cabe4bb7a091200657f823ed72e4f91 100644 --- a/package-lock.json +++ b/package-lock.json @@ -245,9 +245,9 @@ "integrity": "sha512-A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA==" }, "@types/node": { - "version": "9.4.7", - "resolved": "http://registry.npmjs.org/@types/node/-/node-9.4.7.tgz", - "integrity": "sha512-4Ba90mWNx8ddbafuyGGwjkZMigi+AWfYLSDCpovwsE63ia8w93r3oJ8PIAQc3y8U+XHcnMOHPIzNe3o438Ywcw==" + "version": "10.9.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.9.3.tgz", + "integrity": "sha512-DOzWZKUnmFYG0KUOs+9HEBju2QhBU6oM2zeluunQNt0vnJvnkHvtDNlQPZDkTrkC5pZrNx1TPqeL137zciXZMQ==" }, "@types/passport": { "version": "0.3.5", @@ -4168,14 +4168,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4190,20 +4188,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -4320,8 +4315,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -4333,7 +4327,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -4348,7 +4341,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -4356,14 +4348,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -4382,7 +4372,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -4463,8 +4452,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -4476,7 +4464,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -4598,7 +4585,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -9715,6 +9701,19 @@ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, + "ts-loader": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-4.5.0.tgz", + "integrity": "sha512-ihgVaSmgrX4crGV4n7yuoHPoCHbDzj9aepCZR9TgIx4SgJ9gdnB6xLHgUBb7bsFM/f0K6x9iXa65KY/Fu1Klkw==", + "dev": true, + "requires": { + "chalk": "^2.3.0", + "enhanced-resolve": "^4.0.0", + "loader-utils": "^1.0.2", + "micromatch": "^3.1.4", + "semver": "^5.0.1" + } + }, "tslib": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", @@ -9750,6 +9749,12 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, + "typescript": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.0.3.tgz", + "integrity": "sha512-kk80vLW9iGtjMnIv11qyxLqZm20UklzuR2tL0QAnDIygIUIemcZMxlMWudl9OOt76H3ntVzcTiddQ1/pAAJMYg==", + "dev": true + }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", diff --git a/package.json b/package.json index bdd1bb6689c5ab89ae85bc9274d41c810e56de20..28ce1ad9df82ee24380d6b57b175fc063b07b39d 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "url-loader": "^0.6.2" }, "devDependencies": { + "@types/node": "^10.9.3", "babel-eslint": "^8.2.6", "eslint": "^4.19.1", "eslint-config-standard": "^11.0.0", @@ -58,6 +59,8 @@ "eslint-plugin-standard": "^3.1.0", "jsdoc": "^3.5.5", "nodemon": "^1.18.3", + "ts-loader": "^4.5.0", + "typescript": "^3.0.3", "webpack": "^4.17.1", "webpack-cli": "^2.1.5", "webpack-node-externals": "^1.7.2" diff --git a/src/index.js b/src/index.ts similarity index 71% rename from src/index.js rename to src/index.ts index d7929d9739ea580e9c23d5eb61d7231ce4b1e46b..84a371a01c42e96ded803418ec5613abb43f8cc1 100644 --- a/src/index.js +++ b/src/index.ts @@ -1,10 +1,9 @@ /** - * @file Lance le serveur configuré dans {@link server.js} + * @file Lance le serveur configuré dans {@link server.ts} * @author manifold */ import app from './server'; import colors from 'colors'; -import passport from 'passport'; const port = process.env.PORT || 3000; diff --git a/src/server.js b/src/server.ts similarity index 98% rename from src/server.js rename to src/server.ts index f931c3a1e181d96ba678fbb82c15b2294baa4b73..842bec39e5f16f2e0f1d7f7fad661b09a681770e 100644 --- a/src/server.js +++ b/src/server.ts @@ -32,8 +32,6 @@ import morgan from 'morgan'; import path from 'path'; import fs from 'fs'; -import './config_passport'; - const app = express(); // "The app object conventionally denotes the Express application" (https://expressjs.com/en/4x/api.html#app) @@ -44,10 +42,9 @@ app.use(bodyParser.urlencoded({ //parses bodies of media type "application/x-www })); app.use(cookieParser()); //parses Cookie header and populate req.cookies with an object keyed by the cookie names. was necessary for express-session before its v1.5.0. on peut probablement l'enlever desormais. -//GHETTO // Config de passport pour l'authentification ldap. // Ne fait que *configurer* passport pour la strategie 'ldap' (pas d'incidence sur la strategie 'session' normalement) -import './config_passport.js'; +import './config_passport'; @@ -136,7 +133,7 @@ app.use(cors(corsOptions)); //GHETTO // Config de passport pour l'authentification ldap. Ne fait que *configurer* passport (aucun passport.authenticate() n'est appele, par exemple) -import './config_passport.js'; +import './config_passport'; //with custom callback: //http://www.passportjs.org/docs/authenticate/#custom-callback @@ -203,11 +200,6 @@ app.post('/login', ); */ -/** - * FIN AUTHENTIFICATION POUR LES REQUETES DE CONNEXION VIA LDAP VENANT DU FRONT - */ - - /** * @desc API GRAPHQL */ @@ -293,9 +285,5 @@ app.get('/*', ((req, res, next) => res.redirect('/adminview')) ); -/** - * FIN SETUP DE ADMINVIEW, L'INTERFACE ADMIN DES BDD - */ - export default app; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000000000000000000000000000000000000..7678ec4a63521742ca24276a977fa232ef7c218f --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "module": "commonjs", + "esModuleInterop": true, + "target": "es6", + "moduleResolution": "node", + "sourceMap": true, + "outDir": "build", + "resolveJsonModule": true, + }, + "include": ["src/**/*"] +} \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index 47ae22d5d75574d81dfb3e76453e20a4d120b9af..8e59545677eb4518896b87a4cf3fd9dadec7954a 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -3,20 +3,14 @@ const nodeExternals = require('webpack-node-externals'); const CopyWebpackPlugin = require('copy-webpack-plugin'); const config = { - entry: './src/index.js', + entry: './src/index.ts', target: 'node', node: { __dirname: false }, - output: { - path: path.resolve(__dirname, 'build'), - publicPath: '/assets/', - filename: 'bundle.js' - }, - - devtool: 'source-map', + //devtool: 'inline-source-map', externals: [nodeExternals()], @@ -24,6 +18,10 @@ const config = { rules: [{ test: /\.js$/, use: ['eslint-loader'] + },{ + test: /\.ts$/, + use: ['ts-loader'], + exclude: /node_modules/ },{ test: /\.css$/, use: ['style-loader', 'css-loader'] @@ -36,7 +34,9 @@ const config = { } }] }, - + resolve: { + extensions: ['.ts', '.js', '.json'] + }, plugins: [ new CopyWebpackPlugin([{ from: 'src/css', @@ -46,7 +46,13 @@ const config = { to: 'views' }] ) - ] + ], + + output: { + path: path.resolve(__dirname, 'build'), + publicPath: '/assets/', + filename: 'bundle.js' + }, }; module.exports = config; \ No newline at end of file