Skip to content
26 changes: 22 additions & 4 deletions src/api/components/getMemberInfo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,24 @@ export class GetMemberInfo implements IBMiComponent {
});
}

private static parseDateString(tsString: string|undefined): Date | undefined {
if (!tsString) {
return undefined;
}

const dateParts = tsString.split('-');
const timeParts = dateParts[3].split('.');

const year = parseInt(dateParts[0], 10);
const month = parseInt(dateParts[1], 10) - 1; // Months are zero-based in JavaScript
const day = parseInt(dateParts[2], 10);
const hours = parseInt(timeParts[0], 10);
const minutes = parseInt(timeParts[1], 10);
const seconds = parseInt(timeParts[2], 10);

return new Date(year, month, day, hours, minutes, seconds);
}

async getMemberInfo(connection: IBMi, library: string, sourceFile: string, member: string): Promise<IBMiMember | undefined> {
const config = connection.config!;
const tempLib = config.tempLibrary;
Expand All @@ -78,8 +96,8 @@ export class GetMemberInfo implements IBMiComponent {
name: result.MEMBER,
extension: result.EXTENSION,
text: result.DESCRIPTION,
created: new Date(result.CREATED ? Number(result.CREATED) : 0),
changed: new Date(result.CHANGED ? Number(result.CHANGED) : 0)
created: GetMemberInfo.parseDateString(String(result.CREATED)),
changed: GetMemberInfo.parseDateString(String(result.CHANGED))
} as IBMiMember
}
}
Expand Down Expand Up @@ -110,8 +128,8 @@ export class GetMemberInfo implements IBMiComponent {
name: result.MEMBER,
extension: result.EXTENSION,
text: result.DESCRIPTION,
created: new Date(result.CREATED ? Number(result.CREATED) : 0),
changed: new Date(result.CHANGED ? Number(result.CHANGED) : 0)
created: GetMemberInfo.parseDateString(String(result.CREATED)),
changed: GetMemberInfo.parseDateString(String(result.CHANGED))
} as IBMiMember
});
}
Expand Down
4 changes: 2 additions & 2 deletions src/api/tests/suites/components.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ describe('Component Tests', () => {
expect(memberInfoC?.library).toBe(tempLib);
expect(memberInfoC?.file).toBe(tempSPF);
expect(memberInfoC?.name).toBe(tempMbr);
expect(memberInfoC?.created).toBeTypeOf('number');
expect(memberInfoC?.changed).toBeTypeOf('number');
expect(memberInfoC?.created).toBeTypeOf('object');
expect(memberInfoC?.changed).toBeTypeOf('object');

// Cleanup...
await connection!.runCommand({
Expand Down