@openmrs/esm-globals 9.0.3-pre.4533 → 9.0.3-pre.4550

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.
@@ -1,3 +1,3 @@
1
- [0] Successfully compiled: 4 files with swc (287.11ms)
1
+ [0] Successfully compiled: 5 files with swc (244.66ms)
2
2
  [0] swc --strip-leading-paths src -d dist exited with code 0
3
3
  [1] tsc --project tsconfig.build.json exited with code 0
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './events';
2
2
  export * from './types';
3
+ export * from './type-utils';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from "./events.js";
2
2
  export * from "./types.js";
3
+ export * from "./type-utils.js";
@@ -0,0 +1,18 @@
1
+ import type { OpenmrsAppRoutes, OpenmrsRoutes } from './types';
2
+ /**
3
+ * Simple type-predicate to ensure that the value can be treated as an OpenmrsAppRoutes
4
+ * object.
5
+ *
6
+ * @param routes the object to check to see if it is an OpenmrsAppRoutes object
7
+ * @returns true if the routes value is an OpenmrsAppRoutes
8
+ */
9
+ export declare function isOpenmrsAppRoutes(routes: OpenmrsAppRoutes | unknown): routes is OpenmrsAppRoutes;
10
+ /**
11
+ * Simple type-predicate to ensure that the value can be treated as an OpenmrsRoutes
12
+ * object.
13
+ *
14
+ * @param routes the object to check to see if it is an OpenmrsRoutes object
15
+ * @returns true if the routes value is an OpenmrsRoutes
16
+ */
17
+ export declare function isOpenmrsRoutes(routes: OpenmrsRoutes | unknown): routes is OpenmrsRoutes;
18
+ //# sourceMappingURL=type-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../src/type-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE/D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,GAAG,MAAM,IAAI,gBAAgB,CAiCjG;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,IAAI,aAAa,CAQxF"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Simple type-predicate to ensure that the value can be treated as an OpenmrsAppRoutes
3
+ * object.
4
+ *
5
+ * @param routes the object to check to see if it is an OpenmrsAppRoutes object
6
+ * @returns true if the routes value is an OpenmrsAppRoutes
7
+ */ export function isOpenmrsAppRoutes(routes) {
8
+ if (routes && typeof routes === 'object') {
9
+ const maybeRoutes = routes;
10
+ if (Object.hasOwn(routes, 'pages')) {
11
+ if (!Boolean(maybeRoutes.pages) || !Array.isArray(maybeRoutes.pages)) {
12
+ return false;
13
+ }
14
+ }
15
+ if (Object.hasOwn(routes, 'extensions')) {
16
+ if (!Boolean(maybeRoutes.extensions) || !Array.isArray(maybeRoutes.extensions)) {
17
+ return false;
18
+ }
19
+ }
20
+ if (Object.hasOwn(routes, 'workspaces')) {
21
+ if (!Boolean(maybeRoutes.workspaces) || !Array.isArray(maybeRoutes.workspaces)) {
22
+ return false;
23
+ }
24
+ }
25
+ if (Object.hasOwn(routes, 'modals')) {
26
+ if (!Boolean(maybeRoutes.modals) || !Array.isArray(maybeRoutes.modals)) {
27
+ return false;
28
+ }
29
+ }
30
+ // A completely empty object is a valid OpenmrsAppRoutes object.
31
+ return true;
32
+ }
33
+ return false;
34
+ }
35
+ /**
36
+ * Simple type-predicate to ensure that the value can be treated as an OpenmrsRoutes
37
+ * object.
38
+ *
39
+ * @param routes the object to check to see if it is an OpenmrsRoutes object
40
+ * @returns true if the routes value is an OpenmrsRoutes
41
+ */ export function isOpenmrsRoutes(routes) {
42
+ if (routes && typeof routes === 'object') {
43
+ const maybeRoutes = routes;
44
+ return Object.entries(maybeRoutes).every(([key, value])=>typeof key === 'string' && isOpenmrsAppRoutes(value));
45
+ }
46
+ return false;
47
+ }
package/dist/types.d.ts CHANGED
@@ -43,22 +43,6 @@ declare global {
43
43
  * The build number of the app shell. Set when the app shell is built by webpack.
44
44
  */
45
45
  spaVersion: string;
46
- /**
47
- * Gets a set of options from the import-map-overrides package.
48
- */
49
- importMapOverrides: {
50
- addOverride(moduleName: string, url: string): void;
51
- enableOverride(moduleName: string): void;
52
- getCurrentPageMap(): Promise<ImportMap>;
53
- getDefaultMap(): Promise<ImportMap>;
54
- getNextPageMap(): Promise<ImportMap>;
55
- addOverride(moduleName: string, url: string): void;
56
- getOverrideMap(includeDisabled?: boolean): ImportMap;
57
- getDisabledOverrides(): Array<string>;
58
- isDisabled(moduleName: string): boolean;
59
- removeOverride(moduleName: string): void;
60
- resetOverrides(): void;
61
- };
62
46
  /**
63
47
  * Gets the installed modules, which are tuples consisting of the module's name and exports.
64
48
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openmrs/esm-globals",
3
- "version": "9.0.3-pre.4533",
3
+ "version": "9.0.3-pre.4550",
4
4
  "license": "MPL-2.0",
5
5
  "type": "module",
6
6
  "module": "dist/index.js",
@@ -19,6 +19,9 @@
19
19
  "scripts": {
20
20
  "build": "rimraf dist && concurrently \"swc --strip-leading-paths src -d dist\" \"tsc --project tsconfig.build.json\"",
21
21
  "build:development": "rimraf dist && concurrently \"swc --strip-leading-paths src -d dist\" \"tsc --project tsconfig.build.json\"",
22
+ "test": "vitest run --passWithNoTests",
23
+ "test:watch": "cross-env TZ=UTC vitest watch --passWithNoTests",
24
+ "coverage": "cross-env TZ=UTC vitest run --coverage --passWithNoTests",
22
25
  "typescript": "tsc --project tsconfig.build.json",
23
26
  "lint": "eslint src --ext ts,tsx"
24
27
  },
@@ -54,7 +57,8 @@
54
57
  "@swc/core": "1.15.21",
55
58
  "concurrently": "^9.2.1",
56
59
  "rimraf": "^6.1.3",
57
- "single-spa": "^6.0.3"
60
+ "single-spa": "^6.0.3",
61
+ "vitest": "^4.1.2"
58
62
  },
59
63
  "stableVersion": "9.0.2"
60
64
  }
package/src/index.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './events';
2
2
  export * from './types';
3
+ export * from './type-utils';
@@ -0,0 +1,96 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { isOpenmrsAppRoutes } from './type-utils';
3
+
4
+ describe('isOpenmrsAppRoutes', () => {
5
+ it('should return true for a valid routes object', () => {
6
+ expect(
7
+ isOpenmrsAppRoutes({
8
+ backendDependencies: {
9
+ fhir2: '^2.0.0',
10
+ 'webservices.rest': '^1.4.0',
11
+ },
12
+ version: '1.2.0-pre.12345+build.8',
13
+ pages: [
14
+ {
15
+ component: 'root',
16
+ route: 'myPage',
17
+ },
18
+ ],
19
+ extensions: [
20
+ {
21
+ name: 'custom extension',
22
+ component: 'customExtension',
23
+ },
24
+ ],
25
+ modals: [
26
+ {
27
+ name: 'custom modal',
28
+ component: 'customModal',
29
+ },
30
+ ],
31
+ workspaces: [
32
+ {
33
+ name: 'custom workspace',
34
+ component: 'customWorkspace',
35
+ },
36
+ ],
37
+ }),
38
+ ).toBe(true);
39
+ });
40
+
41
+ it('should accept an object with only pages', () => {
42
+ expect(
43
+ isOpenmrsAppRoutes({
44
+ pages: [
45
+ {
46
+ component: 'root',
47
+ route: 'myPage',
48
+ },
49
+ ],
50
+ }),
51
+ ).toBe(true);
52
+ });
53
+
54
+ it('should accept an object with only extensions', () => {
55
+ expect(
56
+ isOpenmrsAppRoutes({
57
+ extensions: [
58
+ {
59
+ name: 'custom extension',
60
+ component: 'customExtension',
61
+ },
62
+ ],
63
+ }),
64
+ ).toBe(true);
65
+ });
66
+
67
+ it('should accept an object with only modals', () => {
68
+ expect(
69
+ isOpenmrsAppRoutes({
70
+ modals: [
71
+ {
72
+ name: 'custom modal',
73
+ component: 'customModal',
74
+ },
75
+ ],
76
+ }),
77
+ ).toBe(true);
78
+ });
79
+
80
+ it('should accept an object with only workspaces', () => {
81
+ expect(
82
+ isOpenmrsAppRoutes({
83
+ workspaces: [
84
+ {
85
+ name: 'custom workspace',
86
+ component: 'customWorkspace',
87
+ },
88
+ ],
89
+ }),
90
+ ).toBe(true);
91
+ });
92
+
93
+ it('should report an empty object as valid', () => {
94
+ expect(isOpenmrsAppRoutes({})).toBe(true);
95
+ });
96
+ });
@@ -0,0 +1,60 @@
1
+ import type { OpenmrsAppRoutes, OpenmrsRoutes } from './types';
2
+
3
+ /**
4
+ * Simple type-predicate to ensure that the value can be treated as an OpenmrsAppRoutes
5
+ * object.
6
+ *
7
+ * @param routes the object to check to see if it is an OpenmrsAppRoutes object
8
+ * @returns true if the routes value is an OpenmrsAppRoutes
9
+ */
10
+ export function isOpenmrsAppRoutes(routes: OpenmrsAppRoutes | unknown): routes is OpenmrsAppRoutes {
11
+ if (routes && typeof routes === 'object') {
12
+ const maybeRoutes = routes as OpenmrsAppRoutes;
13
+
14
+ if (Object.hasOwn(routes, 'pages')) {
15
+ if (!Boolean(maybeRoutes.pages) || !Array.isArray(maybeRoutes.pages)) {
16
+ return false;
17
+ }
18
+ }
19
+
20
+ if (Object.hasOwn(routes, 'extensions')) {
21
+ if (!Boolean(maybeRoutes.extensions) || !Array.isArray(maybeRoutes.extensions)) {
22
+ return false;
23
+ }
24
+ }
25
+
26
+ if (Object.hasOwn(routes, 'workspaces')) {
27
+ if (!Boolean(maybeRoutes.workspaces) || !Array.isArray(maybeRoutes.workspaces)) {
28
+ return false;
29
+ }
30
+ }
31
+
32
+ if (Object.hasOwn(routes, 'modals')) {
33
+ if (!Boolean(maybeRoutes.modals) || !Array.isArray(maybeRoutes.modals)) {
34
+ return false;
35
+ }
36
+ }
37
+
38
+ // A completely empty object is a valid OpenmrsAppRoutes object.
39
+ return true;
40
+ }
41
+
42
+ return false;
43
+ }
44
+
45
+ /**
46
+ * Simple type-predicate to ensure that the value can be treated as an OpenmrsRoutes
47
+ * object.
48
+ *
49
+ * @param routes the object to check to see if it is an OpenmrsRoutes object
50
+ * @returns true if the routes value is an OpenmrsRoutes
51
+ */
52
+ export function isOpenmrsRoutes(routes: OpenmrsRoutes | unknown): routes is OpenmrsRoutes {
53
+ if (routes && typeof routes === 'object') {
54
+ const maybeRoutes = routes as OpenmrsRoutes;
55
+
56
+ return Object.entries(maybeRoutes).every(([key, value]) => typeof key === 'string' && isOpenmrsAppRoutes(value));
57
+ }
58
+
59
+ return false;
60
+ }
package/src/types.ts CHANGED
@@ -45,22 +45,6 @@ declare global {
45
45
  * The build number of the app shell. Set when the app shell is built by webpack.
46
46
  */
47
47
  spaVersion: string;
48
- /**
49
- * Gets a set of options from the import-map-overrides package.
50
- */
51
- importMapOverrides: {
52
- addOverride(moduleName: string, url: string): void;
53
- enableOverride(moduleName: string): void;
54
- getCurrentPageMap(): Promise<ImportMap>;
55
- getDefaultMap(): Promise<ImportMap>;
56
- getNextPageMap(): Promise<ImportMap>;
57
- addOverride(moduleName: string, url: string): void;
58
- getOverrideMap(includeDisabled?: boolean): ImportMap;
59
- getDisabledOverrides(): Array<string>;
60
- isDisabled(moduleName: string): boolean;
61
- removeOverride(moduleName: string): void;
62
- resetOverrides(): void;
63
- };
64
48
  /**
65
49
  * Gets the installed modules, which are tuples consisting of the module's name and exports.
66
50
  */
@@ -0,0 +1,7 @@
1
+ import { defineConfig } from 'vitest/config';
2
+
3
+ export default defineConfig({
4
+ test: {
5
+ mockReset: true,
6
+ },
7
+ });