diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..66920aa --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +node_modules +package-lock.json + +.env + +**/*.log + +dist/ +build/ + +.vscode/ + diff --git a/README.md b/README.md new file mode 100644 index 0000000..bedbbbb --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +# CMS de l'association Les anges de la rue + +**server** + +``` +// setup +npm install + +// dev +npm run server:dev + +// prod +npm run server:ncc +``` + +**.env** + +``` +API_GQL_PORT= +``` + +**postgresql** + +``` +CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; +SELECT uuid_generate_v1(); + + +CREATE TABLE prods ( + prod_id uuid DEFAULT uuid_generate_v4 (), + prod_val jsonb, + PRIMARY KEY (prod_id) +); + +ALTER TABLE prods ADD COLUMN created_at TIMESTAMP DEFAULT NOW() +``` diff --git a/hello.txt b/hello.txt deleted file mode 100644 index 24e6119..0000000 --- a/hello.txt +++ /dev/null @@ -1 +0,0 @@ -helloooo, it's meeeee \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..3c91be4 --- /dev/null +++ b/package.json @@ -0,0 +1,30 @@ +{ + "name": "ladr_cms", + "version": "0.0.1", + "description": "", + "main": "index.js", + "scripts": { + "server:dev": "npm-run-all --parallel server:dev:build server:dev:start", + "server:dev:build": "rollup -w -c server/server.rollup.config.js", + "server:dev:start": "nodemon dist/server.dev.js", + "server:ncc": "npm run server:ncc:build && npm run server:ncc:start", + "server:ncc:build": "ncc build server/server.index.js -o dist/ncc -M -S", + "server:ncc:start": "node dist/ncc", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "devDependencies": { + "@zeit/ncc": "^0.6.0", + "graphql": "^14.0.2", + "nodemon": "^1.18.9", + "npm-run-all": "^4.1.5", + "rollup": "^0.68.0" + }, + "dependencies": { + "dotenv": "^6.2.0", + "express": "^4.16.4", + "express-graphql": "^0.7.1", + "helmet": "^3.15.0" + } +} diff --git a/server/nodemon.json b/server/nodemon.json new file mode 100644 index 0000000..4ec463d --- /dev/null +++ b/server/nodemon.json @@ -0,0 +1,3 @@ +{ + "ignore": ["server", "front", "db"] +} diff --git a/server/server.conf.js b/server/server.conf.js new file mode 100644 index 0000000..f8b2456 --- /dev/null +++ b/server/server.conf.js @@ -0,0 +1,3 @@ +import dotenv from 'dotenv'; + +export default dotenv.config().parsed; diff --git a/server/server.index.js b/server/server.index.js new file mode 100644 index 0000000..8d06536 --- /dev/null +++ b/server/server.index.js @@ -0,0 +1,38 @@ +import express from 'express'; +import helmet from 'helmet'; + +import graphqlHTTP from 'express-graphql'; +import { buildSchema } from 'graphql'; + +import conf from './server.conf'; + +const schema = buildSchema(` + type Query { + hello: String + } +`); + +const root = { + hello: () => { + return 'Hello world!'; + }, +}; + +const app = express(); +app.use(helmet()); + +app.use( + '/gql', + graphqlHTTP({ + schema: schema, + rootValue: root, + graphiql: true, + }), +); + +const host = 'localhost'; +const port = conf.API_GQL_PORT; + +app.listen(port, host, () => { + console.info(`listen ${port}`); +}); diff --git a/server/server.rollup.config.js b/server/server.rollup.config.js new file mode 100644 index 0000000..7a0fc07 --- /dev/null +++ b/server/server.rollup.config.js @@ -0,0 +1,5 @@ +export default { + input: 'server/server.index.js', + output: { file: 'dist/server.dev.js', format: 'cjs', interop: false }, + external: ['dotenv', 'express', 'express-graphql', 'graphql', 'helmet'], +};