@kth/om-kursen-ladok-client 2.2.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/kth/KTHPeriod/KTHPeriod.d.ts +19 -0
- package/dist/kth/KTHPeriod/KTHPeriod.js +60 -0
- package/dist/kth/KTHPeriod/KTHPeriod.js.map +1 -0
- package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.d.ts +10 -0
- package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.js +41 -0
- package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.js.map +1 -0
- package/dist/kth/KTHPeriod/convertToKTHPeriods.d.ts +12 -0
- package/dist/kth/KTHPeriod/convertToKTHPeriods.js +76 -0
- package/dist/kth/KTHPeriod/convertToKTHPeriods.js.map +1 -0
- package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.d.ts +7 -0
- package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.js +36 -0
- package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.js.map +1 -0
- package/dist/kth/KTHPeriod/getKTHPeriodSemesters.d.ts +16 -0
- package/dist/kth/KTHPeriod/getKTHPeriodSemesters.js +28 -0
- package/dist/kth/KTHPeriod/getKTHPeriodSemesters.js.map +1 -0
- package/dist/kth/KTHPeriod/matchDateToKTHPeriodYear.d.ts +9 -0
- package/dist/kth/KTHPeriod/matchDateToKTHPeriodYear.js +21 -0
- package/dist/kth/KTHPeriod/matchDateToKTHPeriodYear.js.map +1 -0
- package/dist/kth/KTHPeriod/testdata/kthPeriods.d.ts +8 -0
- package/dist/kth/KTHPeriod/testdata/kthPeriods.js +43 -0
- package/dist/kth/KTHPeriod/testdata/kthPeriods.js.map +1 -0
- package/dist/kth/extractFunctions/extractBasicCourseData.d.ts +4 -1
- package/dist/kth/extractFunctions/extractBasicCourseData.js +6 -5
- package/dist/kth/extractFunctions/extractBasicCourseData.js.map +1 -1
- package/dist/mapCourseRound.d.ts +8 -15
- package/dist/mapCourseRound.js.map +1 -1
- package/dist/mapCourseSyllabus.d.ts +4 -1
- package/dist/mapCourseSyllabus.js.map +1 -1
- package/dist/search/types.d.ts +4 -1
- package/dist/supportApis/PeriodService.d.ts +8 -0
- package/dist/supportApis/PeriodService.js +46 -0
- package/dist/supportApis/PeriodService.js.map +1 -0
- package/dist/utils/AcademicSemester.d.ts +1 -0
- package/dist/utils/AcademicSemester.js +5 -0
- package/dist/utils/AcademicSemester.js.map +1 -1
- package/dist/utils/languageUtil.d.ts +5 -0
- package/dist/utils/languageUtil.js +11 -2
- package/dist/utils/languageUtil.js.map +1 -1
- package/dist/utils/periodUtil.d.ts +6 -0
- package/dist/utils/periodUtil.js +12 -2
- package/dist/utils/periodUtil.js.map +1 -1
- package/dist/utils/typeChecking.d.ts +6 -0
- package/dist/utils/typeChecking.js +8 -1
- package/dist/utils/typeChecking.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AcademicSemester, SemesterNumber } from '../../utils';
|
|
2
|
+
export type KTHPeriod = 0 | 1 | 2 | 3 | 4 | 5;
|
|
3
|
+
export type KTHPeriodLabel = `P${KTHPeriod}`;
|
|
4
|
+
export type KTHPeriodSemester = {
|
|
5
|
+
semester: AcademicSemester;
|
|
6
|
+
period: KTHPeriod;
|
|
7
|
+
};
|
|
8
|
+
export type KTHPeriodDefinition = {
|
|
9
|
+
fromDate: Date;
|
|
10
|
+
toDate: Date;
|
|
11
|
+
academicSemester: AcademicSemester;
|
|
12
|
+
kthPeriod: KTHPeriod;
|
|
13
|
+
};
|
|
14
|
+
export declare const formatKTHPeriod: (kthPeriod: KTHPeriod) => KTHPeriodLabel;
|
|
15
|
+
export declare const parseKTHPeriod: (kthPeriod: string) => KTHPeriod | undefined;
|
|
16
|
+
export declare const isKTHPeriodLabel: (s: string) => s is KTHPeriodLabel;
|
|
17
|
+
export declare const matchKthPeriodToSemesterNumber: (period: KTHPeriod) => SemesterNumber | undefined;
|
|
18
|
+
export declare const compareKTHPeriod: (a: KTHPeriod, b: KTHPeriod) => number;
|
|
19
|
+
export declare const compareKTHPeriodSemester: (a: KTHPeriodSemester, b: KTHPeriodSemester) => number;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compareKTHPeriodSemester = exports.compareKTHPeriod = exports.matchKthPeriodToSemesterNumber = exports.isKTHPeriodLabel = exports.parseKTHPeriod = exports.formatKTHPeriod = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
const formatKTHPeriod = (kthPeriod) => {
|
|
6
|
+
return `P${kthPeriod}`;
|
|
7
|
+
};
|
|
8
|
+
exports.formatKTHPeriod = formatKTHPeriod;
|
|
9
|
+
const regex = /^P([0-5])$/;
|
|
10
|
+
const parseKTHPeriod = (kthPeriod) => {
|
|
11
|
+
const match = regex.exec(kthPeriod);
|
|
12
|
+
if (!match) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
return Number(match[1]);
|
|
16
|
+
};
|
|
17
|
+
exports.parseKTHPeriod = parseKTHPeriod;
|
|
18
|
+
const isKTHPeriodLabel = (s) => regex.test(s);
|
|
19
|
+
exports.isKTHPeriodLabel = isKTHPeriodLabel;
|
|
20
|
+
const matchKthPeriodToSemesterNumber = (period) => {
|
|
21
|
+
switch (period) {
|
|
22
|
+
case 0:
|
|
23
|
+
case 1:
|
|
24
|
+
case 2:
|
|
25
|
+
return utils_1.SemesterNumber.Autumn;
|
|
26
|
+
case 3:
|
|
27
|
+
case 4:
|
|
28
|
+
case 5:
|
|
29
|
+
return utils_1.SemesterNumber.Spring;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
exports.matchKthPeriodToSemesterNumber = matchKthPeriodToSemesterNumber;
|
|
33
|
+
const compareKTHPeriod = (a, b) => {
|
|
34
|
+
return getSortOrder(a) - getSortOrder(b);
|
|
35
|
+
};
|
|
36
|
+
exports.compareKTHPeriod = compareKTHPeriod;
|
|
37
|
+
const getSortOrder = (kthPeriod) => {
|
|
38
|
+
switch (kthPeriod) {
|
|
39
|
+
case 3:
|
|
40
|
+
return 1;
|
|
41
|
+
case 4:
|
|
42
|
+
return 2;
|
|
43
|
+
case 5:
|
|
44
|
+
return 3;
|
|
45
|
+
case 0:
|
|
46
|
+
return 4;
|
|
47
|
+
case 1:
|
|
48
|
+
return 5;
|
|
49
|
+
case 2:
|
|
50
|
+
return 6;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const compareKTHPeriodSemester = (a, b) => {
|
|
54
|
+
const semesterComparison = utils_1.AcademicSemester.compare(a.semester, b.semester);
|
|
55
|
+
if (semesterComparison !== 0)
|
|
56
|
+
return semesterComparison;
|
|
57
|
+
return (0, exports.compareKTHPeriod)(a.period, b.period);
|
|
58
|
+
};
|
|
59
|
+
exports.compareKTHPeriodSemester = compareKTHPeriodSemester;
|
|
60
|
+
//# sourceMappingURL=KTHPeriod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KTHPeriod.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/KTHPeriod.ts"],"names":[],"mappings":";;;AAAA,uCAA8D;AAkBvD,MAAM,eAAe,GAAG,CAAC,SAAoB,EAAE,EAAE;IACtD,OAAO,IAAI,SAAS,EAAoB,CAAA;AAC1C,CAAC,CAAA;AAFY,QAAA,eAAe,mBAE3B;AAED,MAAM,KAAK,GAAG,YAAY,CAAA;AAEnB,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAE,EAAE;IAClD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAc,CAAA;AACtC,CAAC,CAAA;AAPY,QAAA,cAAc,kBAO1B;AAEM,MAAM,gBAAgB,GAAG,CAAC,CAAS,EAAuB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAApE,QAAA,gBAAgB,oBAAoD;AAE1E,MAAM,8BAA8B,GAAG,CAAC,MAAiB,EAA8B,EAAE;IAC9F,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,CAAC,CAAC;QACP,KAAK,CAAC,CAAC;QACP,KAAK,CAAC;YACJ,OAAO,sBAAc,CAAC,MAAM,CAAA;QAC9B,KAAK,CAAC,CAAC;QACP,KAAK,CAAC,CAAC;QACP,KAAK,CAAC;YACJ,OAAO,sBAAc,CAAC,MAAM,CAAA;IAChC,CAAC;AACH,CAAC,CAAA;AAXY,QAAA,8BAA8B,kCAW1C;AAEM,MAAM,gBAAgB,GAAG,CAAC,CAAY,EAAE,CAAY,EAAE,EAAE;IAC7D,OAAO,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;AAC1C,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B;AAED,MAAM,YAAY,GAAG,CAAC,SAAoB,EAAE,EAAE;IAC5C,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;QACV,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;QACV,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;QACV,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;QACV,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;QACV,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;IACZ,CAAC;AACH,CAAC,CAAA;AAEM,MAAM,wBAAwB,GAAG,CAAC,CAAoB,EAAE,CAAoB,EAAE,EAAE;IACrF,MAAM,kBAAkB,GAAG,wBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC3E,IAAI,kBAAkB,KAAK,CAAC;QAAE,OAAO,kBAAkB,CAAA;IAEvD,OAAO,IAAA,wBAAgB,EAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;AAC7C,CAAC,CAAA;AALY,QAAA,wBAAwB,4BAKpC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Tillfallesperiod } from '../../mapCourseRound';
|
|
2
|
+
import { KTHPeriodDefinition, KTHPeriodSemester } from './KTHPeriod';
|
|
3
|
+
/**
|
|
4
|
+
* This function attempts to match the Forsta and SistaUndervisningsdatum of each tillfallesperiod to a KTHPeriod.
|
|
5
|
+
* It returns an array of KTHPeriod
|
|
6
|
+
* @param tillfallesperioder array of Tillfallesperioder containing ForstaUndervisningsdatum and SistaUndervisningsdatum
|
|
7
|
+
* @param kthPeriods KTHPeriodDefinitions
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
export declare const calculateKTHPeriodSemesterFromTillfallesperiod: (tillfallesperioder: Pick<Tillfallesperiod, "ForstaUndervisningsdatum" | "SistaUndervisningsdatum">[] | undefined, kthPeriods: KTHPeriodDefinition[] | undefined) => KTHPeriodSemester[] | undefined;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.calculateKTHPeriodSemesterFromTillfallesperiod = void 0;
|
|
4
|
+
const typeChecking_1 = require("../../utils/typeChecking");
|
|
5
|
+
const KTHPeriod_1 = require("./KTHPeriod");
|
|
6
|
+
const matchDateToKTHPeriodYear_1 = require("./matchDateToKTHPeriodYear");
|
|
7
|
+
/**
|
|
8
|
+
* This function attempts to match the Forsta and SistaUndervisningsdatum of each tillfallesperiod to a KTHPeriod.
|
|
9
|
+
* It returns an array of KTHPeriod
|
|
10
|
+
* @param tillfallesperioder array of Tillfallesperioder containing ForstaUndervisningsdatum and SistaUndervisningsdatum
|
|
11
|
+
* @param kthPeriods KTHPeriodDefinitions
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
const calculateKTHPeriodSemesterFromTillfallesperiod = (tillfallesperioder, kthPeriods) => {
|
|
15
|
+
if (!(0, typeChecking_1.isArrayWithValues)(tillfallesperioder))
|
|
16
|
+
return undefined;
|
|
17
|
+
if (!(0, typeChecking_1.isArrayWithValues)(kthPeriods))
|
|
18
|
+
return undefined;
|
|
19
|
+
const result = tillfallesperioder.flatMap(({ ForstaUndervisningsdatum, SistaUndervisningsdatum }) => {
|
|
20
|
+
const periods = [
|
|
21
|
+
(0, matchDateToKTHPeriodYear_1.matchDateToKTHPeriodYear)(new Date(ForstaUndervisningsdatum), kthPeriods),
|
|
22
|
+
(0, matchDateToKTHPeriodYear_1.matchDateToKTHPeriodYear)(new Date(SistaUndervisningsdatum), kthPeriods),
|
|
23
|
+
];
|
|
24
|
+
return filterDefinedAndDistinctValues(periods);
|
|
25
|
+
});
|
|
26
|
+
return result.sort(KTHPeriod_1.compareKTHPeriodSemester);
|
|
27
|
+
};
|
|
28
|
+
exports.calculateKTHPeriodSemesterFromTillfallesperiod = calculateKTHPeriodSemesterFromTillfallesperiod;
|
|
29
|
+
const filterDefinedAndDistinctValues = (kthPeriods) => {
|
|
30
|
+
const definedPeriods = kthPeriods.filter(typeChecking_1.isDefined);
|
|
31
|
+
const seenPeriods = new Set();
|
|
32
|
+
// We loop over the defined periods
|
|
33
|
+
const distinctFirst = definedPeriods.filter(period => {
|
|
34
|
+
if (seenPeriods.has(period.period))
|
|
35
|
+
return false; // If we've seen a period before, we do not want to have it once more, return false to filter out
|
|
36
|
+
seenPeriods.add(period.period); // Otherwise, we mark it as seen
|
|
37
|
+
return true; // and return true to keep it
|
|
38
|
+
});
|
|
39
|
+
return distinctFirst;
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=calculateKTHPeriodSemesterFromTillfallesperiod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateKTHPeriodSemesterFromTillfallesperiod.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.ts"],"names":[],"mappings":";;;AACA,2DAAuE;AACvE,2CAAyG;AACzG,yEAAqE;AAErE;;;;;;GAMG;AACI,MAAM,8CAA8C,GAAG,CAC5D,kBAAgH,EAChH,UAA6C,EAC7C,EAAE;IACF,IAAI,CAAC,IAAA,gCAAiB,EAAC,kBAAkB,CAAC;QAAE,OAAO,SAAS,CAAA;IAC5D,IAAI,CAAC,IAAA,gCAAiB,EAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAA;IAEpD,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,EAAE,EAAE;QAClG,MAAM,OAAO,GAAG;YACd,IAAA,mDAAwB,EAAC,IAAI,IAAI,CAAC,wBAAwB,CAAC,EAAE,UAAU,CAAC;YACxE,IAAA,mDAAwB,EAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,EAAE,UAAU,CAAC;SACxE,CAAA;QAED,OAAO,8BAA8B,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,IAAI,CAAC,oCAAwB,CAAC,CAAA;AAC9C,CAAC,CAAA;AAjBY,QAAA,8CAA8C,kDAiB1D;AAED,MAAM,8BAA8B,GAAG,CAAC,UAA6C,EAAuB,EAAE;IAC5G,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,wBAAS,CAAC,CAAA;IAEnD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAa,CAAA;IAExC,mCAAmC;IACnC,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QACnD,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAA,CAAC,iGAAiG;QAElJ,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA,CAAC,gCAAgC;QAC/D,OAAO,IAAI,CAAA,CAAC,6BAA6B;IAC3C,CAAC,CAAC,CAAA;IAEF,OAAO,aAAa,CAAA;AACtB,CAAC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PeriodItem } from '@kth/ladok-mellanlager-client';
|
|
2
|
+
import { KTHPeriodDefinition } from './KTHPeriod';
|
|
3
|
+
/**
|
|
4
|
+
* Takes an array of LadokPeriod definitions (periodItems), splits each LadokPeriod into three KTHPeriodDefinitions and returns
|
|
5
|
+
* the resulting array.
|
|
6
|
+
* Note that the calculation for the break points between the KTHPeriods is hardcoded and based on historical values.
|
|
7
|
+
*
|
|
8
|
+
*
|
|
9
|
+
* @param ladokPeriodDefinitions Response data from call to ladok mellanlager's period endpoint
|
|
10
|
+
* @returns An array of KTHPeriodDefinitions based on the given ladokPeriodDefinitions
|
|
11
|
+
*/
|
|
12
|
+
export declare const convertToKTHPeriods: (ladokPeriodDefinitions: Pick<PeriodItem, "FromDatum" | "TomDatum" | "Kod">[]) => KTHPeriodDefinition[];
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertToKTHPeriods = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
/**
|
|
6
|
+
* Takes an array of LadokPeriod definitions (periodItems), splits each LadokPeriod into three KTHPeriodDefinitions and returns
|
|
7
|
+
* the resulting array.
|
|
8
|
+
* Note that the calculation for the break points between the KTHPeriods is hardcoded and based on historical values.
|
|
9
|
+
*
|
|
10
|
+
*
|
|
11
|
+
* @param ladokPeriodDefinitions Response data from call to ladok mellanlager's period endpoint
|
|
12
|
+
* @returns An array of KTHPeriodDefinitions based on the given ladokPeriodDefinitions
|
|
13
|
+
*/
|
|
14
|
+
const convertToKTHPeriods = (ladokPeriodDefinitions) => {
|
|
15
|
+
const validDefinitions = ladokPeriodDefinitions.filter(({ Kod }) => (0, utils_1.isValidLadokPeriod)(Kod));
|
|
16
|
+
return validDefinitions.flatMap(splitIntoPeriods);
|
|
17
|
+
};
|
|
18
|
+
exports.convertToKTHPeriods = convertToKTHPeriods;
|
|
19
|
+
// Looking at historical data, P1 and P3 have had the following lengths in days.
|
|
20
|
+
const LENGTH_P1 = 62;
|
|
21
|
+
const LENGTH_P3 = 61;
|
|
22
|
+
const getFirstOfJuly = (year) => new Date(`${year}-07-01`);
|
|
23
|
+
const getLastOfJune = (year) => new Date(`${year}-06-30`);
|
|
24
|
+
const splitIntoPeriods = ({ FromDatum, TomDatum, Kod: ladokPeriodString, }) => {
|
|
25
|
+
const fromDateDate = new Date(FromDatum);
|
|
26
|
+
const toDateDate = new Date(TomDatum);
|
|
27
|
+
const academicSemester = utils_1.AcademicSemester.fromLadokPeriodString(ladokPeriodString); // ladokPeriodString will always be defined here, if not, we have bigger problems
|
|
28
|
+
if (academicSemester.semesterNumber === utils_1.SemesterNumber.Autumn) {
|
|
29
|
+
return splitLadokAutumnPeriodIntoKTHPeriodDefinitions(fromDateDate, academicSemester, toDateDate);
|
|
30
|
+
}
|
|
31
|
+
return splitLadokSpringPeriodIntoKTHPeriodDefinitions(fromDateDate, toDateDate, academicSemester);
|
|
32
|
+
};
|
|
33
|
+
const splitLadokAutumnPeriodIntoKTHPeriodDefinitions = (fromDateDate, academicSemester, toDateDate) => {
|
|
34
|
+
const startOfP0 = getFirstOfJuly(fromDateDate.getFullYear()); // Start of P0 is always July 1st
|
|
35
|
+
const endofP0 = getPreviousDay(fromDateDate); // End of P0 is always the day before the first day of HT
|
|
36
|
+
const endOfP1 = addDaysCustom(fromDateDate, LENGTH_P1); // End of P1 is always $LENGTH_P1 days after the first day of HT
|
|
37
|
+
const startOfP2 = addDaysCustom(endOfP1, 1); // Start of P2 is always the day after end of P1
|
|
38
|
+
return [
|
|
39
|
+
{ fromDate: startOfP0, toDate: endofP0, academicSemester, kthPeriod: 0 },
|
|
40
|
+
{ fromDate: fromDateDate, toDate: endOfP1, academicSemester, kthPeriod: 1 },
|
|
41
|
+
{ fromDate: startOfP2, toDate: toDateDate, academicSemester, kthPeriod: 2 },
|
|
42
|
+
];
|
|
43
|
+
};
|
|
44
|
+
const splitLadokSpringPeriodIntoKTHPeriodDefinitions = (fromDateDate, toDateDate, academicSemester) => {
|
|
45
|
+
const endOfP3 = addDaysCustom(fromDateDate, LENGTH_P3); // End of P3
|
|
46
|
+
const startOfP4 = addDaysCustom(endOfP3, 1);
|
|
47
|
+
const startOfP5 = addDaysCustom(toDateDate, 1);
|
|
48
|
+
const endOfP5 = getLastOfJune(toDateDate.getFullYear());
|
|
49
|
+
return [
|
|
50
|
+
{ fromDate: fromDateDate, toDate: endOfP3, academicSemester, kthPeriod: 3 },
|
|
51
|
+
{ fromDate: startOfP4, toDate: toDateDate, academicSemester, kthPeriod: 4 },
|
|
52
|
+
{ fromDate: startOfP5, toDate: endOfP5, academicSemester, kthPeriod: 5 },
|
|
53
|
+
];
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Returns the previous day, can handle DST
|
|
57
|
+
* @param date The date in relation to which to calculate the previous day
|
|
58
|
+
* @returns
|
|
59
|
+
*/
|
|
60
|
+
const getPreviousDay = (date) => {
|
|
61
|
+
const result = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));
|
|
62
|
+
result.setUTCDate(result.getUTCDate() - 1);
|
|
63
|
+
return result;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Returns a Date {days} days after {date}
|
|
67
|
+
* @param date The day to which do add days
|
|
68
|
+
* @param days
|
|
69
|
+
* @returns
|
|
70
|
+
*/
|
|
71
|
+
const addDaysCustom = (date, days) => {
|
|
72
|
+
const result = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));
|
|
73
|
+
result.setUTCDate(result.getUTCDate() + days);
|
|
74
|
+
return result;
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=convertToKTHPeriods.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertToKTHPeriods.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/convertToKTHPeriods.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Tillfallesperiod, Lasperiodsfordelning } from '../../mapCourseRound';
|
|
2
|
+
import { KTHPeriodSemester } from './KTHPeriod';
|
|
3
|
+
type RelevantTillfallesperiod = Pick<Tillfallesperiod, 'ForstaUndervisningsdatum'> & {
|
|
4
|
+
Lasperiodsfordelning: Pick<Lasperiodsfordelning, 'Lasperiodskod'>[];
|
|
5
|
+
};
|
|
6
|
+
export declare const extractKTHPeriodSemesterFromLasperiodsfordelning: (tillfallesperioder: RelevantTillfallesperiod[] | undefined) => KTHPeriodSemester[] | undefined;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractKTHPeriodSemesterFromLasperiodsfordelning = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
const typeChecking_1 = require("../../utils/typeChecking");
|
|
6
|
+
const KTHPeriod_1 = require("./KTHPeriod");
|
|
7
|
+
const extractKTHPeriodSemesterFromLasperiodsfordelning = (tillfallesperioder) => {
|
|
8
|
+
if (!(0, typeChecking_1.isArrayWithValues)(tillfallesperioder))
|
|
9
|
+
return undefined;
|
|
10
|
+
const kthPeriods = tillfallesperioder.flatMap(({ Lasperiodsfordelning, ForstaUndervisningsdatum }) => {
|
|
11
|
+
if (!(0, typeChecking_1.isArrayWithValues)(Lasperiodsfordelning))
|
|
12
|
+
return undefined;
|
|
13
|
+
if (!isStrictIsoDate(ForstaUndervisningsdatum))
|
|
14
|
+
return undefined;
|
|
15
|
+
const firstTuitionDate = new Date(ForstaUndervisningsdatum);
|
|
16
|
+
return Lasperiodsfordelning.map(extractKHTPeriodFromLasperiodsfordelning(firstTuitionDate.getFullYear()));
|
|
17
|
+
});
|
|
18
|
+
const definedKthPeriods = kthPeriods.filter(typeChecking_1.isDefined);
|
|
19
|
+
definedKthPeriods.sort(KTHPeriod_1.compareKTHPeriodSemester);
|
|
20
|
+
return definedKthPeriods;
|
|
21
|
+
};
|
|
22
|
+
exports.extractKTHPeriodSemesterFromLasperiodsfordelning = extractKTHPeriodSemesterFromLasperiodsfordelning;
|
|
23
|
+
const strictIsoDate = /^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/;
|
|
24
|
+
const isStrictIsoDate = (s) => strictIsoDate.test(s);
|
|
25
|
+
const extractKHTPeriodFromLasperiodsfordelning = (yearOfFirstTuitionDate) => ({ Lasperiodskod }) => {
|
|
26
|
+
const kthPeriod = (0, KTHPeriod_1.parseKTHPeriod)(Lasperiodskod);
|
|
27
|
+
if (!(0, typeChecking_1.isDefined)(kthPeriod))
|
|
28
|
+
return undefined;
|
|
29
|
+
// We know that the response from matchKthPeriodToSemesterNumber will not be undefined, because the passed kthPeriod is of correct format.
|
|
30
|
+
const semesterNumber = (0, KTHPeriod_1.matchKthPeriodToSemesterNumber)(kthPeriod);
|
|
31
|
+
return {
|
|
32
|
+
period: kthPeriod,
|
|
33
|
+
semester: new utils_1.AcademicSemester(yearOfFirstTuitionDate, semesterNumber),
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=extractKTHPeriodSemesterFromLasperiodsfordelning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractKTHPeriodSemesterFromLasperiodsfordelning.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.ts"],"names":[],"mappings":";;;AACA,uCAA8C;AAC9C,2DAAuE;AACvE,2CAKoB;AAMb,MAAM,gDAAgD,GAAG,CAC9D,kBAA0D,EACzB,EAAE;IACnC,IAAI,CAAC,IAAA,gCAAiB,EAAC,kBAAkB,CAAC;QAAE,OAAO,SAAS,CAAA;IAE5D,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,EAAE,EAAE;QACnG,IAAI,CAAC,IAAA,gCAAiB,EAAC,oBAAoB,CAAC;YAAE,OAAO,SAAS,CAAA;QAE9D,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC;YAAE,OAAO,SAAS,CAAA;QAEhE,MAAM,gBAAgB,GAAG,IAAI,IAAI,CAAC,wBAAwB,CAAC,CAAA;QAE3D,OAAO,oBAAoB,CAAC,GAAG,CAAC,wCAAwC,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAC3G,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC,wBAAS,CAAC,CAAA;IAEtD,iBAAiB,CAAC,IAAI,CAAC,oCAAwB,CAAC,CAAA;IAEhD,OAAO,iBAAiB,CAAA;AAC1B,CAAC,CAAA;AApBY,QAAA,gDAAgD,oDAoB5D;AAED,MAAM,aAAa,GAAG,0DAA0D,CAAA;AAEhF,MAAM,eAAe,GAAG,CAAC,CAAS,EAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAErE,MAAM,wCAAwC,GAC5C,CAAC,sBAA8B,EAAE,EAAE,CACnC,CAAC,EAAE,aAAa,EAA+C,EAAE,EAAE;IACjE,MAAM,SAAS,GAAG,IAAA,0BAAc,EAAC,aAAa,CAAC,CAAA;IAE/C,IAAI,CAAC,IAAA,wBAAS,EAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IAE3C,0IAA0I;IAC1I,MAAM,cAAc,GAAG,IAAA,0CAA8B,EAAC,SAAS,CAAE,CAAA;IAEjE,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,IAAI,wBAAgB,CAAC,sBAAsB,EAAE,cAAc,CAAC;KACvE,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PeriodItem } from '@kth/ladok-mellanlager-client';
|
|
2
|
+
import { Lasperiodsfordelning, Tillfallesperiod } from '../../mapCourseRound';
|
|
3
|
+
import { KTHPeriodSemester } from './KTHPeriod';
|
|
4
|
+
/**
|
|
5
|
+
* This function tries to extract the KTHPeriods for the given tillfallesperioder.
|
|
6
|
+
* If the tillfallesperioder have Lasperiodsfordelningar, it will take the information from there.
|
|
7
|
+
* If it was unable to extract KTHPeriods from Lasperiodsfordelning, it will attempt to calculate the
|
|
8
|
+
* KTHPeriods based on the first and last date of study of the Tillfallesperioder
|
|
9
|
+
*
|
|
10
|
+
* @param tillfallesperioder Tillfallesperiod for which we want to know the periods
|
|
11
|
+
* @param ladokPeriodDefinitions Response data from call to ladok mellanlager's period endpoint
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
export declare const getKTHPeriodSemesters: (tillfallesperioder: (Pick<Tillfallesperiod, "ForstaUndervisningsdatum" | "SistaUndervisningsdatum"> & {
|
|
15
|
+
Lasperiodsfordelning: Pick<Lasperiodsfordelning, "Lasperiodskod">[];
|
|
16
|
+
})[] | undefined, ladokPeriodDefinitions: PeriodItem[]) => KTHPeriodSemester[];
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getKTHPeriodSemesters = void 0;
|
|
4
|
+
const extractKTHPeriodSemesterFromLasperiodsfordelning_1 = require("./extractKTHPeriodSemesterFromLasperiodsfordelning");
|
|
5
|
+
const convertToKTHPeriods_1 = require("./convertToKTHPeriods");
|
|
6
|
+
const calculateKTHPeriodSemesterFromTillfallesperiod_1 = require("./calculateKTHPeriodSemesterFromTillfallesperiod");
|
|
7
|
+
/**
|
|
8
|
+
* This function tries to extract the KTHPeriods for the given tillfallesperioder.
|
|
9
|
+
* If the tillfallesperioder have Lasperiodsfordelningar, it will take the information from there.
|
|
10
|
+
* If it was unable to extract KTHPeriods from Lasperiodsfordelning, it will attempt to calculate the
|
|
11
|
+
* KTHPeriods based on the first and last date of study of the Tillfallesperioder
|
|
12
|
+
*
|
|
13
|
+
* @param tillfallesperioder Tillfallesperiod for which we want to know the periods
|
|
14
|
+
* @param ladokPeriodDefinitions Response data from call to ladok mellanlager's period endpoint
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
const getKTHPeriodSemesters = (tillfallesperioder, ladokPeriodDefinitions) => {
|
|
18
|
+
let kthPeriods = (0, extractKTHPeriodSemesterFromLasperiodsfordelning_1.extractKTHPeriodSemesterFromLasperiodsfordelning)(tillfallesperioder);
|
|
19
|
+
if (kthPeriods)
|
|
20
|
+
return kthPeriods;
|
|
21
|
+
const kthPeriodDefinitions = (0, convertToKTHPeriods_1.convertToKTHPeriods)(ladokPeriodDefinitions);
|
|
22
|
+
kthPeriods = (0, calculateKTHPeriodSemesterFromTillfallesperiod_1.calculateKTHPeriodSemesterFromTillfallesperiod)(tillfallesperioder, kthPeriodDefinitions);
|
|
23
|
+
if (kthPeriods)
|
|
24
|
+
return kthPeriods;
|
|
25
|
+
return [];
|
|
26
|
+
};
|
|
27
|
+
exports.getKTHPeriodSemesters = getKTHPeriodSemesters;
|
|
28
|
+
//# sourceMappingURL=getKTHPeriodSemesters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getKTHPeriodSemesters.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/getKTHPeriodSemesters.ts"],"names":[],"mappings":";;;AAEA,yHAAqH;AAErH,+DAA2D;AAC3D,qHAAiH;AAEjH;;;;;;;;;GASG;AACI,MAAM,qBAAqB,GAAG,CACnC,kBAIa,EACb,sBAAoC,EACf,EAAE;IACvB,IAAI,UAAU,GAAG,IAAA,mGAAgD,EAAC,kBAAkB,CAAC,CAAA;IAErF,IAAI,UAAU;QAAE,OAAO,UAAU,CAAA;IAEjC,MAAM,oBAAoB,GAAG,IAAA,yCAAmB,EAAC,sBAAsB,CAAC,CAAA;IAExE,UAAU,GAAG,IAAA,+FAA8C,EAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAA;IAErG,IAAI,UAAU;QAAE,OAAO,UAAU,CAAA;IAEjC,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAnBY,QAAA,qBAAqB,yBAmBjC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { KTHPeriodDefinition, KTHPeriodSemester } from './KTHPeriod';
|
|
2
|
+
/**
|
|
3
|
+
* Attempts to match the given date to one of the given KTHPeriodDefinitions.
|
|
4
|
+
* Returns a matching KTHPeriodSemester or undefined
|
|
5
|
+
* @param date
|
|
6
|
+
* @param kthPeriods
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export declare const matchDateToKTHPeriodYear: (date: Date, kthPeriods: KTHPeriodDefinition[]) => KTHPeriodSemester | undefined;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.matchDateToKTHPeriodYear = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Attempts to match the given date to one of the given KTHPeriodDefinitions.
|
|
6
|
+
* Returns a matching KTHPeriodSemester or undefined
|
|
7
|
+
* @param date
|
|
8
|
+
* @param kthPeriods
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
const matchDateToKTHPeriodYear = (date, kthPeriods) => {
|
|
12
|
+
const kthPeriod = kthPeriods.find(({ fromDate, toDate }) => fromDate <= date && date <= toDate);
|
|
13
|
+
if (!kthPeriod)
|
|
14
|
+
return;
|
|
15
|
+
return {
|
|
16
|
+
period: kthPeriod === null || kthPeriod === void 0 ? void 0 : kthPeriod.kthPeriod,
|
|
17
|
+
semester: kthPeriod === null || kthPeriod === void 0 ? void 0 : kthPeriod.academicSemester,
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
exports.matchDateToKTHPeriodYear = matchDateToKTHPeriodYear;
|
|
21
|
+
//# sourceMappingURL=matchDateToKTHPeriodYear.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matchDateToKTHPeriodYear.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/matchDateToKTHPeriodYear.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACI,MAAM,wBAAwB,GAAG,CACtC,IAAU,EACV,UAAiC,EACF,EAAE;IACjC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAA;IAE/F,IAAI,CAAC,SAAS;QAAE,OAAM;IAEtB,OAAO;QACL,MAAM,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS;QAC5B,QAAQ,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,gBAAgB;KACtC,CAAA;AACH,CAAC,CAAA;AAZY,QAAA,wBAAwB,4BAYpC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.kthPeriods2024 = void 0;
|
|
4
|
+
const utils_1 = require("../../../utils");
|
|
5
|
+
exports.kthPeriods2024 = [
|
|
6
|
+
{
|
|
7
|
+
fromDate: new Date('2024-01-16'),
|
|
8
|
+
toDate: new Date('2024-03-17'),
|
|
9
|
+
academicSemester: utils_1.AcademicSemester.fromLadokPeriodString('VT2024'),
|
|
10
|
+
kthPeriod: 3,
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
fromDate: new Date('2024-03-18'),
|
|
14
|
+
toDate: new Date('2024-06-03'),
|
|
15
|
+
academicSemester: utils_1.AcademicSemester.fromLadokPeriodString('VT2024'),
|
|
16
|
+
kthPeriod: 4,
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
fromDate: new Date('2024-06-04'),
|
|
20
|
+
toDate: new Date('2024-06-30'),
|
|
21
|
+
academicSemester: utils_1.AcademicSemester.fromLadokPeriodString('VT2024'),
|
|
22
|
+
kthPeriod: 5,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
fromDate: new Date('2024-07-01'),
|
|
26
|
+
toDate: new Date('2024-08-25'),
|
|
27
|
+
academicSemester: utils_1.AcademicSemester.fromLadokPeriodString('HT2024'),
|
|
28
|
+
kthPeriod: 0,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
fromDate: new Date('2024-08-26'),
|
|
32
|
+
toDate: new Date('2024-10-27'),
|
|
33
|
+
academicSemester: utils_1.AcademicSemester.fromLadokPeriodString('HT2024'),
|
|
34
|
+
kthPeriod: 1,
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
fromDate: new Date('2024-10-28'),
|
|
38
|
+
toDate: new Date('2025-01-13'),
|
|
39
|
+
academicSemester: utils_1.AcademicSemester.fromLadokPeriodString('HT2024'),
|
|
40
|
+
kthPeriod: 2,
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
//# sourceMappingURL=kthPeriods.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kthPeriods.js","sourceRoot":"","sources":["../../../../src/kth/KTHPeriod/testdata/kthPeriods.ts"],"names":[],"mappings":";;;AAAA,0CAAiD;AAGpC,QAAA,cAAc,GAKrB;IACJ;QACE,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9B,gBAAgB,EAAE,wBAAgB,CAAC,qBAAqB,CAAC,QAAQ,CAAE;QACnE,SAAS,EAAE,CAAC;KACb;IACD;QACE,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9B,gBAAgB,EAAE,wBAAgB,CAAC,qBAAqB,CAAC,QAAQ,CAAE;QACnE,SAAS,EAAE,CAAC;KACb;IACD;QACE,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9B,gBAAgB,EAAE,wBAAgB,CAAC,qBAAqB,CAAC,QAAQ,CAAE;QACnE,SAAS,EAAE,CAAC;KACb;IACD;QACE,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9B,gBAAgB,EAAE,wBAAgB,CAAC,qBAAqB,CAAC,QAAQ,CAAE;QACnE,SAAS,EAAE,CAAC;KACb;IACD;QACE,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9B,gBAAgB,EAAE,wBAAgB,CAAC,qBAAqB,CAAC,QAAQ,CAAE;QACnE,SAAS,EAAE,CAAC;KACb;IACD;QACE,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9B,gBAAgB,EAAE,wBAAgB,CAAC,qBAAqB,CAAC,QAAQ,CAAE;QACnE,SAAS,EAAE,CAAC;KACb;CACF,CAAA"}
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.extractBasicCourseData = exports.formatCreditsWithUnitLabel = exports.getCreditsUnit = void 0;
|
|
4
4
|
const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
|
|
5
|
+
const utils_1 = require("../../utils");
|
|
5
6
|
const getCreditsUnit = (utbildningstyp, language) => {
|
|
6
7
|
switch (utbildningstyp.creditsUnit.code) {
|
|
7
8
|
case 'HP':
|
|
8
9
|
case 'HP-K':
|
|
9
|
-
return language
|
|
10
|
+
return (0, utils_1.isEnglish)(language) ? 'credits' : 'hp';
|
|
10
11
|
case 'FUP':
|
|
11
12
|
return 'fup';
|
|
12
13
|
default:
|
|
@@ -14,7 +15,7 @@ const getCreditsUnit = (utbildningstyp, language) => {
|
|
|
14
15
|
}
|
|
15
16
|
};
|
|
16
17
|
exports.getCreditsUnit = getCreditsUnit;
|
|
17
|
-
const formatCredits = (omfattning, language) => language
|
|
18
|
+
const formatCredits = (omfattning, language) => (0, utils_1.isEnglish)(language) ? omfattning : omfattning.replace('.', ',');
|
|
18
19
|
const formatCreditsWithUnitLabel = (omfattning, utbildningstyp, language) => {
|
|
19
20
|
const credits = formatCredits(omfattning, language);
|
|
20
21
|
const unit = utbildningstyp ? (0, exports.getCreditsUnit)(utbildningstyp, language) : '';
|
|
@@ -25,8 +26,8 @@ const extractBasicCourseData = (attributvarden, language, uid) => {
|
|
|
25
26
|
var _a;
|
|
26
27
|
const kod = (0, ladok_attributvarde_utils_1.extractString)(attributvarden, 'utbildning.attribut.kod');
|
|
27
28
|
const benamningMultiLingual = {
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
name: (0, ladok_attributvarde_utils_1.extractString)(attributvarden, `utbildning.attribut.${(0, utils_1.isEnglish)(language) ? utils_1.LadokLanguageName.English : utils_1.LadokLanguageName.Swedish}.benamning`),
|
|
30
|
+
nameOther: (0, ladok_attributvarde_utils_1.extractString)(attributvarden, `utbildning.attribut.${(0, utils_1.isEnglish)(language) ? utils_1.LadokLanguageName.Swedish : utils_1.LadokLanguageName.English}.benamning`),
|
|
30
31
|
};
|
|
31
32
|
const omfattningRaw = (_a = (0, ladok_attributvarde_utils_1.extractString)(attributvarden, 'utbildning.attribut.omfattning', 'omfattning')) !== null && _a !== void 0 ? _a : '';
|
|
32
33
|
const utbildningstyp = (0, ladok_attributvarde_utils_1.extractUtbildningstyp)(attributvarden);
|
|
@@ -36,7 +37,7 @@ const extractBasicCourseData = (attributvarden, language, uid) => {
|
|
|
36
37
|
};
|
|
37
38
|
const baseData = {
|
|
38
39
|
kod,
|
|
39
|
-
benamning: benamningMultiLingual
|
|
40
|
+
benamning: benamningMultiLingual,
|
|
40
41
|
omfattning,
|
|
41
42
|
versionsnummer: (0, ladok_attributvarde_utils_1.extractVersionNumber)(attributvarden),
|
|
42
43
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractBasicCourseData.js","sourceRoot":"","sources":["../../../src/kth/extractFunctions/extractBasicCourseData.ts"],"names":[],"mappings":";;;AAAA,8EAQuC;
|
|
1
|
+
{"version":3,"file":"extractBasicCourseData.js","sourceRoot":"","sources":["../../../src/kth/extractFunctions/extractBasicCourseData.ts"],"names":[],"mappings":";;;AAAA,8EAQuC;AACvC,uCAAoE;AAa7D,MAAM,cAAc,GAAG,CAAC,cAA8B,EAAE,QAAkB,EAAE,EAAE;IACnF,QAAQ,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC;QACV,KAAK,MAAM;YACT,OAAO,IAAA,iBAAS,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;QAC/C,KAAK,KAAK;YACR,OAAO,KAAK,CAAA;QACd;YACE,OAAO,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;IACxD,CAAC;AACH,CAAC,CAAA;AAVY,QAAA,cAAc,kBAU1B;AAED,MAAM,aAAa,GAAG,CAAC,UAAkB,EAAE,QAAkB,EAAE,EAAE,CAC/D,IAAA,iBAAS,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAE1D,MAAM,0BAA0B,GAAG,CACxC,UAAkB,EAClB,cAA0C,EAC1C,QAAkB,EAClB,EAAE;IACF,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACnD,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,IAAA,sBAAc,EAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3E,OAAO,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;AACpC,CAAC,CAAA;AARY,QAAA,0BAA0B,8BAQtC;AAEM,MAAM,sBAAsB,GAAG,CACpC,cAA4E,EAC5E,QAAkB,EAClB,GAAY,EACC,EAAE;;IACf,MAAM,GAAG,GAAG,IAAA,yCAAa,EAAC,cAAc,EAAE,yBAAyB,CAAE,CAAA;IAErE,MAAM,qBAAqB,GAAG;QAC5B,IAAI,EAAE,IAAA,yCAAa,EACjB,cAAc,EACd,uBAAuB,IAAA,iBAAS,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,yBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAiB,CAAC,OAAO,YAAY,CAC/G;QACD,SAAS,EAAE,IAAA,yCAAa,EACtB,cAAc,EACd,uBAAuB,IAAA,iBAAS,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,yBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAiB,CAAC,OAAO,YAAY,CAC/G;KACF,CAAA;IAED,MAAM,aAAa,GAAG,MAAA,IAAA,yCAAa,EAAC,cAAc,EAAE,gCAAgC,EAAE,YAAY,CAAC,mCAAI,EAAE,CAAA;IACzG,MAAM,cAAc,GAAG,IAAA,iDAAqB,EAAC,cAAc,CAAC,CAAA;IAE5D,MAAM,UAAU,GAAG;QACjB,MAAM,EAAE,aAAa;QACrB,iBAAiB,EAAE,IAAA,kCAA0B,EAAC,aAAa,EAAE,cAAc,EAAE,QAAQ,CAAC;KACvF,CAAA;IAED,MAAM,QAAQ,GAAG;QACf,GAAG;QACH,SAAS,EAAE,qBAAqB;QAChC,UAAU;QACV,cAAc,EAAE,IAAA,gDAAoB,EAAC,cAAc,CAAC;KACrD,CAAA;IAED,OAAO,GAAG,CAAC,CAAC,iCAAM,QAAQ,KAAE,GAAG,IAAG,CAAC,CAAC,QAAQ,CAAA;AAC9C,CAAC,CAAA;AAlCY,QAAA,sBAAsB,0BAkClC"}
|
package/dist/mapCourseRound.d.ts
CHANGED
|
@@ -2,25 +2,19 @@ import { LadokStatus } from '@kth/ladok-attributvarde-utils';
|
|
|
2
2
|
import { SokUtbildningsTillfalleItem, SokUtbildningsTillfalleSlimItem } from '@kth/ladok-mellanlager-client';
|
|
3
3
|
import { Language, TranslatedGrunddata } from './utils';
|
|
4
4
|
import { PartOfProgramme } from './mapPartOfProgramme';
|
|
5
|
-
|
|
5
|
+
export type Lasperiodsfordelning = {
|
|
6
|
+
Lasperiodskod: string;
|
|
7
|
+
Omfattningsvarde: number;
|
|
8
|
+
link: string[];
|
|
9
|
+
};
|
|
10
|
+
export type Tillfallesperiod = {
|
|
6
11
|
ForstaRegistreringsdatum: string;
|
|
7
12
|
ForstaUndervisningsdatum: string;
|
|
8
13
|
SistaRegistreringsdatum: string;
|
|
9
|
-
Lasperiodsfordelning: [
|
|
10
|
-
{
|
|
11
|
-
Lasperiodskod: string;
|
|
12
|
-
Omfattningsvarde: number;
|
|
13
|
-
link: string[];
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
Lasperiodskod: string;
|
|
17
|
-
Omfattningsvarde: number;
|
|
18
|
-
link: string[];
|
|
19
|
-
}
|
|
20
|
-
];
|
|
14
|
+
Lasperiodsfordelning: Lasperiodsfordelning[];
|
|
21
15
|
Omfattningsvarde: number;
|
|
22
16
|
SistaUndervisningsdatum: string;
|
|
23
|
-
}
|
|
17
|
+
};
|
|
24
18
|
export type CourseRound = {
|
|
25
19
|
uid: string;
|
|
26
20
|
utbildningstyp: string;
|
|
@@ -60,4 +54,3 @@ export type CourseRound = {
|
|
|
60
54
|
schemaUrl?: string;
|
|
61
55
|
};
|
|
62
56
|
export declare const mapCourseRound: (item: SokUtbildningsTillfalleItem | SokUtbildningsTillfalleSlimItem, language: Language, partOfProgramme?: PartOfProgramme[]) => CourseRound;
|
|
63
|
-
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapCourseRound.js","sourceRoot":"","sources":["../src/mapCourseRound.ts"],"names":[],"mappings":";;;AAAA,8EAWuC;AAEvC,mCAOgB;AAChB,qDAAoD;
|
|
1
|
+
{"version":3,"file":"mapCourseRound.js","sourceRoot":"","sources":["../src/mapCourseRound.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,10 @@ interface FormattedExaminationModules {
|
|
|
8
8
|
export type KursPlan = {
|
|
9
9
|
course: {
|
|
10
10
|
kod: string | undefined;
|
|
11
|
-
benamning:
|
|
11
|
+
benamning: {
|
|
12
|
+
name: string | undefined;
|
|
13
|
+
nameOther: string | undefined;
|
|
14
|
+
};
|
|
12
15
|
omfattning: {
|
|
13
16
|
number: string | undefined;
|
|
14
17
|
formattedWithUnit: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapCourseSyllabus.js","sourceRoot":"","sources":["../src/mapCourseSyllabus.ts"],"names":[],"mappings":";;;AACA,8EAMuC;AACvC,8EAAwF;AACxF,mCAQgB;AAEhB,mEAAwD;AACxD,kGAAmH;AACnH,2EAAgF;AAChF,0FAAmG;
|
|
1
|
+
{"version":3,"file":"mapCourseSyllabus.js","sourceRoot":"","sources":["../src/mapCourseSyllabus.ts"],"names":[],"mappings":"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"}
|
package/dist/search/types.d.ts
CHANGED
|
@@ -27,7 +27,10 @@ export type CleanSearchParams = Omit<SearchParams, 'utbildningsniva'> & {
|
|
|
27
27
|
};
|
|
28
28
|
export type CourseVersionDTO = {
|
|
29
29
|
kod: string;
|
|
30
|
-
benamning:
|
|
30
|
+
benamning: {
|
|
31
|
+
name: string | undefined;
|
|
32
|
+
nameOther: string | undefined;
|
|
33
|
+
};
|
|
31
34
|
omfattning: string;
|
|
32
35
|
utbildningstyp: string;
|
|
33
36
|
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LadokMellanlagerApiClient, PeriodItem } from '@kth/ladok-mellanlager-client';
|
|
2
|
+
export declare class PeriodService {
|
|
3
|
+
private ladokClient;
|
|
4
|
+
private static cache;
|
|
5
|
+
constructor(ladokClient: LadokMellanlagerApiClient);
|
|
6
|
+
private aggregatePeriodItems;
|
|
7
|
+
getPeriodItems(): Promise<PeriodItem[]>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.PeriodService = void 0;
|
|
13
|
+
const cache_1 = require("../cache");
|
|
14
|
+
// Refresh every 24 hours should be more than enough for period information
|
|
15
|
+
const cacheTTLInMinutes = 60 * 24;
|
|
16
|
+
class PeriodService {
|
|
17
|
+
constructor(ladokClient) {
|
|
18
|
+
this.ladokClient = ladokClient;
|
|
19
|
+
}
|
|
20
|
+
aggregatePeriodItems() {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
try {
|
|
23
|
+
const periodResponse = yield this.ladokClient.period();
|
|
24
|
+
if (periodResponse.type !== 'success') {
|
|
25
|
+
throw new Error(`API call failed: ${periodResponse.responseInfo.apiError || 'Unknown error'}`);
|
|
26
|
+
}
|
|
27
|
+
if (typeof periodResponse.data !== 'object') {
|
|
28
|
+
throw new Error('periodResponse.data is not an object.');
|
|
29
|
+
}
|
|
30
|
+
return periodResponse.data.Period;
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
// TODO log.error
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
getPeriodItems() {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
return PeriodService.cache.getData('periodItems', () => this.aggregatePeriodItems());
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.PeriodService = PeriodService;
|
|
45
|
+
PeriodService.cache = new cache_1.Cache(cacheTTLInMinutes);
|
|
46
|
+
//# sourceMappingURL=PeriodService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PeriodService.js","sourceRoot":"","sources":["../../src/supportApis/PeriodService.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,oCAAgC;AAEhC,2EAA2E;AAC3E,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,CAAA;AAEjC,MAAa,aAAa;IAExB,YAAoB,WAAsC;QAAtC,gBAAW,GAAX,WAAW,CAA2B;IAAG,CAAC;IAEhD,oBAAoB;;YAChC,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAA;gBAEtD,IAAI,cAAc,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CAAC,oBAAoB,cAAc,CAAC,YAAY,CAAC,QAAQ,IAAI,eAAe,EAAE,CAAC,CAAA;gBAChG,CAAC;gBACD,IAAI,OAAO,cAAc,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC5C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;gBAC1D,CAAC;gBAED,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAA;YACnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,iBAAiB;gBAEjB,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC;KAAA;IAEY,cAAc;;YACzB,OAAO,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAA;QACtF,CAAC;KAAA;;AAzBH,sCA0BC;AAzBgB,mBAAK,GAAwB,IAAI,aAAK,CAAe,iBAAiB,CAAC,CAAA"}
|
|
@@ -30,6 +30,7 @@ export declare class AcademicSemester {
|
|
|
30
30
|
* Create from a plain JSON object, as produced by toJSON().
|
|
31
31
|
*/
|
|
32
32
|
static fromJSON({ year, semesterNumber }: AcademicSemesterJSON): AcademicSemester;
|
|
33
|
+
static compare(a: AcademicSemester, b: AcademicSemester): number;
|
|
33
34
|
/**
|
|
34
35
|
* Returns a KTH semester string in the format 20241 for VT2024 or 20242 for HT2024.
|
|
35
36
|
*/
|
|
@@ -45,6 +45,11 @@ class AcademicSemester {
|
|
|
45
45
|
static fromJSON({ year, semesterNumber }) {
|
|
46
46
|
return new AcademicSemester(year, semesterNumber);
|
|
47
47
|
}
|
|
48
|
+
static compare(a, b) {
|
|
49
|
+
if (a.year !== b.year)
|
|
50
|
+
return a.year - b.year;
|
|
51
|
+
return a.semesterNumber - b.semesterNumber;
|
|
52
|
+
}
|
|
48
53
|
/**
|
|
49
54
|
* Returns a KTH semester string in the format 20241 for VT2024 or 20242 for HT2024.
|
|
50
55
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcademicSemester.js","sourceRoot":"","sources":["../../src/utils/AcademicSemester.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,uDAAU,CAAA;IACV,uDAAU,CAAA;AACZ,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAED,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,4BAAa,CAAA;AACf,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAOD,MAAa,gBAAgB;IAI3B,YAAY,IAAY,EAAE,cAA8B;QACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACtC,CAAC;IAcD;;;OAGG;IACI,MAAM,CAAC,qBAAqB,CAAC,KAAa;QAC/C,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;QAC1C,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;QACtD,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAA;QAC5B,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAA;QAC/B,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,IAAmB,CAAC,CAAC,CAAA;IAC3G,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,qBAAqB,CAAC,QAAgB;QAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAA;QAC5B,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,KAAK,CAAA;QAClC,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAmB,CAAC,CAAA;IACjF,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAwB;QACnE,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACnD,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;IAC7C,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,MAAM,MAAM,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC1E,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IAChC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAA;IACnC,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAA;IACH,CAAC;;
|
|
1
|
+
{"version":3,"file":"AcademicSemester.js","sourceRoot":"","sources":["../../src/utils/AcademicSemester.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { EduLevel, Grunddata, Organisation, Studietakt, Tilltradesniva, Utbildningstyp } from '@kth/ladok-attributvarde-utils';
|
|
2
2
|
export type Language = 'sv' | 'en';
|
|
3
|
+
export declare enum LadokLanguageName {
|
|
4
|
+
Swedish = "svensk",
|
|
5
|
+
English = "engelsk"
|
|
6
|
+
}
|
|
3
7
|
export declare enum LanguageCode {
|
|
4
8
|
Swedish = "sv",
|
|
5
9
|
English = "en"
|
|
6
10
|
}
|
|
11
|
+
export declare const isEnglish: (language: Language) => language is "en";
|
|
7
12
|
export interface TranslatedGrunddata {
|
|
8
13
|
id: string;
|
|
9
14
|
code: string;
|
|
@@ -11,19 +11,28 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
return t;
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.translateStudietakt = exports.translateEduLevel = exports.translatedTilltradesniva = exports.translateUtbildningstyp = exports.translateOrganisation = exports.translateGrunddata = exports.LanguageCode = void 0;
|
|
14
|
+
exports.translateStudietakt = exports.translateEduLevel = exports.translatedTilltradesniva = exports.translateUtbildningstyp = exports.translateOrganisation = exports.translateGrunddata = exports.isEnglish = exports.LanguageCode = exports.LadokLanguageName = void 0;
|
|
15
|
+
var LadokLanguageName;
|
|
16
|
+
(function (LadokLanguageName) {
|
|
17
|
+
LadokLanguageName["Swedish"] = "svensk";
|
|
18
|
+
LadokLanguageName["English"] = "engelsk";
|
|
19
|
+
})(LadokLanguageName || (exports.LadokLanguageName = LadokLanguageName = {}));
|
|
15
20
|
var LanguageCode;
|
|
16
21
|
(function (LanguageCode) {
|
|
17
22
|
LanguageCode["Swedish"] = "sv";
|
|
18
23
|
LanguageCode["English"] = "en";
|
|
19
24
|
})(LanguageCode || (exports.LanguageCode = LanguageCode = {}));
|
|
25
|
+
const isEnglish = (language) => {
|
|
26
|
+
return language === LanguageCode.English;
|
|
27
|
+
};
|
|
28
|
+
exports.isEnglish = isEnglish;
|
|
20
29
|
const translateGrunddata = (grunddata, language) => {
|
|
21
30
|
const { id, code } = grunddata, rest = __rest(grunddata, ["id", "code"]);
|
|
22
31
|
return {
|
|
23
32
|
id,
|
|
24
33
|
code,
|
|
25
34
|
name: rest[language],
|
|
26
|
-
nameOther: rest[language
|
|
35
|
+
nameOther: rest[(0, exports.isEnglish)(language) ? LanguageCode.Swedish : LanguageCode.English],
|
|
27
36
|
};
|
|
28
37
|
};
|
|
29
38
|
exports.translateGrunddata = translateGrunddata;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"languageUtil.js","sourceRoot":"","sources":["../../src/utils/languageUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAWA,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,8BAAc,CAAA;IACd,8BAAc,CAAA;AAChB,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAmCM,MAAM,kBAAkB,GAAG,CAAC,SAAoB,EAAE,QAAkB,EAAuB,EAAE;IAClG,MAAM,EAAE,EAAE,EAAE,IAAI,KAAc,SAAS,EAAlB,IAAI,UAAK,SAAS,EAAjC,cAAqB,CAAY,CAAA;IACvC,OAAO;QACL,EAAE;QACF,IAAI;QACJ,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;QACpB,SAAS,EAAE,IAAI,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"languageUtil.js","sourceRoot":"","sources":["../../src/utils/languageUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { PeriodItem } from '@kth/ladok-mellanlager-client';
|
|
2
2
|
import { ProgrammeVersion } from '../mapProgrammeVersion';
|
|
3
|
+
/**
|
|
4
|
+
* Returns true if the given string is a valid Ladok Period in the format (VT|HT)YYYY
|
|
5
|
+
* @param period
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
8
|
+
export declare const isValidLadokPeriod: (period: string) => boolean;
|
|
3
9
|
export declare const parsePeriod: (period: string) => {
|
|
4
10
|
semester: string;
|
|
5
11
|
year: number;
|
package/dist/utils/periodUtil.js
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getKthStudyPeriod = exports.getPeriodCodeForDate = exports.findValidProgramForCode = exports.findPeriodByKod = exports.transformDigitsInPeriod = exports.transformPeriodInDigits = exports.parsePeriod = void 0;
|
|
3
|
+
exports.getKthStudyPeriod = exports.getPeriodCodeForDate = exports.findValidProgramForCode = exports.findPeriodByKod = exports.transformDigitsInPeriod = exports.transformPeriodInDigits = exports.parsePeriod = exports.isValidLadokPeriod = void 0;
|
|
4
4
|
const versionUtils_1 = require("./versionUtils");
|
|
5
|
+
const validLadokPeriod = /(VT|HT)(\d{4})/;
|
|
6
|
+
/**
|
|
7
|
+
* Returns true if the given string is a valid Ladok Period in the format (VT|HT)YYYY
|
|
8
|
+
* @param period
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
const isValidLadokPeriod = (period) => {
|
|
12
|
+
return validLadokPeriod.test(period);
|
|
13
|
+
};
|
|
14
|
+
exports.isValidLadokPeriod = isValidLadokPeriod;
|
|
5
15
|
const parsePeriod = (period) => {
|
|
6
|
-
const match = period.match(
|
|
16
|
+
const match = period.match(validLadokPeriod);
|
|
7
17
|
if (!match) {
|
|
8
18
|
console.warn('Unable to parse period due to invalid period format: ', period);
|
|
9
19
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"periodUtil.js","sourceRoot":"","sources":["../../src/utils/periodUtil.ts"],"names":[],"mappings":";;;AAEA,iDAAyD;
|
|
1
|
+
{"version":3,"file":"periodUtil.js","sourceRoot":"","sources":["../../src/utils/periodUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1,7 @@
|
|
|
1
1
|
export declare const isDefined: <T>(value: T) => value is NonNullable<T>;
|
|
2
|
+
/**
|
|
3
|
+
* Type guard that checks whether a value is a non-empty array with at least one element.
|
|
4
|
+
* @param arr
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
export declare const isArrayWithValues: <T>(arr: readonly T[] | undefined | null) => arr is readonly [T, ...T[]];
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isDefined = void 0;
|
|
3
|
+
exports.isArrayWithValues = exports.isDefined = void 0;
|
|
4
4
|
const isDefined = (value) => {
|
|
5
5
|
return value !== null && value !== undefined;
|
|
6
6
|
};
|
|
7
7
|
exports.isDefined = isDefined;
|
|
8
|
+
/**
|
|
9
|
+
* Type guard that checks whether a value is a non-empty array with at least one element.
|
|
10
|
+
* @param arr
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
const isArrayWithValues = (arr) => Array.isArray(arr) && arr.length > 0;
|
|
14
|
+
exports.isArrayWithValues = isArrayWithValues;
|
|
8
15
|
//# sourceMappingURL=typeChecking.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeChecking.js","sourceRoot":"","sources":["../../src/utils/typeChecking.ts"],"names":[],"mappings":";;;AAAO,MAAM,SAAS,GAAG,CAAI,KAAQ,EAA2B,EAAE;IAChE,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAA;AAC9C,CAAC,CAAA;AAFY,QAAA,SAAS,aAErB"}
|
|
1
|
+
{"version":3,"file":"typeChecking.js","sourceRoot":"","sources":["../../src/utils/typeChecking.ts"],"names":[],"mappings":";;;AAAO,MAAM,SAAS,GAAG,CAAI,KAAQ,EAA2B,EAAE;IAChE,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAA;AAC9C,CAAC,CAAA;AAFY,QAAA,SAAS,aAErB;AAED;;;;GAIG;AACI,MAAM,iBAAiB,GAAG,CAAI,GAAoC,EAA+B,EAAE,CACxG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;AADzB,QAAA,iBAAiB,qBACQ"}
|
package/package.json
CHANGED