From 75c91799027149b5aeefbed5311403e8f1e8388b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabrice=20PENHO=C3=8BT?= Date: Wed, 13 Oct 2021 17:22:02 +0200 Subject: [PATCH] =?UTF-8?q?R=C3=A9percussion=20changement=20de=20noms=20en?= =?UTF-8?q?tre=20classe=20et=20interface=20RemoteSource/RemoteSources.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/exampleWithHTML.ts | 1 - src/freeDatas2HTML.ts | 11 +++------- src/freeDatas2HTMLInterfaces.ts | 4 ++-- src/freeDatas2HTMLParserForCSV.ts | 34 +++++++++++++++--------------- src/freeDatas2HTMLParserForHTML.ts | 14 ++++++------ src/freeDatas2HTMLParserForJSON.ts | 14 ++++++------ tests/parserForCSVSpec.ts | 2 +- tests/parserForHTMLSpec.ts | 1 - tests/parserForJSONSpec.ts | 1 - 9 files changed, 37 insertions(+), 45 deletions(-) diff --git a/src/exampleWithHTML.ts b/src/exampleWithHTML.ts index 7a0cff7..b8ba141 100644 --- a/src/exampleWithHTML.ts +++ b/src/exampleWithHTML.ts @@ -6,7 +6,6 @@ const initialise = async () => { // Création d'un convertisseur parsant des données transmises en HTML let converter=new FreeDatas2HTML("HTML"); - // converter.parser.setRemoteSource({ url: "http://localhost:8080/datas/posts.json", withCredentials:true, headers: [{ key:"Authorization", value:"Token YWxhZGRpbjpvcGVuc2VzYW1l" }] }); converter.datasViewElt={ id:"datas" }; await converter.run(); // Adaptation du rendu suivant la taille de l'écran diff --git a/src/freeDatas2HTML.ts b/src/freeDatas2HTML.ts index e23f2a4..3dbd1a1 100644 --- a/src/freeDatas2HTML.ts +++ b/src/freeDatas2HTML.ts @@ -1,7 +1,7 @@ const { compare }=require('natural-orderby'); const errors=require("./errors.js"); -import { Counter, Datas, DatasRenders, DOMElement, Paginations, Parsers, ParseErrors, RemoteSource, Selectors, SortingFields, SortingFunctions } from "./freeDatas2HTMLInterfaces"; +import { Counter, Datas, DatasRenders, DOMElement, Paginations, Parsers, ParseErrors, RemoteSources, Selectors, SortingFields, SortingFunctions } from "./freeDatas2HTMLInterfaces"; import { Pagination} from "./freeDatas2HTMLPagination"; import { ParserForCSV} from "./freeDatas2HTMLParserForCSV"; import { ParserForHTML} from "./freeDatas2HTMLParserForHTML"; @@ -20,12 +20,7 @@ export class FreeDatas2HTML public datasHTML: string = ""; // Le parseur : public parser: Parsers; // public pour permettre de charger un parseur tiers après instanciation - - // Données distantes : - //private _datasRemoteSource: RemoteSource|undefined=undefined; - // Ou locales : - //private _datas2Parse:string|undefined=undefined; - // Dans tous les cas, besoin d'un type : + // Type de données à traiter public datasType: "CSV"|"HTML"|"JSON"|undefined; // Le nom des champs trouvés dans les données : @@ -53,7 +48,7 @@ export class FreeDatas2HTML // J'initialiser avec des valeurs par défaut pouvant être surchargées par les setters // Attention, si je transmets datasRemoteSource ici, il ne passera pas par un new RemoteSources() // Il doit donc déjà avoir été testé - constructor(datasType:"CSV"|"HTML"|"JSON", datas2Parse="", datasRemoteSource?:RemoteSource) + constructor(datasType:"CSV"|"HTML"|"JSON", datas2Parse="", datasRemoteSource?:RemoteSources) { this.datasRender=new Render(this); switch (datasType) diff --git a/src/freeDatas2HTMLInterfaces.ts b/src/freeDatas2HTMLInterfaces.ts index b59edfa..85e2627 100644 --- a/src/freeDatas2HTMLInterfaces.ts +++ b/src/freeDatas2HTMLInterfaces.ts @@ -65,7 +65,7 @@ export interface ParseResults } export interface Parsers { - datasRemoteSource: RemoteSource; + datasRemoteSource: RemoteSources; setRemoteSource(settings : RemoteSourceSettings): void; datas2Parse?: string; document2Parse?: HTMLDocument; @@ -78,7 +78,7 @@ export interface RemoteSourceSettings headers?: { key:string, value:string }[]; withCredentials?: boolean; } -export interface RemoteSource extends RemoteSourceSettings +export interface RemoteSources extends RemoteSourceSettings { getFetchSettings() : {}; } diff --git a/src/freeDatas2HTMLParserForCSV.ts b/src/freeDatas2HTMLParserForCSV.ts index 7dedb02..0ecf215 100644 --- a/src/freeDatas2HTMLParserForCSV.ts +++ b/src/freeDatas2HTMLParserForCSV.ts @@ -1,9 +1,12 @@ -const Papa = require("papaparse"); -const errors = require("./errors.js"); -import { RemoteSources } from "./freeDatas2HTMLRemoteSources"; +const Papa=require("papaparse"); +const errors= require("./errors.js"); +import { RemoteSource } from "./freeDatas2HTMLRemoteSource"; -import { ParseResults, Parsers, RemoteSource, RemoteSourceSettings } from "./freeDatas2HTMLInterfaces"; -interface PapaParseOptions +import { ParseResults, Parsers, RemoteSources, RemoteSourceSettings } from "./freeDatas2HTMLInterfaces"; + +// Options de Papa Parse +// cf. https://www.papaparse.com/docs#config +interface PublicPapaParseOptions { delimiter: string; newline: string; @@ -11,28 +14,25 @@ interface PapaParseOptions escapeChar: string; transformHeader?(field: string, index: number): string; preview: number; - comments: false|string, + comments: false|string; fastMode: boolean|undefined; transform?(value: string): string; } interface PrivatePapaParseOptions { - header: boolean; // nécessaire pour obtenir le nom des champs + header: boolean; download: boolean; - downloadRequestHeaders: undefined| { [index: string]:string|boolean|number } ; + downloadRequestHeaders: undefined| { [index: string]:string }; skipEmptyLines: string; withCredentials: boolean|undefined; } export class ParserForCSV implements Parsers { - private _datasRemoteSource: RemoteSource; + private _datasRemoteSource: RemoteSources; private _datas2Parse:string=""; private _parseResults:ParseResults|undefined=undefined; - - // Ouverture de certaines options de Papa Parse : - // cf. https://www.papaparse.com/docs#config - public options: PapaParseOptions = + public options: PublicPapaParseOptions = { delimiter: "", newline: "", @@ -55,20 +55,20 @@ export class ParserForCSV implements Parsers } // L'instance d'une autre classe que RemoteSource peut être passée au constructeur - constructor(datasRemoteSource?: RemoteSource) + constructor(datasRemoteSource?: RemoteSources) { if(datasRemoteSource !== undefined) this._datasRemoteSource=datasRemoteSource; else - this._datasRemoteSource=new RemoteSources({ url:"" }); + this._datasRemoteSource=new RemoteSource({ url:"" }); } public setRemoteSource(source: RemoteSourceSettings) { - this._datasRemoteSource=new RemoteSources(source); + this._datasRemoteSource=new RemoteSource(source); } - get datasRemoteSource() : RemoteSource + get datasRemoteSource() : RemoteSources { return this._datasRemoteSource; } diff --git a/src/freeDatas2HTMLParserForHTML.ts b/src/freeDatas2HTMLParserForHTML.ts index 54fb8b7..70b7c4a 100644 --- a/src/freeDatas2HTMLParserForHTML.ts +++ b/src/freeDatas2HTMLParserForHTML.ts @@ -1,10 +1,10 @@ const errors=require("./errors.js"); -import { ParseErrors, ParseResults, Parsers, RemoteSource, RemoteSourceSettings } from "./freeDatas2HTMLInterfaces"; -import { RemoteSources } from "./freeDatas2HTMLRemoteSources"; +import { ParseErrors, ParseResults, Parsers, RemoteSources, RemoteSourceSettings } from "./freeDatas2HTMLInterfaces"; +import { RemoteSource } from "./freeDatas2HTMLRemoteSource"; export class ParserForHTML implements Parsers { - private _datasRemoteSource: RemoteSource; + private _datasRemoteSource: RemoteSources; private _document2Parse: HTMLDocument=document; private _parseResults: ParseResults|undefined=undefined; private _fieldsSelector: string="table > thead > tr > th"; @@ -12,20 +12,20 @@ export class ParserForHTML implements Parsers private _datasSelector: string="tr > td"; // L'instance d'une autre classe que RemoteSource peut être passée au constructeur - constructor(datasRemoteSource?: RemoteSource) + constructor(datasRemoteSource?: RemoteSources) { if(datasRemoteSource !== undefined) this._datasRemoteSource=datasRemoteSource; else - this._datasRemoteSource=new RemoteSources({ url:"" }); + this._datasRemoteSource=new RemoteSource({ url:"" }); } public setRemoteSource(source: RemoteSourceSettings) { - this._datasRemoteSource=new RemoteSources(source); + this._datasRemoteSource=new RemoteSource(source); } - get datasRemoteSource() : RemoteSource + get datasRemoteSource() : RemoteSources { return this._datasRemoteSource; } diff --git a/src/freeDatas2HTMLParserForJSON.ts b/src/freeDatas2HTMLParserForJSON.ts index ae5b7f9..012dfe7 100644 --- a/src/freeDatas2HTMLParserForJSON.ts +++ b/src/freeDatas2HTMLParserForJSON.ts @@ -1,29 +1,29 @@ const errors = require("./errors.js"); -import { RemoteSources } from "./freeDatas2HTMLRemoteSources"; +import { RemoteSource } from "./freeDatas2HTMLRemoteSource"; -import { ParseErrors, ParseResults, Parsers, RemoteSource, RemoteSourceSettings } from "./freeDatas2HTMLInterfaces"; +import { ParseErrors, ParseResults, Parsers, RemoteSources, RemoteSourceSettings } from "./freeDatas2HTMLInterfaces"; export class ParserForJSON implements Parsers { - private _datasRemoteSource: RemoteSource; + private _datasRemoteSource: RemoteSources; private _datas2Parse: string=""; private _parseResults: ParseResults|undefined=undefined; // L'instance d'une autre classe que RemoteSource peut être passée au constructeur - constructor(datasRemoteSource?: RemoteSource) + constructor(datasRemoteSource?: RemoteSources) { if(datasRemoteSource !== undefined) this._datasRemoteSource=datasRemoteSource; else - this._datasRemoteSource=new RemoteSources({ url:"" }); + this._datasRemoteSource=new RemoteSource({ url:"" }); } public setRemoteSource(source: RemoteSourceSettings) { - this._datasRemoteSource=new RemoteSources(source); + this._datasRemoteSource=new RemoteSource(source); } - get datasRemoteSource() : RemoteSource + get datasRemoteSource() : RemoteSources { return this._datasRemoteSource; } diff --git a/tests/parserForCSVSpec.ts b/tests/parserForCSVSpec.ts index 8122be8..712d46a 100644 --- a/tests/parserForCSVSpec.ts +++ b/tests/parserForCSVSpec.ts @@ -1,5 +1,5 @@ const Papa = require("papaparse"); -import { RemoteSource, RemoteSourceSettings } from "../src/freeDatas2HTMLInterfaces"; +import { RemoteSourceSettings } from "../src/freeDatas2HTMLInterfaces"; import { ParserForCSV as Parser } from "../src/freeDatas2HTMLParserForCSV"; const errors=require("../src/errors.js"); diff --git a/tests/parserForHTMLSpec.ts b/tests/parserForHTMLSpec.ts index 0700fed..3b05d81 100644 --- a/tests/parserForHTMLSpec.ts +++ b/tests/parserForHTMLSpec.ts @@ -1,4 +1,3 @@ -import { RemoteSource } from "../src/freeDatas2HTMLInterfaces"; import { ParserForHTML as Parser } from "../src/freeDatas2HTMLParserForHTML"; const errors=require("../src/errors.js"); const fixtures=require("./fixtures.js"); diff --git a/tests/parserForJSONSpec.ts b/tests/parserForJSONSpec.ts index b37feb2..4418401 100644 --- a/tests/parserForJSONSpec.ts +++ b/tests/parserForJSONSpec.ts @@ -1,4 +1,3 @@ -import { RemoteSource } from "../src/freeDatas2HTMLInterfaces"; import { ParserForJSON as Parser } from "../src/freeDatas2HTMLParserForJSON"; const errors=require("../src/errors.js");