@hitachivantara/app-shell-vite-plugin 1.6.1 → 1.6.2
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-utils.d.ts","sourceRoot":"","sources":["../src/config-utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAalE,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,sBAAsB,GAAG,CACnC,aAAa,EAAE,yBAAyB,EACxC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACxB,gBAAgB,CAAC;AAEtB,eAAO,MAAM,oBAAoB,UAIhC,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUvE;AAED,wBAAgB,cAAc,CAC5B,kBAAkB,EAAE,MAAM,GAAG,SAAS,EACtC,IAAI,EAAE,yBAAyB,EAC/B,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAC/B,gBAAgB,CAgClB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,UAMhD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,EAAO,
|
|
1
|
+
{"version":3,"file":"config-utils.d.ts","sourceRoot":"","sources":["../src/config-utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAalE,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,sBAAsB,GAAG,CACnC,aAAa,EAAE,yBAAyB,EACxC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACxB,gBAAgB,CAAC;AAEtB,eAAO,MAAM,oBAAoB,UAIhC,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUvE;AAED,wBAAgB,cAAc,CAC5B,kBAAkB,EAAE,MAAM,GAAG,SAAS,EACtC,IAAI,EAAE,yBAAyB,EAC/B,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAC/B,gBAAgB,CAgClB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,UAMhD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,EAAO,0BAOjE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,WAE3C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,GAAE,MAAW,UAElE;AAED,wBAAgB,WAAW,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,UAE1E"}
|
package/dist/config-utils.js
CHANGED
|
@@ -52,7 +52,7 @@ export function loadConfigFile(appShellConfigFile, opts, env = {}) {
|
|
|
52
52
|
export function getFinalModuleName(module) {
|
|
53
53
|
return module
|
|
54
54
|
.replace(/^\//, "")
|
|
55
|
-
.replace(/^src\//, "")
|
|
55
|
+
.replace(/^src\//, "") // TODO: remove custom hard-coded `src` behavior (in favour of `root` or `modulesRoot`?)
|
|
56
56
|
.replace(/\.[tj]sx?$/, "")
|
|
57
57
|
.replaceAll("$", "_");
|
|
58
58
|
}
|
|
@@ -64,22 +64,11 @@ export function getFinalModuleName(module) {
|
|
|
64
64
|
* @param modules The list of modules to be exported by the application bundle.
|
|
65
65
|
*/
|
|
66
66
|
export function getAppModules(root, modules = []) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
bundleName: getFinalModuleName(module)
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
return undefined;
|
|
76
|
-
}) ?? [];
|
|
77
|
-
selfModules.forEach(module => {
|
|
78
|
-
if (module != null && appModules[module.bundleName] == null) {
|
|
79
|
-
appModules[module.bundleName] = path.resolve(root, module.bundle);
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
return appModules;
|
|
67
|
+
return modules.reduce((acc, modulePath) => {
|
|
68
|
+
const bundleName = getFinalModuleName(modulePath);
|
|
69
|
+
acc[bundleName] = path.resolve(root, modulePath);
|
|
70
|
+
return acc;
|
|
71
|
+
}, {});
|
|
83
72
|
}
|
|
84
73
|
export function startsWithSelf(value) {
|
|
85
74
|
return value.startsWith("@self/");
|
package/dist/config-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-utils.js","sourceRoot":"","sources":["../src/config-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAMnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,cAAc,CACZ,QAAQ,CAAC;IACP,aAAa,EAAE,IAAI;IACnB,WAAW,EAAE;QACX,qBAAqB,EAAE,KAAK;KAC7B;CACF,CAAC,CACH,CAAC;AAYF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,qBAAqB;IACrB,qBAAqB;IACrB,uBAAuB;CACxB,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CACxC,CAAC;IAEF,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,kBAAsC,EACtC,IAA+B,EAC/B,MAA8B,EAAE;IAEhC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,2CAA2C;QAC3C,8DAA8D;QAC9D,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,IAAI,iBAAiB,GAAG,EAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAErE,qDAAqD;QACrD,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;YACtC,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAC9C,KAAK,IAAI,CAAC,KAAK,IAAI,EACnB,IAAI,CAAC,KAAK,CACX,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAqB,CAAC;IAC3D,CAAC;IAED,mFAAmF;IACnF,qDAAqD;IACrD,MAAM,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAErC,CAAC;IAErB,IAAI,OAAO,oBAAoB,KAAK,UAAU,EAAE,CAAC;QAC/C,OAAO,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,MAAM;SACV,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"config-utils.js","sourceRoot":"","sources":["../src/config-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\n\nimport { register, createEsmHooks } from \"ts-node\";\n\nimport type { HvAppShellConfig } from \"@hitachivantara/app-shell-shared\";\n\nimport type { AppShellVitePluginOptions } from \"./vite-plugin.js\";\n\nimport { require } from \"./nodeModule.js\";\n\ncreateEsmHooks(\n register({\n transpileOnly: true,\n moduleTypes: {\n \"app-shell.config.ts\": \"cjs\"\n }\n })\n);\n\nexport interface ConfigReplacement {\n token: string;\n value: string;\n}\n\nexport type AppShellConfigFunction = (\n pluginOptions: AppShellVitePluginOptions,\n env: Record<string, string>\n) => HvAppShellConfig;\n\nexport const DEFAULT_CONFIG_FILES = [\n \"app-shell.config.ts\",\n \"app-shell.config.js\",\n \"app-shell.config.json\"\n];\n\nexport function findAppShellConfigFile(root: string): string | undefined {\n const filename = DEFAULT_CONFIG_FILES.find(file =>\n fs.existsSync(path.resolve(root, file))\n );\n\n if (filename) {\n return path.resolve(root, filename);\n }\n\n return undefined;\n}\n\nexport function loadConfigFile(\n appShellConfigFile: string | undefined,\n opts: AppShellVitePluginOptions,\n env: Record<string, string> = {}\n): HvAppShellConfig {\n if (!appShellConfigFile) {\n // an empty configuration is actually valid\n // and with the automatic views option, it can even make sense\n return {};\n }\n\n if (appShellConfigFile.endsWith(\".json\")) {\n let appShellConfigRaw = fs.readFileSync(appShellConfigFile, \"utf-8\");\n\n // token replacement is only supported for json files\n opts.configReplacements?.forEach(item => {\n appShellConfigRaw = appShellConfigRaw.replaceAll(\n `@@${item.token}@@`,\n item.value\n );\n });\n\n return JSON.parse(appShellConfigRaw) as HvAppShellConfig;\n }\n\n // using require instead of import to avoid using --experimental-loader ts-node/esm\n // eslint-disable-next-line import/no-dynamic-require\n const loadedAppShellConfig = require(appShellConfigFile).default as\n | AppShellConfigFunction\n | HvAppShellConfig;\n\n if (typeof loadedAppShellConfig === \"function\") {\n return loadedAppShellConfig(opts, env);\n }\n\n return loadedAppShellConfig;\n}\n\n/**\n * Returns the extensionless module name of the output bundle\n * for a given entry point module name.\n *\n * @param module The entry point module name.\n * @returns The final module name of the output bundle.\n */\nexport function getFinalModuleName(module: string) {\n return module\n .replace(/^\\//, \"\")\n .replace(/^src\\//, \"\") // TODO: remove custom hard-coded `src` behavior (in favour of `root` or `modulesRoot`?)\n .replace(/\\.[tj]sx?$/, \"\")\n .replaceAll(\"$\", \"_\");\n}\n\n/**\n * Returns the modules to be created by the build of the app.\n * The list of modules is provided via parameter as one of the options used to initialize AppShellVitePlugin. {@link AppShellVitePluginOptions}\n *\n * @param root Project root directory.\n * @param modules The list of modules to be exported by the application bundle.\n */\nexport function getAppModules(root: string, modules: string[] = []) {\n return modules.reduce<Record<string, string>>((acc, modulePath) => {\n const bundleName = getFinalModuleName(modulePath);\n acc[bundleName] = path.resolve(root, modulePath);\n\n return acc;\n }, {});\n}\n\nexport function startsWithSelf(value: string) {\n return value.startsWith(\"@self/\");\n}\n\nexport function replaceSelf(value: string, replaceWith: string = \"\") {\n return value.replace(/^@self\\//, replaceWith);\n}\n\nexport function getBasePath(configBaseUrl?: string, viteConfigBase?: string) {\n return viteConfigBase ?? configBaseUrl ?? \"/\";\n}\n"]}
|
|
@@ -108,7 +108,9 @@ describe("test app-shell-vite-generate-base plugin", () => {
|
|
|
108
108
|
"src/modules/DummyModule2.ts",
|
|
109
109
|
"src/modules/DummyModule3.tsx",
|
|
110
110
|
"src/modules/DummyModule4.js",
|
|
111
|
-
"src/modules/DummyModule5.jsx"
|
|
111
|
+
"src/modules/DummyModule5.jsx",
|
|
112
|
+
"altSrc/customModules/DummyAltSource",
|
|
113
|
+
"altSrc/customModules/DummyAlt/File.tsx"
|
|
112
114
|
])).toEqual({
|
|
113
115
|
"pages/DummyPath": "dummyPath/src/pages/DummyPath",
|
|
114
116
|
"pages/DummyPath-2": "dummyPath/src/pages/DummyPath-2",
|
|
@@ -117,17 +119,9 @@ describe("test app-shell-vite-generate-base plugin", () => {
|
|
|
117
119
|
"modules/DummyModule2": "dummyPath/src/modules/DummyModule2.ts",
|
|
118
120
|
"modules/DummyModule3": "dummyPath/src/modules/DummyModule3.tsx",
|
|
119
121
|
"modules/DummyModule4": "dummyPath/src/modules/DummyModule4.js",
|
|
120
|
-
"modules/DummyModule5": "dummyPath/src/modules/DummyModule5.jsx"
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
it("removes modules that are not defined at src folder", () => {
|
|
124
|
-
expect(getAppModules("dummyPath", [
|
|
125
|
-
"src/pages/DummyPath",
|
|
126
|
-
"dummySrc/pages/DummyPath-2",
|
|
127
|
-
"src/pages/DummyPath-3"
|
|
128
|
-
])).toEqual({
|
|
129
|
-
"pages/DummyPath": "dummyPath/src/pages/DummyPath",
|
|
130
|
-
"pages/DummyPath-3": "dummyPath/src/pages/DummyPath-3"
|
|
122
|
+
"modules/DummyModule5": "dummyPath/src/modules/DummyModule5.jsx",
|
|
123
|
+
"altSrc/customModules/DummyAltSource": "dummyPath/altSrc/customModules/DummyAltSource",
|
|
124
|
+
"altSrc/customModules/DummyAlt/File": "dummyPath/altSrc/customModules/DummyAlt/File.tsx"
|
|
131
125
|
});
|
|
132
126
|
});
|
|
133
127
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-utils.test.js","sourceRoot":"","sources":["../../src/tests/config-utils.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { HvAppShellConfig } from \"@hitachivantara/app-shell-shared\";\nimport fs from \"fs\";\nimport {\n findAppShellConfigFile,\n getAppModules,\n getBasePath,\n getFinalModuleName,\n loadConfigFile\n} from \"../config-utils\";\n\nvi.mock(\"path\", async () => vi.importActual(\"./mocks/path.mock.ts\"));\n\nconst existsSyncMock = vi.fn();\nconst readFileSyncMock = vi.fn();\nfs.existsSync = existsSyncMock;\nfs.readFileSync = readFileSyncMock;\ndescribe(\"test app-shell-vite-generate-base plugin\", () => {\n describe(\"test `findAppShellConfigFile`\", () => {\n it(\"it returns the config file location (and its content) if exists\", () => {\n existsSyncMock.mockImplementation((file: string) => {\n return file.match(\"/dummyPath/dummyRootProject/app-shell.config.json\");\n });\n const filePath = findAppShellConfigFile(\"/dummyPath/dummyRootProject\");\n expect(filePath).toBe(\n \"/dummyPath/dummyRootProject/app-shell.config.json\"\n );\n });\n\n it(\"it returns undefined if config file don't exists\", () => {\n existsSyncMock.mockImplementation(() => {\n return false;\n });\n const filePath = findAppShellConfigFile(\"/dummyPath/dummyRootProject\");\n expect(filePath).toBeUndefined();\n });\n });\n\n describe(\"test `loadConfigFile`\", () => {\n it(\"returns an empty config if the config file is not defined\", () => {\n const appShellConfig = loadConfigFile(undefined, {}, {});\n expect(appShellConfig).toMatchObject({});\n });\n\n it(\"returns the config if config file exists\", () => {\n const config: HvAppShellConfig = {\n baseUrl: \"dummyBaseUrl\"\n };\n\n existsSyncMock.mockImplementation((file: string) => {\n return file.match(\"/dummyPath/dummyRootProject/app-shell.config.json\");\n });\n\n readFileSyncMock.mockImplementation(() => {\n return JSON.stringify(config);\n });\n\n const appShellConfig = loadConfigFile(\n \"/dummyPath/dummyRootProject/app-shell.config.json\",\n {},\n {}\n );\n expect(appShellConfig).toMatchObject(config);\n });\n\n it(\"replaces tokens at configurations defined at json files\", () => {\n const config: HvAppShellConfig = {\n baseUrl: \"@@BASE_URL@@\"\n };\n\n existsSyncMock.mockImplementation((file: string) => {\n return file.match(\"/dummyPath/dummyRootProject/app-shell.config.json\");\n });\n\n readFileSyncMock.mockImplementation(() => {\n return JSON.stringify(config);\n });\n\n const appShellConfig = loadConfigFile(\n \"/dummyPath/dummyRootProject/app-shell.config.json\",\n {\n configReplacements: [\n { token: \"BASE_URL\", value: \"dummyBaseUrlWithTokens\" }\n ]\n },\n {}\n );\n expect(appShellConfig).toMatchObject({\n baseUrl: \"dummyBaseUrlWithTokens\"\n });\n });\n });\n\n describe(\"getFinalModuleName\", () => {\n it(\"removes leading 'src/' and file extension from module path\", () => {\n const modulePath = \"/src/pages/DummyPath.tsx\";\n const finalModuleName = getFinalModuleName(modulePath);\n expect(finalModuleName).toBe(\"pages/DummyPath\");\n });\n\n it(\"replaces '$' with '_' in the module path\", () => {\n const modulePath = \"/src/pages/DummyPath/$id/HelloWorld.tsx\";\n const finalModuleName = getFinalModuleName(modulePath);\n expect(finalModuleName).toBe(\"pages/DummyPath/_id/HelloWorld\");\n });\n\n it(\"handles module paths without 'src/' prefix\", () => {\n // this use case is not expected to happen, but let's test it anyway\n\n const modulePath = \"/other/pages/DummyPath.tsx\";\n const finalModuleName = getFinalModuleName(modulePath);\n expect(finalModuleName).toBe(\"other/pages/DummyPath\");\n });\n\n it(\"handles module paths without file extension\", () => {\n const modulePath = \"/src/pages/DummyPath\";\n const finalModuleName = getFinalModuleName(modulePath);\n expect(finalModuleName).toBe(\"pages/DummyPath\");\n });\n\n it(\"handles module paths with '.ts' file extension\", () => {\n const modulePath = \"/src/pages/DummyPath.ts\";\n const finalModuleName = getFinalModuleName(modulePath);\n expect(finalModuleName).toBe(\"pages/DummyPath\");\n });\n\n it(\"handles module paths with '.jsx' file extension\", () => {\n const modulePath = \"/src/pages/DummyPath.jsx\";\n const finalModuleName = getFinalModuleName(modulePath);\n expect(finalModuleName).toBe(\"pages/DummyPath\");\n });\n\n it(\"handles module paths with '.tsx' file extension\", () => {\n const modulePath = \"/src/pages/DummyPath.tsx\";\n const finalModuleName = getFinalModuleName(modulePath);\n expect(finalModuleName).toBe(\"pages/DummyPath\");\n });\n });\n\n describe(\"getAppModules\", () => {\n it(\"modules are correctly mapped\", () => {\n expect(\n getAppModules(\"dummyPath\", [\n \"src/pages/DummyPath\",\n \"src/pages/DummyPath-2\",\n \"src/pages/DummyPath/$id/HelloWorld\",\n \"src/modules/DummyModule1\",\n \"src/modules/DummyModule2.ts\",\n \"src/modules/DummyModule3.tsx\",\n \"src/modules/DummyModule4.js\",\n \"src/modules/DummyModule5.jsx\"\n ])\n ).toEqual({\n \"pages/DummyPath\": \"dummyPath/src/pages/DummyPath\",\n \"pages/DummyPath-2\": \"dummyPath/src/pages/DummyPath-2\",\n \"pages/DummyPath/_id/HelloWorld\":\n \"dummyPath/src/pages/DummyPath/$id/HelloWorld\",\n \"modules/DummyModule1\": \"dummyPath/src/modules/DummyModule1\",\n \"modules/DummyModule2\": \"dummyPath/src/modules/DummyModule2.ts\",\n \"modules/DummyModule3\": \"dummyPath/src/modules/DummyModule3.tsx\",\n \"modules/DummyModule4\": \"dummyPath/src/modules/DummyModule4.js\",\n \"modules/DummyModule5\": \"dummyPath/src/modules/DummyModule5.jsx\"\n });\n });\n\n it(\"removes modules that are not defined at src folder\", () => {\n expect(\n getAppModules(\"dummyPath\", [\n \"src/pages/DummyPath\",\n \"dummySrc/pages/DummyPath-2\",\n \"src/pages/DummyPath-3\"\n ])\n ).toEqual({\n \"pages/DummyPath\": \"dummyPath/src/pages/DummyPath\",\n \"pages/DummyPath-3\": \"dummyPath/src/pages/DummyPath-3\"\n });\n });\n });\n\n describe(\"getBasePath\", () => {\n it(\"config url is defined\", () => {\n expect(getBasePath(\"/baseUrl\")).toBe(\"/baseUrl\");\n });\n it(\"config url and vite base are defined\", () => {\n expect(getBasePath(\"/baseUrl\", \"/viteBase/\")).toBe(\"/viteBase/\");\n });\n it(\"config url is undefined, vite base is defined\", () => {\n expect(getBasePath(undefined, \"/viteBase\")).toBe(\"/viteBase\");\n });\n it(\"config url and vite base are undefined\", () => {\n expect(getBasePath(undefined, undefined)).toBe(\"/\");\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"config-utils.test.js","sourceRoot":"","sources":["../../src/tests/config-utils.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { HvAppShellConfig } from \"@hitachivantara/app-shell-shared\";\nimport fs from \"fs\";\nimport {\n findAppShellConfigFile,\n getAppModules,\n getBasePath,\n getFinalModuleName,\n loadConfigFile\n} from \"../config-utils\";\n\nvi.mock(\"path\", async () => vi.importActual(\"./mocks/path.mock.ts\"));\n\nconst existsSyncMock = vi.fn();\nconst readFileSyncMock = vi.fn();\nfs.existsSync = existsSyncMock;\nfs.readFileSync = readFileSyncMock;\ndescribe(\"test app-shell-vite-generate-base plugin\", () => {\n describe(\"test `findAppShellConfigFile`\", () => {\n it(\"it returns the config file location (and its content) if exists\", () => {\n existsSyncMock.mockImplementation((file: string) => {\n return file.match(\"/dummyPath/dummyRootProject/app-shell.config.json\");\n });\n const filePath = findAppShellConfigFile(\"/dummyPath/dummyRootProject\");\n expect(filePath).toBe(\n \"/dummyPath/dummyRootProject/app-shell.config.json\"\n );\n });\n\n it(\"it returns undefined if config file don't exists\", () => {\n existsSyncMock.mockImplementation(() => {\n return false;\n });\n const filePath = findAppShellConfigFile(\"/dummyPath/dummyRootProject\");\n expect(filePath).toBeUndefined();\n });\n });\n\n describe(\"test `loadConfigFile`\", () => {\n it(\"returns an empty config if the config file is not defined\", () => {\n const appShellConfig = loadConfigFile(undefined, {}, {});\n expect(appShellConfig).toMatchObject({});\n });\n\n it(\"returns the config if config file exists\", () => {\n const config: HvAppShellConfig = {\n baseUrl: \"dummyBaseUrl\"\n };\n\n existsSyncMock.mockImplementation((file: string) => {\n return file.match(\"/dummyPath/dummyRootProject/app-shell.config.json\");\n });\n\n readFileSyncMock.mockImplementation(() => {\n return JSON.stringify(config);\n });\n\n const appShellConfig = loadConfigFile(\n \"/dummyPath/dummyRootProject/app-shell.config.json\",\n {},\n {}\n );\n expect(appShellConfig).toMatchObject(config);\n });\n\n it(\"replaces tokens at configurations defined at json files\", () => {\n const config: HvAppShellConfig = {\n baseUrl: \"@@BASE_URL@@\"\n };\n\n existsSyncMock.mockImplementation((file: string) => {\n return file.match(\"/dummyPath/dummyRootProject/app-shell.config.json\");\n });\n\n readFileSyncMock.mockImplementation(() => {\n return JSON.stringify(config);\n });\n\n const appShellConfig = loadConfigFile(\n \"/dummyPath/dummyRootProject/app-shell.config.json\",\n {\n configReplacements: [\n { token: \"BASE_URL\", value: \"dummyBaseUrlWithTokens\" }\n ]\n },\n {}\n );\n expect(appShellConfig).toMatchObject({\n baseUrl: \"dummyBaseUrlWithTokens\"\n });\n });\n });\n\n describe(\"getFinalModuleName\", () => {\n it(\"removes leading 'src/' and file extension from module path\", () => {\n const modulePath = \"/src/pages/DummyPath.tsx\";\n const finalModuleName = getFinalModuleName(modulePath);\n expect(finalModuleName).toBe(\"pages/DummyPath\");\n });\n\n it(\"replaces '$' with '_' in the module path\", () => {\n const modulePath = \"/src/pages/DummyPath/$id/HelloWorld.tsx\";\n const finalModuleName = getFinalModuleName(modulePath);\n expect(finalModuleName).toBe(\"pages/DummyPath/_id/HelloWorld\");\n });\n\n it(\"handles module paths without 'src/' prefix\", () => {\n // this use case is not expected to happen, but let's test it anyway\n\n const modulePath = \"/other/pages/DummyPath.tsx\";\n const finalModuleName = getFinalModuleName(modulePath);\n expect(finalModuleName).toBe(\"other/pages/DummyPath\");\n });\n\n it(\"handles module paths without file extension\", () => {\n const modulePath = \"/src/pages/DummyPath\";\n const finalModuleName = getFinalModuleName(modulePath);\n expect(finalModuleName).toBe(\"pages/DummyPath\");\n });\n\n it(\"handles module paths with '.ts' file extension\", () => {\n const modulePath = \"/src/pages/DummyPath.ts\";\n const finalModuleName = getFinalModuleName(modulePath);\n expect(finalModuleName).toBe(\"pages/DummyPath\");\n });\n\n it(\"handles module paths with '.jsx' file extension\", () => {\n const modulePath = \"/src/pages/DummyPath.jsx\";\n const finalModuleName = getFinalModuleName(modulePath);\n expect(finalModuleName).toBe(\"pages/DummyPath\");\n });\n\n it(\"handles module paths with '.tsx' file extension\", () => {\n const modulePath = \"/src/pages/DummyPath.tsx\";\n const finalModuleName = getFinalModuleName(modulePath);\n expect(finalModuleName).toBe(\"pages/DummyPath\");\n });\n });\n\n describe(\"getAppModules\", () => {\n it(\"modules are correctly mapped\", () => {\n expect(\n getAppModules(\"dummyPath\", [\n \"src/pages/DummyPath\",\n \"src/pages/DummyPath-2\",\n \"src/pages/DummyPath/$id/HelloWorld\",\n \"src/modules/DummyModule1\",\n \"src/modules/DummyModule2.ts\",\n \"src/modules/DummyModule3.tsx\",\n \"src/modules/DummyModule4.js\",\n \"src/modules/DummyModule5.jsx\",\n \"altSrc/customModules/DummyAltSource\",\n \"altSrc/customModules/DummyAlt/File.tsx\"\n ])\n ).toEqual({\n \"pages/DummyPath\": \"dummyPath/src/pages/DummyPath\",\n \"pages/DummyPath-2\": \"dummyPath/src/pages/DummyPath-2\",\n \"pages/DummyPath/_id/HelloWorld\":\n \"dummyPath/src/pages/DummyPath/$id/HelloWorld\",\n \"modules/DummyModule1\": \"dummyPath/src/modules/DummyModule1\",\n \"modules/DummyModule2\": \"dummyPath/src/modules/DummyModule2.ts\",\n \"modules/DummyModule3\": \"dummyPath/src/modules/DummyModule3.tsx\",\n \"modules/DummyModule4\": \"dummyPath/src/modules/DummyModule4.js\",\n \"modules/DummyModule5\": \"dummyPath/src/modules/DummyModule5.jsx\",\n \"altSrc/customModules/DummyAltSource\":\n \"dummyPath/altSrc/customModules/DummyAltSource\",\n \"altSrc/customModules/DummyAlt/File\":\n \"dummyPath/altSrc/customModules/DummyAlt/File.tsx\"\n });\n });\n });\n\n describe(\"getBasePath\", () => {\n it(\"config url is defined\", () => {\n expect(getBasePath(\"/baseUrl\")).toBe(\"/baseUrl\");\n });\n it(\"config url and vite base are defined\", () => {\n expect(getBasePath(\"/baseUrl\", \"/viteBase/\")).toBe(\"/viteBase/\");\n });\n it(\"config url is undefined, vite base is defined\", () => {\n expect(getBasePath(undefined, \"/viteBase\")).toBe(\"/viteBase\");\n });\n it(\"config url and vite base are undefined\", () => {\n expect(getBasePath(undefined, undefined)).toBe(\"/\");\n });\n });\n});\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hitachivantara/app-shell-vite-plugin",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.2",
|
|
4
4
|
"description": "AppShell Vite Plugin",
|
|
5
5
|
"author": "Hitachi Vantara - Boba Fett Team",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@emotion/cache": "^11.11.0",
|
|
40
40
|
"@emotion/react": "^11.11.1",
|
|
41
|
-
"@hitachivantara/app-shell-shared": "1.4.
|
|
42
|
-
"@hitachivantara/app-shell-ui": "1.6.
|
|
41
|
+
"@hitachivantara/app-shell-shared": "1.4.1",
|
|
42
|
+
"@hitachivantara/app-shell-ui": "1.6.1",
|
|
43
43
|
"@hitachivantara/uikit-react-icons": "^5.10.1",
|
|
44
44
|
"@hitachivantara/uikit-react-shared": "^5.1.43",
|
|
45
45
|
"@rollup/plugin-commonjs": "^25.0.7",
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"peerDependencies": {
|
|
65
65
|
"vite": "^4.1.4 || ^5.0.4"
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "bbee984ca345cfaa5d6a3829f5ec65cc6373b37b"
|
|
68
68
|
}
|