Skip to content

Commit d17dc6e

Browse files
authored
refactor(install)!: not install new dep when miss version (#12)
Signed-off-by: Kevin Cui <[email protected]>
1 parent 9f5f56f commit d17dc6e

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

src/cmd/install.test.ts

+4-5
Original file line numberDiff line numberDiff line change
@@ -252,10 +252,10 @@ describe.sequential("install deps", () => {
252252
});
253253

254254
expect(result.deps).toStrictEqual({
255-
"a-0.0.2": {
255+
"a-0.0.1": {
256256
name: "a",
257-
version: "0.0.2",
258-
isAlreadyExist: false,
257+
version: "0.0.1",
258+
isAlreadyExist: true,
259259
target: expect.any(String),
260260
meta: expect.any(Object),
261261
},
@@ -284,7 +284,7 @@ describe.sequential("install deps", () => {
284284

285285
const deps = (await generatePackageJson(ctx.workdir, false)).dependencies;
286286
expect(deps).toEqual({
287-
a: "0.0.2",
287+
a: "0.0.1",
288288
b: "0.0.2",
289289
c: "0.0.1",
290290
d: "0.0.1",
@@ -298,7 +298,6 @@ describe.sequential("install deps", () => {
298298

299299
expect(new Set(fileList)).toEqual(new Set([
300300
"a-0.0.1/package.oo.yaml",
301-
"a-0.0.2/package.oo.yaml",
302301
"b-0.0.2/package.oo.yaml",
303302
"c-0.0.1/package.oo.yaml",
304303
"d-0.0.1/package.oo.yaml",

src/cmd/install.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,12 @@ export async function installPackage(options: InstallPackageOptions): Promise<In
110110
let version = dep.version;
111111

112112
if (!version) {
113-
version = await findLatestVersion(dep.name, options.token);
113+
if (libraryMeta?.dependencies?.[dep.name]) {
114+
version = libraryMeta?.dependencies?.[dep.name] as string;
115+
}
116+
else {
117+
version = await findLatestVersion(dep.name, options.token);
118+
}
114119
}
115120

116121
const existsDisk = await exists(path.join(options.distDir, `${dep.name}-${version}`, ooPackageName));

tests/fixtures/install_deps/README.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ d: 0.0.1
2626
### Installation Logic
2727

2828
1. Install `a` `b` `c:0.0.1`
29-
2. Will install `a:0.0.2` `b:0.0.2` `c:0.0.1` `d:0.0.1`
29+
2. Will install `b:0.0.2` `c:0.0.1` `d:0.0.1`
3030
1. Install `d:0.0.1` when not found in `Local Storage`
31-
3. Update entry dependencies `a` to `0.0.2`
32-
4. Add `b:0.0.2` to entry dependencies and `Local Storage`
33-
5. Add `c:0.0.1` to entry dependencies and `Local Storage`
34-
6. Add `d:0.0.1` to entry dependencies and `Local Storage` (Overwrite)
31+
2. Not install `a:0.0.2` as `a:0.0.1` is already installed
32+
3. Add `b:0.0.2` to entry dependencies and `Local Storage`
33+
4. Add `c:0.0.1` to entry dependencies and `Local Storage`
34+
5. Add `d:0.0.1` to entry dependencies and `Local Storage` (Overwrite)

0 commit comments

Comments
 (0)