fix: Error on HTTP import
Fixes a relative import path error when importing the package via HTTP. All dependencies have been moved to `deps.ts`.
This commit is contained in:
parent
2b10ca41b3
commit
990cae20ed
6 changed files with 72 additions and 31 deletions
|
@ -4,13 +4,5 @@
|
|||
"tasks": {
|
||||
"check": "deno fmt --check && deno lint && deno check .",
|
||||
"test": "deno test --allow-read=. --allow-write=./tests/site/_site,./tests/__snapshots__ --deny-env"
|
||||
},
|
||||
"imports": {
|
||||
"@/": "./",
|
||||
"@std/assert": "jsr:@std/assert@1.0.7",
|
||||
"@std/path": "jsr:@std/path@1.0.8",
|
||||
"@std/testing": "jsr:@std/testing@1.0.4",
|
||||
"@valibot/valibot": "jsr:@valibot/valibot@0.42.1",
|
||||
"lume/": "https://deno.land/x/lume@v2.4.0/"
|
||||
}
|
||||
}
|
||||
|
|
BIN
deno.lock
BIN
deno.lock
Binary file not shown.
43
deps.ts
Normal file
43
deps.ts
Normal file
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
* Copyright 2024 Foster Hangdaan
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
// Lume
|
||||
export {
|
||||
default as LumeSite,
|
||||
type SiteOptions as LumeSiteOptions,
|
||||
} from "https://deno.land/x/lume@v2.4.0/core/site.ts";
|
||||
export {
|
||||
default as lume,
|
||||
type PluginOptions as LumePluginOptions,
|
||||
} from "https://deno.land/x/lume@v2.4.0/mod.ts";
|
||||
export {
|
||||
type DeepPartial as LumeDeepPartial,
|
||||
} from "https://deno.land/x/lume@v2.4.0/core/utils/object.ts";
|
||||
export {
|
||||
type Writer as LumeWriter,
|
||||
} from "https://deno.land/x/lume@v2.4.0/core/writer.ts";
|
||||
|
||||
// STD Assert
|
||||
export { assertExists, assertInstanceOf } from "jsr:@std/assert@1.0.7";
|
||||
|
||||
// STD Testing
|
||||
export { assertSnapshot } from "jsr:@std/testing@1.0.4/snapshot";
|
||||
|
||||
// STD Path
|
||||
export { fromFileUrl, join } from "jsr:@std/path@1.0.8";
|
||||
|
||||
// Valibot
|
||||
export * as valibot from "jsr:@valibot/valibot@0.42.1";
|
9
mod.ts
9
mod.ts
|
@ -14,9 +14,8 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import * as v from "@valibot/valibot";
|
||||
import diagrams from "@/resources/diagrams.json" with { type: "json" };
|
||||
import type Site from "lume/core/site.ts";
|
||||
import diagrams from "./resources/diagrams.json" with { type: "json" };
|
||||
import { LumeSite, valibot as v } from "./deps.ts";
|
||||
import { deflateSync } from "node:zlib";
|
||||
|
||||
const textEncoder = new TextEncoder();
|
||||
|
@ -67,10 +66,10 @@ const OptionsSchema = v.optional(
|
|||
|
||||
export type Options = v.InferInput<typeof OptionsSchema>;
|
||||
|
||||
export default function (options?: Options): (site: Site) => void {
|
||||
export default function (options?: Options): (site: LumeSite) => void {
|
||||
const opts = v.parse(OptionsSchema, options);
|
||||
|
||||
return (site: Site) => {
|
||||
return (site: LumeSite) => {
|
||||
site.process([".html"], (pages) => {
|
||||
pages.forEach((page) => {
|
||||
diagrams.forEach((diagram) => {
|
||||
|
|
|
@ -14,11 +14,14 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import mod from "@/mod.ts";
|
||||
import { ValiError } from "@valibot/valibot";
|
||||
import { assertExists, assertInstanceOf } from "@std/assert";
|
||||
import { assertSnapshot } from "@std/testing/snapshot";
|
||||
import { getSite } from "@/tests/utils.ts";
|
||||
import mod from "../mod.ts";
|
||||
import { getSite } from "./utils.ts";
|
||||
import {
|
||||
assertExists,
|
||||
assertInstanceOf,
|
||||
assertSnapshot,
|
||||
valibot,
|
||||
} from "../deps.ts";
|
||||
|
||||
Deno.test("Error thrown on invalid options", async (t) => {
|
||||
await t.step("Invalid server", () => {
|
||||
|
@ -29,7 +32,7 @@ Deno.test("Error thrown on invalid options", async (t) => {
|
|||
error = err;
|
||||
}
|
||||
assertExists(error);
|
||||
assertInstanceOf(error, ValiError);
|
||||
assertInstanceOf(error, valibot.ValiError);
|
||||
});
|
||||
|
||||
await t.step("Invalid enabledDiagrams", () => {
|
||||
|
@ -40,7 +43,7 @@ Deno.test("Error thrown on invalid options", async (t) => {
|
|||
error = err;
|
||||
}
|
||||
assertExists(error);
|
||||
assertInstanceOf(error, ValiError);
|
||||
assertInstanceOf(error, valibot.ValiError);
|
||||
});
|
||||
|
||||
await t.step("Invalid format", () => {
|
||||
|
@ -52,7 +55,7 @@ Deno.test("Error thrown on invalid options", async (t) => {
|
|||
error = err;
|
||||
}
|
||||
assertExists(error);
|
||||
assertInstanceOf(error, ValiError);
|
||||
assertInstanceOf(error, valibot.ValiError);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -14,16 +14,20 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import lume, { type PluginOptions } from "lume/mod.ts";
|
||||
import type Site from "lume/core/site.ts";
|
||||
import type { DeepPartial } from "lume/core/utils/object.ts";
|
||||
import type { SiteOptions } from "lume/core/site.ts";
|
||||
import type { Writer } from "lume/core/writer.ts";
|
||||
import { fromFileUrl, join } from "@std/path";
|
||||
import {
|
||||
fromFileUrl,
|
||||
join,
|
||||
lume,
|
||||
type LumeDeepPartial,
|
||||
type LumePluginOptions,
|
||||
LumeSite,
|
||||
type LumeSiteOptions,
|
||||
type LumeWriter,
|
||||
} from "../deps.ts";
|
||||
|
||||
const cwd = fromFileUrl(import.meta.resolve("./"));
|
||||
|
||||
class TestWriter implements Writer {
|
||||
class TestWriter implements LumeWriter {
|
||||
savePages() {
|
||||
return Promise.resolve([]);
|
||||
}
|
||||
|
@ -42,9 +46,9 @@ class TestWriter implements Writer {
|
|||
}
|
||||
|
||||
export function getSite(
|
||||
siteOptions: DeepPartial<SiteOptions> = {},
|
||||
pluginOptions: PluginOptions = {},
|
||||
): Site {
|
||||
siteOptions: LumeDeepPartial<LumeSiteOptions> = {},
|
||||
pluginOptions: LumePluginOptions = {},
|
||||
): LumeSite {
|
||||
siteOptions.cwd = join(cwd, "site");
|
||||
|
||||
const site = lume(
|
||||
|
|
Loading…
Reference in a new issue