diff --git a/src/AngloResource.ts b/src/AngloResource.ts index 6311aef..dff7509 100644 --- a/src/AngloResource.ts +++ b/src/AngloResource.ts @@ -19,6 +19,19 @@ export class AngloResource { this.parseUrl(baseUrl, url); } + componentFolder(): string | undefined { + return this._componentFolder; + } + componentName(): string { + return this._componentName; + } + componentNameDecoded(): string { + return decodeURIComponent(this._componentName); + } + componentNameEncoded(): string { + return encodeURIComponent(this._componentName); + } + baseUrl(): string { return this._baseUrl; } diff --git a/src/ExternalComponentResource.ts b/src/ExternalComponentResource.ts index fcf0d64..b9ddc5c 100644 --- a/src/ExternalComponentResource.ts +++ b/src/ExternalComponentResource.ts @@ -1,9 +1,10 @@ import { AngloVersionedResource } from "./AngloVersionedResource.js"; import { ImplementationResource } from "./ImplementationResource.js"; -import { svnUpdate } from "./svn.js"; +import { ImplementationInternal } from "./ImplementationInternalClass.js"; export class ExternalComponentResource extends AngloVersionedResource { public _parentSolutionImplementation: ImplementationResource; + private implementationInternal: ImplementationInternal; constructor( baseUrl: string, @@ -12,20 +13,9 @@ export class ExternalComponentResource extends AngloVersionedResource { ) { super(baseUrl, url); this._parentSolutionImplementation = parentSolutionImplementation; + this.implementationInternal = new ImplementationInternal(); } - componentFolder(): string | undefined { - return this._componentFolder; - } - componentName(): string { - return this._componentName; - } - componentNameDecoded(): string { - return decodeURIComponent(this._componentName); - } - componentNameEncoded(): string { - return encodeURIComponent(this._componentName); - } parentSolutionImplementation(): ImplementationResource { return this._parentSolutionImplementation; } @@ -38,13 +28,6 @@ export class ExternalComponentResource extends AngloVersionedResource { ); } public async update(): Promise { - if ( - this._parentSolutionImplementation._implementationContext && - this._componentName - ) { - await svnUpdate( - `${this._parentSolutionImplementation._implementationContext.path}${this._componentName}` - ); - } + await this.implementationInternal.update(this); } } diff --git a/src/ImplementationInternalClass.ts b/src/ImplementationInternalClass.ts new file mode 100644 index 0000000..8a72812 --- /dev/null +++ b/src/ImplementationInternalClass.ts @@ -0,0 +1,20 @@ +import { svnUpdate } from "./svn.js"; +import { ExternalComponentResource } from "./ExternalComponentResource"; +import { InternalComponentResource } from "./InternalComponentResource"; + +export class ImplementationInternal { + public async update( + resource: InternalComponentResource | ExternalComponentResource + ): Promise { + if ( + resource._parentSolutionImplementation._implementationContext && + resource.componentName() + ) { + await svnUpdate( + `${ + resource._parentSolutionImplementation._implementationContext.path + }${resource.componentName()}` + ); + } + } +} diff --git a/src/InternalComponentResource.ts b/src/InternalComponentResource.ts index f38300f..863dee5 100644 --- a/src/InternalComponentResource.ts +++ b/src/InternalComponentResource.ts @@ -1,9 +1,10 @@ import { AngloResource } from "./AngloResource.js"; import { ImplementationResource } from "./ImplementationResource.js"; -import { svnUpdate } from "./svn.js"; +import { ImplementationInternal } from "./ImplementationInternalClass.js"; export class InternalComponentResource extends AngloResource { public _parentSolutionImplementation: ImplementationResource; + private sharedImplementationInternalClass: ImplementationInternal; constructor( baseUrl: string, @@ -12,22 +13,17 @@ export class InternalComponentResource extends AngloResource { ) { super(baseUrl, url); this._parentSolutionImplementation = parentSolutionImplementation; + this.sharedImplementationInternalClass = new ImplementationInternal(); } public async checkSpecifics(): Promise { // todo return true; } - public async update(): Promise { - if ( - this._parentSolutionImplementation._implementationContext && - this._componentName - ) { - await svnUpdate( - `${this._parentSolutionImplementation._implementationContext.path}${this._componentName}` - ); - } + async update(): Promise { + await this.sharedImplementationInternalClass.update(this); } + parentSolutionImplementation(): ImplementationResource { return this._parentSolutionImplementation; } diff --git a/src/index.ts b/src/index.ts index 791a4f4..e776e66 100644 --- a/src/index.ts +++ b/src/index.ts @@ -10,6 +10,7 @@ import { ExternalComponent } from "./types.js"; async function deploymentCheck() { const reader = new ImplementationResourceReader(); const implementationResources = await reader.load(true, true); + implementationResources.forEach( async (implementationResource: ImplementationResource) => { const collectionOfComponentToBeTagged: ExternalComponentResource[] = diff --git a/src/svn.ts b/src/svn.ts index d85d8af..1912001 100644 --- a/src/svn.ts +++ b/src/svn.ts @@ -1,5 +1,4 @@ import exclusions from "./data/exclude.json" assert { type: "json" }; -import * as fs from "fs"; import { exec } from "child_process"; import { parseString } from "xml2js"; import { @@ -77,11 +76,6 @@ export async function svnList( ({ name }: arrayOfSVNList) => `${name[0]}` ); - const excludeJson = fs.readFileSync("./dist/data/exclude.json", "utf-8"); - const exclude = JSON.parse(excludeJson); - - // const parsedExclusions = exclusions; - const filteredInternals = internals.filter( (internal: string) => !exclusions.includes(internal) );