Skip to content

Commit 6e31e6e

Browse files
committed
refactor: update packageName
1 parent 3b17ae9 commit 6e31e6e

File tree

2 files changed

+16
-13
lines changed

2 files changed

+16
-13
lines changed

src/errors.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,9 @@ export class ProjectError extends Data.TaggedError("ProjectError")<{ readonly ca
2121
export class PackageDeclarationsError extends Data.TaggedError("PackageDeclarationsError")<{
2222
cause?: unknown;
2323
}> {}
24+
25+
/** `PackageNameError` occurs when the name of a package is not a name valid on the npm registry. */
26+
export class PackageNameError extends Data.TaggedError("PackageNameError")<{
27+
warnings?: string[];
28+
errors?: string[];
29+
}> {}

src/package-name.ts

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
1-
import { Data, Effect } from "effect";
1+
import { Effect } from "effect";
22
import validate from "validate-npm-package-name";
3+
import { PackageNameError } from "./errors.ts";
34

4-
/** @internal */
5-
export class PackageNameError extends Data.TaggedError("PackageNameError")<{
6-
warnings?: string[];
7-
errors?: string[];
8-
}> {}
9-
10-
/** @internal */
11-
export const packageName = (pkg: string) =>
12-
Effect.gen(function* () {
5+
/**
6+
`packageName` returns an Effect for validating package names
7+
according to the npm registry's new naming rules.
8+
*/
9+
export function packageName(pkg: string) {
10+
return Effect.gen(function* () {
1311
const versionMarker = pkg.lastIndexOf("@");
1412
const pkgName = pkg.slice(0, versionMarker > 0 ? versionMarker : undefined);
1513
const { validForNewPackages, warnings, errors } = validate(pkgName);
16-
if (!validForNewPackages) {
17-
return yield* new PackageNameError({ warnings, errors });
18-
}
14+
if (!validForNewPackages) return yield* new PackageNameError({ warnings, errors });
1915
return pkgName;
2016
});
17+
}

0 commit comments

Comments
 (0)