@qiankunjs/shared 0.0.1-rc.4 → 0.0.1-rc.6
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/cjs/assets-transpilers/index.d.ts +7 -0
- package/dist/cjs/assets-transpilers/index.js +7 -0
- package/dist/cjs/assets-transpilers/index.js.map +1 -1
- package/dist/cjs/assets-transpilers/link.js +15 -13
- package/dist/cjs/assets-transpilers/link.js.map +1 -1
- package/dist/cjs/assets-transpilers/script.d.ts +4 -4
- package/dist/cjs/assets-transpilers/script.js +156 -96
- package/dist/cjs/assets-transpilers/script.js.map +1 -1
- package/dist/cjs/assets-transpilers/types.d.ts +10 -0
- package/dist/cjs/assets-transpilers/types.js +3 -2
- package/dist/cjs/assets-transpilers/types.js.map +1 -1
- package/dist/cjs/assets-transpilers/utils.js +2 -4
- package/dist/cjs/assets-transpilers/utils.js.map +1 -1
- package/dist/cjs/fetch-utils/miniLruCache.d.ts +8 -0
- package/dist/cjs/fetch-utils/miniLruCache.js +49 -0
- package/dist/cjs/fetch-utils/miniLruCache.js.map +1 -0
- package/dist/cjs/fetch-utils/wrapFetchWithCache.d.ts +3 -0
- package/dist/cjs/fetch-utils/wrapFetchWithCache.js +74 -0
- package/dist/cjs/fetch-utils/wrapFetchWithCache.js.map +1 -0
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.js +15 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/{error → reporter}/QiankunError.js +1 -2
- package/dist/cjs/reporter/QiankunError.js.map +1 -0
- package/dist/{esm/error → cjs/reporter}/index.d.ts +1 -0
- package/dist/cjs/reporter/index.js +28 -0
- package/dist/cjs/reporter/index.js.map +1 -0
- package/dist/cjs/reporter/logger.d.ts +1 -0
- package/dist/cjs/reporter/logger.js +14 -0
- package/dist/cjs/reporter/logger.js.map +1 -0
- package/dist/cjs/utils.d.ts +8 -1
- package/dist/cjs/utils.js +89 -35
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/assets-transpilers/index.d.ts +7 -0
- package/dist/esm/assets-transpilers/index.js +7 -0
- package/dist/esm/assets-transpilers/index.js.map +1 -1
- package/dist/esm/assets-transpilers/link.js +15 -13
- package/dist/esm/assets-transpilers/link.js.map +1 -1
- package/dist/esm/assets-transpilers/script.d.ts +4 -4
- package/dist/esm/assets-transpilers/script.js +156 -95
- package/dist/esm/assets-transpilers/script.js.map +1 -1
- package/dist/esm/assets-transpilers/types.d.ts +10 -0
- package/dist/esm/assets-transpilers/types.js +2 -0
- package/dist/esm/assets-transpilers/types.js.map +1 -1
- package/dist/esm/fetch-utils/miniLruCache.d.ts +8 -0
- package/dist/esm/fetch-utils/miniLruCache.js +42 -0
- package/dist/esm/fetch-utils/miniLruCache.js.map +1 -0
- package/dist/esm/fetch-utils/wrapFetchWithCache.d.ts +3 -0
- package/dist/esm/fetch-utils/wrapFetchWithCache.js +66 -0
- package/dist/esm/fetch-utils/wrapFetchWithCache.js.map +1 -0
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/reporter/QiankunError.js.map +1 -0
- package/dist/{cjs/error → esm/reporter}/index.d.ts +1 -0
- package/dist/esm/reporter/index.js +3 -0
- package/dist/esm/reporter/index.js.map +1 -0
- package/dist/esm/reporter/logger.d.ts +1 -0
- package/dist/esm/reporter/logger.js +8 -0
- package/dist/esm/reporter/logger.js.map +1 -0
- package/dist/esm/utils.d.ts +8 -1
- package/dist/esm/utils.js +78 -19
- package/dist/esm/utils.js.map +1 -1
- package/package.json +5 -6
- package/dist/cjs/error/QiankunError.js.map +0 -1
- package/dist/cjs/error/index.js +0 -13
- package/dist/cjs/error/index.js.map +0 -1
- package/dist/esm/error/QiankunError.js.map +0 -1
- package/dist/esm/error/index.js +0 -2
- package/dist/esm/error/index.js.map +0 -1
- package/src/assets-transpilers/index.ts +0 -42
- package/src/assets-transpilers/link.ts +0 -130
- package/src/assets-transpilers/script.ts +0 -169
- package/src/assets-transpilers/types.ts +0 -22
- package/src/assets-transpilers/utils.ts +0 -27
- package/src/common.ts +0 -3
- package/src/error/QiankunError.ts +0 -5
- package/src/error/index.ts +0 -1
- package/src/index.ts +0 -9
- package/src/module-resolver/__tests__/index.ts +0 -75
- package/src/module-resolver/index.ts +0 -92
- package/src/module-resolver/types.ts +0 -9
- package/src/typings.d.ts +0 -13
- package/src/utils.ts +0 -37
- /package/dist/cjs/{error → reporter}/QiankunError.d.ts +0 -0
- /package/dist/esm/{error → reporter}/QiankunError.d.ts +0 -0
- /package/dist/esm/{error → reporter}/QiankunError.js +0 -0
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { describe, it } from 'vitest';
|
|
2
|
-
|
|
3
|
-
import { moduleResolver } from '../index';
|
|
4
|
-
|
|
5
|
-
describe('default module resolver', () => {
|
|
6
|
-
const mainAppContainer = document.createElement('div');
|
|
7
|
-
mainAppContainer.innerHTML = `
|
|
8
|
-
<script type="dependencymap">
|
|
9
|
-
{
|
|
10
|
-
"dependencies": {
|
|
11
|
-
"moment": {
|
|
12
|
-
"url": "https://unpkg.com/2.1.1/moment.js",
|
|
13
|
-
"version": "2.1.1",
|
|
14
|
-
"range": "^2.0.1"
|
|
15
|
-
},
|
|
16
|
-
"lodash": {
|
|
17
|
-
"url": "https://unpkg.com/4.0.2/lodash.js",
|
|
18
|
-
"version": "4.0.2",
|
|
19
|
-
"range": "~4.0.1"
|
|
20
|
-
},
|
|
21
|
-
"antd": {
|
|
22
|
-
"url": "https://unpkg.com/4.0.2/antd",
|
|
23
|
-
"version": "4.0.2",
|
|
24
|
-
"range": "~4.0.1"
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
</script>
|
|
29
|
-
`;
|
|
30
|
-
|
|
31
|
-
it('should works well', ({ expect }) => {
|
|
32
|
-
const microAppContainer = document.createElement('div');
|
|
33
|
-
microAppContainer.innerHTML = `
|
|
34
|
-
<script type="dependencymap">
|
|
35
|
-
{
|
|
36
|
-
"dependencies": {
|
|
37
|
-
"moment": {
|
|
38
|
-
"url": "https://unpkg.com/2.0.1/moment.js",
|
|
39
|
-
"version": "2.0.1",
|
|
40
|
-
"range": "^2.0.1"
|
|
41
|
-
},
|
|
42
|
-
"lodash": {
|
|
43
|
-
"url": "https://unpkg.com/4.0.1/lodash.js",
|
|
44
|
-
"version": "4.0.1",
|
|
45
|
-
"range": "~4.0.1"
|
|
46
|
-
},
|
|
47
|
-
"antd": {
|
|
48
|
-
"url": "https://unpkg.com/4.0.1/antd",
|
|
49
|
-
"version": "4.0.1",
|
|
50
|
-
"range": "4.0.1"
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
</script>
|
|
55
|
-
`;
|
|
56
|
-
|
|
57
|
-
const result1 = moduleResolver('https://unpkg.com/4.0.1/antd', microAppContainer, mainAppContainer);
|
|
58
|
-
expect(result1).toBeUndefined();
|
|
59
|
-
|
|
60
|
-
const result2 = moduleResolver('https://unpkg.com/4.0.1/lodash.js', microAppContainer, mainAppContainer);
|
|
61
|
-
expect(result2).toStrictEqual({
|
|
62
|
-
version: '4.0.2',
|
|
63
|
-
url: 'https://unpkg.com/4.0.2/lodash.js',
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
const result3 = moduleResolver('https://unpkg.com/2.0.1/moment.js', microAppContainer, mainAppContainer);
|
|
67
|
-
expect(result3).toStrictEqual({
|
|
68
|
-
version: '2.1.1',
|
|
69
|
-
url: 'https://unpkg.com/2.1.1/moment.js',
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
const result4 = moduleResolver('https://unpkg.com/4.0.2/antd', microAppContainer, mainAppContainer);
|
|
73
|
-
expect(result4).toBeUndefined();
|
|
74
|
-
});
|
|
75
|
-
});
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import satisfies from 'semver/functions/satisfies';
|
|
2
|
-
import type { MatchResult } from './types';
|
|
3
|
-
|
|
4
|
-
declare global {
|
|
5
|
-
interface HTMLElement {
|
|
6
|
-
__matched_deps__?: string[];
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
type Dependency = {
|
|
11
|
-
url: string;
|
|
12
|
-
version: string;
|
|
13
|
-
range: string;
|
|
14
|
-
peerDeps?: string[];
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
type NormalizedDependency = {
|
|
18
|
-
name: string;
|
|
19
|
-
} & Dependency;
|
|
20
|
-
|
|
21
|
-
type DependencyMap = {
|
|
22
|
-
dependencies: Record<string, Dependency>;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export type { MatchResult } from './types';
|
|
26
|
-
|
|
27
|
-
export function moduleResolver(
|
|
28
|
-
url: string,
|
|
29
|
-
microAppContainer: HTMLElement,
|
|
30
|
-
mainAppContainer: HTMLElement,
|
|
31
|
-
): MatchResult | undefined {
|
|
32
|
-
const dependencyMapSelector = 'script[type=dependencymap]';
|
|
33
|
-
|
|
34
|
-
const microAppDependenciesString = microAppContainer.querySelector(dependencyMapSelector)?.innerHTML;
|
|
35
|
-
if (microAppDependenciesString) {
|
|
36
|
-
const { dependencies } = JSON.parse(microAppDependenciesString) as DependencyMap;
|
|
37
|
-
const normalizedDependencies = normalizeDependencies(dependencies);
|
|
38
|
-
const microAppDependency = normalizedDependencies.find((v) => v.url === url);
|
|
39
|
-
|
|
40
|
-
if (microAppDependency) {
|
|
41
|
-
const mainAppDependencyMapString = mainAppContainer.querySelector(dependencyMapSelector)?.innerHTML;
|
|
42
|
-
|
|
43
|
-
if (mainAppDependencyMapString) {
|
|
44
|
-
const mainAppDependencyMap = JSON.parse(mainAppDependencyMapString) as DependencyMap;
|
|
45
|
-
const matchedDeps = (microAppContainer.__matched_deps__ ??= []);
|
|
46
|
-
const matchedDep = findDependency(
|
|
47
|
-
microAppDependency,
|
|
48
|
-
normalizeDependencies(mainAppDependencyMap.dependencies),
|
|
49
|
-
matchedDeps,
|
|
50
|
-
);
|
|
51
|
-
|
|
52
|
-
if (matchedDep) {
|
|
53
|
-
matchedDeps.push(matchedDep.name);
|
|
54
|
-
return matchedDep;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return undefined;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
function findDependency(
|
|
64
|
-
dependency: NormalizedDependency,
|
|
65
|
-
mainAppDependencies: NormalizedDependency[],
|
|
66
|
-
matchedDependencies: string[],
|
|
67
|
-
): MatchResult | undefined {
|
|
68
|
-
const matched = mainAppDependencies.find(
|
|
69
|
-
(mainAppDependency) =>
|
|
70
|
-
mainAppDependency.name === dependency.name &&
|
|
71
|
-
satisfies(mainAppDependency.version, dependency.range) &&
|
|
72
|
-
// peer dependencies must be cached before
|
|
73
|
-
(dependency.peerDeps || []).every((peerDep) => matchedDependencies.indexOf(peerDep) !== -1),
|
|
74
|
-
);
|
|
75
|
-
|
|
76
|
-
if (matched) {
|
|
77
|
-
return {
|
|
78
|
-
name: matched.name,
|
|
79
|
-
version: matched.version,
|
|
80
|
-
url: matched.url,
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
return undefined;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
function normalizeDependencies(dependencies: DependencyMap['dependencies']): NormalizedDependency[] {
|
|
88
|
-
return Object.keys(dependencies).map((name) => ({
|
|
89
|
-
name,
|
|
90
|
-
...dependencies[name],
|
|
91
|
-
}));
|
|
92
|
-
}
|
package/src/typings.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
declare module 'semver/functions/satisfies' {
|
|
2
|
-
export default function satisfies(version: string, range: string): boolean;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
type Priority = 'high' | 'low' | 'auto';
|
|
6
|
-
|
|
7
|
-
interface HTMLScriptElement {
|
|
8
|
-
fetchPriority?: Priority;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
interface RequestInit {
|
|
12
|
-
priority?: Priority;
|
|
13
|
-
}
|
package/src/utils.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @author Kuitos
|
|
3
|
-
* @since 2023-04-26
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
7
|
-
export const { create, defineProperty, getOwnPropertyDescriptor, getOwnPropertyNames, freeze, keys } = Object;
|
|
8
|
-
export const hasOwnProperty = (caller: unknown, p: PropertyKey) => Object.prototype.hasOwnProperty.call(caller, p);
|
|
9
|
-
|
|
10
|
-
export class Deferred<T> {
|
|
11
|
-
promise: Promise<T>;
|
|
12
|
-
|
|
13
|
-
status: 'pending' | 'fulfilled' | 'rejected' = 'pending';
|
|
14
|
-
|
|
15
|
-
resolve!: (value: T | PromiseLike<T>) => void;
|
|
16
|
-
|
|
17
|
-
reject!: (reason?: unknown) => void;
|
|
18
|
-
|
|
19
|
-
constructor() {
|
|
20
|
-
this.promise = new Promise((resolve, reject) => {
|
|
21
|
-
this.resolve = (value: T | PromiseLike<T>) => {
|
|
22
|
-
this.status = 'fulfilled';
|
|
23
|
-
resolve(value);
|
|
24
|
-
};
|
|
25
|
-
this.reject = (reason?: unknown) => {
|
|
26
|
-
this.status = 'rejected';
|
|
27
|
-
reject(reason);
|
|
28
|
-
};
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export function getEntireUrl(uri: string, baseURI: string): string {
|
|
34
|
-
const publicPath = new URL(baseURI, window.location.href);
|
|
35
|
-
const entireUrl = new URL(uri, publicPath.toString());
|
|
36
|
-
return entireUrl.toString();
|
|
37
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|