shared update method for internals and externals

main
guidohollander 3 years ago
parent dbcc71dc92
commit f1adb7e93b

@ -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;
}

@ -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<void> {
if (
this._parentSolutionImplementation._implementationContext &&
this._componentName
) {
await svnUpdate(
`${this._parentSolutionImplementation._implementationContext.path}${this._componentName}`
);
}
await this.implementationInternal.update(this);
}
}

@ -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<void> {
if (
resource._parentSolutionImplementation._implementationContext &&
resource.componentName()
) {
await svnUpdate(
`${
resource._parentSolutionImplementation._implementationContext.path
}${resource.componentName()}`
);
}
}
}

@ -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<boolean> {
// todo
return true;
}
public async update(): Promise<void> {
if (
this._parentSolutionImplementation._implementationContext &&
this._componentName
) {
await svnUpdate(
`${this._parentSolutionImplementation._implementationContext.path}${this._componentName}`
);
}
async update(): Promise<void> {
await this.sharedImplementationInternalClass.update(this);
}
parentSolutionImplementation(): ImplementationResource {
return this._parentSolutionImplementation;
}

@ -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[] =

@ -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)
);

Loading…
Cancel
Save

Powered by TurnKey Linux.