Skip to content

Commit

Permalink
revert(update): revert commit a1c7270
Browse files Browse the repository at this point in the history
Refs #210
  • Loading branch information
JamieMason committed Apr 24, 2024
1 parent 6bd199a commit 1d2339b
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 37 deletions.
15 changes: 4 additions & 11 deletions src/bin-update/effects.ts
Original file line number Diff line number Diff line change
Expand Up @@ -226,18 +226,11 @@ export const updateEffects = {
...doState.majorAnswers,
...doState.prereleaseAnswers,
],
Effect.forEach((release) =>
Effect.forEach(({ instance, versions }) =>
pipe(
release.instance.versionGroup.instances,
Effect.forEach((instance) =>
pipe(
instance.semverGroup.getFixed(
Specifier.create(instance, release.versions.latest),
),
Effect.flatMap((latestWithRange) => instance.write(latestWithRange.raw)),
Effect.catchTag('NonSemverError', Effect.logError),
),
),
instance.semverGroup.getFixed(Specifier.create(instance, versions.latest)),
Effect.flatMap((latestWithRange) => instance.write(latestWithRange.raw)),
Effect.catchTag('NonSemverError', Effect.logError),
),
),
Effect.flatMap(() => Effect.void),
Expand Down
55 changes: 29 additions & 26 deletions src/bin-update/update.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,47 +27,50 @@ export function update(
Effect.Do,
Effect.bind('ctx', () => getContext({ io, cli, errorHandlers })),
Effect.bind('instances', ({ ctx }) => getInstances(ctx, io, errorHandlers)),
Effect.bind('updateable', ({ instances }) => {
const isVisitedByName: Record<string, boolean> = {};
const updateable: Instance[] = [];
instances.all.forEach((instance) => {
const _tag = instance.versionGroup._tag;
if (!isVisitedByName[instance.name] && (_tag === 'SameRange' || _tag === 'Standard')) {
const specifier = Specifier.create(instance, instance.rawSpecifier.raw);
if (specifier._tag === 'Range' || specifier._tag === 'Exact') {
isVisitedByName[instance.name] = true;
updateable.push(instance);
}
}
});
return Effect.succeed(updateable);
}),
Effect.bind('update', ({ updateable }) =>
Effect.bind('update', ({ instances }) =>
pipe(
Effect.succeed(updateable),
Effect.tap(effects.onFetchAllStart),
Effect.succeed(instances.all),
Effect.map((instances) => {
const isVisitedByName: Record<string, boolean> = {};
const updateable: Instance[] = [];
instances.forEach((instance) => {
if (
!isVisitedByName[instance.name] &&
(instance.versionGroup._tag === 'SameRange' ||
instance.versionGroup._tag === 'Standard')
) {
const specifier = Specifier.create(instance, instance.rawSpecifier.raw);
if (specifier._tag === 'Range' || specifier._tag === 'Exact') {
isVisitedByName[instance.name] = true;
updateable.push(instance);
}
}
});
return updateable;
}),
Effect.tap(updateEffects.onFetchAllStart),
Effect.flatMap((instances) =>
pipe(
instances,
Effect.partition(
(instance) =>
pipe(
Effect.succeed(instance),
Effect.tap(() => effects.onFetchStart(instance, instances.length)),
Effect.tap(() => updateEffects.onFetchStart(instance, instances.length)),
Effect.flatMap(effects.fetchLatestVersions),
Effect.tapBoth({
onFailure: () => effects.onFetchEnd(instance),
onSuccess: ({ versions }) => effects.onFetchEnd(instance, versions),
onFailure: () => updateEffects.onFetchEnd(instance),
onSuccess: ({ versions }) => updateEffects.onFetchEnd(instance, versions),
}),
// move up to date dependencies to error channel
Effect.flatMap((updateable) =>
gtr(updateable.versions.latest, String(instance.rawSpecifier.raw))
? pipe(
effects.onOutdated(instance, updateable.versions.latest),
updateEffects.onOutdated(instance, updateable.versions.latest),
Effect.map(() => updateable),
)
: pipe(
effects.onUpToDate(instance),
updateEffects.onUpToDate(instance),
Effect.flatMap(() => Effect.fail(updateable)),
),
),
Expand All @@ -88,11 +91,11 @@ export function update(
),
// always remove the spinner when we're done
Effect.tapBoth({
onFailure: effects.onFetchAllEnd,
onSuccess: effects.onFetchAllEnd,
onFailure: updateEffects.onFetchAllEnd,
onSuccess: updateEffects.onFetchAllEnd,
}),
// ask the user which updates they want
Effect.flatMap(effects.promptForUpdates),
Effect.flatMap(updateEffects.promptForUpdates),
// if we think the user cancelled, say so
Effect.catchTag('PromptCancelled', () =>
Effect.logInfo(
Expand Down

0 comments on commit 1d2339b

Please sign in to comment.