Skip to content

Instantly share code, notes, and snippets.

@AlbanMinassian
AlbanMinassian / jsonerr.js
Created June 28, 2021 15:58
Comprendre l'architecture hexagonale en 5 minutes - secret - jsonerr
{
"meta": { "whoiam": "services/mon_premier_service.ts", "lang": "fr", "country": "FR", "etc": "..." },
"isout": false, // toujours false si ko
"iserr": true, // toujours true si ko
"err": {
"code": "ERROR_123",
"message": "service en échec",
"origin": {
"meta": { "whoiam": "adapters/db_update.ts", "lang": "fr", "country": "FR", "etc": "..." },
"isout": false,
@AlbanMinassian
AlbanMinassian / jsonout.js
Last active June 28, 2021 15:56
Comprendre l'architecture hexagonale en 5 minutes - secret - jsonout
{
"meta": { "whoiam": "services/mon_premier_service.ts", "lang": "fr", "country": "FR", "etc": "..." },
"iserr": false, // toujours false si ok
"isout": true, // toujours true si ok
"out": "hello jijejo"
}
@AlbanMinassian
AlbanMinassian / jsonin.json
Last active June 28, 2021 15:55
Comprendre l'architecture hexagonale en 5 minutes - secret - jsonin
{
"meta": { "whoiam": "src/index.ts", "lang": "fr", "country": "FR", "etc": "..." },
"in": { "name": "jijejo" }
}
@AlbanMinassian
AlbanMinassian / mon_premier_service.ts
Created June 28, 2021 15:52
Comprendre l'architecture hexagonale en 5 minutes - secret - class
// services/mon_premier_service.ts
export default class mon_premier_service {
constructor(argAdaptaters) {
this.adaptaters = argAdaptaters;
}
run(argDatas) {
this.adaptaters.lire_un_fichier();
this.adaptaters.mettre_a_jour_la_base_de_données();
this.adaptaters.appeler_un_service_post();
this.adaptaters.logger.warn();
@AlbanMinassian
AlbanMinassian / db_update.mjs
Created June 28, 2021 15:50
Comprendre l'architecture hexagonale en 5 minutes - secret 2 - after
// adapters/db_update.mjs
function(argData, logger) {
logger.info("");
pg.update(argData);
return true;
}
@AlbanMinassian
AlbanMinassian / db_update.mjs
Created June 28, 2021 15:49
Comprendre l'architecture hexagonale en 5 minutes - secret 2 - before
// adapters/db_update.mjs
function(argData) {
pg.update(argData);
return true;
}
@AlbanMinassian
AlbanMinassian / index.mjs
Last active June 28, 2021 15:48
Comprendre l'architecture hexagonale en 5 minutes - secret 1 - index.mjs
// index.mjs
import lire_un_fichier from "adapters/lire_un_fichier.ts"
import mettre_a_jour_la_base_de_données from "adapters/mettre_a_jour_la_base_de_données.ts"
import appeller_un_service_post from "adapters/appeller_un_service_post.ts"
import logger from "adapters/logger.ts"
import mon_premier_service from "services/mon_premier_service.ts"
const datas = { "name": "world" };
const adapters = {
@AlbanMinassian
AlbanMinassian / mon_premier_service.ts
Created June 28, 2021 15:36
Comprendre l'architecture hexagonale en 5 minutes - adapteurs avancés - mon_premier_service.ts
// services/mon_premier_service.ts
import IData from "services/mon_premier_service.IData.t.ds"
import IAdapters from "services/mon_premier_service.IAdapters.t.ds"
import IResult from "services/mon_premier_service.IResult.t.ds"
export default function mon_premier_service(argDatas: IData, argAdaptaters : IAdapters) : IResult {
argAdaptaters.lire_un_fichier();
argAdaptaters.mettre_a_jour_la_base_de_données();
argAdaptaters.appeller_un_service_post();
argAdaptaters.logger.warn();
@AlbanMinassian
AlbanMinassian / index.ts
Created June 28, 2021 15:32
Comprendre l'architecture hexagonale en 5 minutes - adaptateurs avancés - index.mjs
// index.ts
import fs from "fs";
import pg from "pg";
import axios from "axios";
import logger from "logger";
import IData from "services/mon_premier_service.IData.t.ds"
import IAdapters from "services/mon_premier_service.IAdapters.t.ds"
import IResult from "services/mon_premier_service.IResult.t.ds"
@AlbanMinassian
AlbanMinassian / index.mjs
Created June 28, 2021 15:30
Comprendre l'architecture hexagonale en 5 minutes - avantages - index.mjs
// index.mjs
import aws from "aws-sdk";
import oracle from "oracle";
import soap from "soap";
import datalog from "datalog";
import mon_premier_service from "services/mon_premier_service.mjs"
const datas = { "name": "world" };
const adapters = {