Skip to content

Commit e528345

Browse files
fix(openontology): resolve manifest directories on Windows (#116)
1 parent 6f23dbd commit e528345

2 files changed

Lines changed: 9 additions & 2 deletions

File tree

packages/openontology/src/package.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { existsSync, readFileSync } from "node:fs";
2-
import { isAbsolute, join, resolve } from "node:path";
2+
import { dirname, isAbsolute, join, resolve } from "node:path";
33
import { parse as parseYaml } from "yaml";
44
import { canonicalObject, digest, packageDigest } from "./canonical.js";
55
import { OPENONTOLOGY_VERSION } from "./types.js";
@@ -75,7 +75,7 @@ function loadFromDir(dirOrFile: string): LoadedPackage {
7575
? base
7676
: findManifest(base);
7777

78-
const dir = manifestPath.slice(0, manifestPath.lastIndexOf("/")) || ".";
78+
const dir = dirname(manifestPath);
7979
const manifest = canonicalObject(parseFile(manifestPath) as Manifest);
8080

8181
if (manifest?.kind !== "OntologyPackage") {

packages/openontology/src/validate.test.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,13 @@ describe("init + validate", () => {
4848
expect(pkg.files.map((f) => f.path)).toContain("data/claims.ndjson");
4949
});
5050

51+
it("loads a package from an explicit manifest path", () => {
52+
const { dir } = scaffold();
53+
const pkg = loadOntologyPackage(join(dir, "openontology.yaml"));
54+
expect(pkg.dir).toBe(dir);
55+
expect(pkg.manifest.id).toBe("test-ecosystem");
56+
});
57+
5158
it("builds a deterministic digest that survives a rebuild", () => {
5259
const { pkg } = scaffold();
5360
const first = buildOntologyPackage(pkg);

0 commit comments

Comments
 (0)