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": {
|
"tasks": {
|
||||||
"check": "deno fmt --check && deno lint && deno check .",
|
"check": "deno fmt --check && deno lint && deno check .",
|
||||||
"test": "deno test --allow-read=. --allow-write=./tests/site/_site,./tests/__snapshots__ --deny-env"
|
"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.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import * as v from "@valibot/valibot";
|
import diagrams from "./resources/diagrams.json" with { type: "json" };
|
||||||
import diagrams from "@/resources/diagrams.json" with { type: "json" };
|
import { LumeSite, valibot as v } from "./deps.ts";
|
||||||
import type Site from "lume/core/site.ts";
|
|
||||||
import { deflateSync } from "node:zlib";
|
import { deflateSync } from "node:zlib";
|
||||||
|
|
||||||
const textEncoder = new TextEncoder();
|
const textEncoder = new TextEncoder();
|
||||||
|
@ -67,10 +66,10 @@ const OptionsSchema = v.optional(
|
||||||
|
|
||||||
export type Options = v.InferInput<typeof OptionsSchema>;
|
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);
|
const opts = v.parse(OptionsSchema, options);
|
||||||
|
|
||||||
return (site: Site) => {
|
return (site: LumeSite) => {
|
||||||
site.process([".html"], (pages) => {
|
site.process([".html"], (pages) => {
|
||||||
pages.forEach((page) => {
|
pages.forEach((page) => {
|
||||||
diagrams.forEach((diagram) => {
|
diagrams.forEach((diagram) => {
|
||||||
|
|
|
@ -14,11 +14,14 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import mod from "@/mod.ts";
|
import mod from "../mod.ts";
|
||||||
import { ValiError } from "@valibot/valibot";
|
import { getSite } from "./utils.ts";
|
||||||
import { assertExists, assertInstanceOf } from "@std/assert";
|
import {
|
||||||
import { assertSnapshot } from "@std/testing/snapshot";
|
assertExists,
|
||||||
import { getSite } from "@/tests/utils.ts";
|
assertInstanceOf,
|
||||||
|
assertSnapshot,
|
||||||
|
valibot,
|
||||||
|
} from "../deps.ts";
|
||||||
|
|
||||||
Deno.test("Error thrown on invalid options", async (t) => {
|
Deno.test("Error thrown on invalid options", async (t) => {
|
||||||
await t.step("Invalid server", () => {
|
await t.step("Invalid server", () => {
|
||||||
|
@ -29,7 +32,7 @@ Deno.test("Error thrown on invalid options", async (t) => {
|
||||||
error = err;
|
error = err;
|
||||||
}
|
}
|
||||||
assertExists(error);
|
assertExists(error);
|
||||||
assertInstanceOf(error, ValiError);
|
assertInstanceOf(error, valibot.ValiError);
|
||||||
});
|
});
|
||||||
|
|
||||||
await t.step("Invalid enabledDiagrams", () => {
|
await t.step("Invalid enabledDiagrams", () => {
|
||||||
|
@ -40,7 +43,7 @@ Deno.test("Error thrown on invalid options", async (t) => {
|
||||||
error = err;
|
error = err;
|
||||||
}
|
}
|
||||||
assertExists(error);
|
assertExists(error);
|
||||||
assertInstanceOf(error, ValiError);
|
assertInstanceOf(error, valibot.ValiError);
|
||||||
});
|
});
|
||||||
|
|
||||||
await t.step("Invalid format", () => {
|
await t.step("Invalid format", () => {
|
||||||
|
@ -52,7 +55,7 @@ Deno.test("Error thrown on invalid options", async (t) => {
|
||||||
error = err;
|
error = err;
|
||||||
}
|
}
|
||||||
assertExists(error);
|
assertExists(error);
|
||||||
assertInstanceOf(error, ValiError);
|
assertInstanceOf(error, valibot.ValiError);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -14,16 +14,20 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import lume, { type PluginOptions } from "lume/mod.ts";
|
import {
|
||||||
import type Site from "lume/core/site.ts";
|
fromFileUrl,
|
||||||
import type { DeepPartial } from "lume/core/utils/object.ts";
|
join,
|
||||||
import type { SiteOptions } from "lume/core/site.ts";
|
lume,
|
||||||
import type { Writer } from "lume/core/writer.ts";
|
type LumeDeepPartial,
|
||||||
import { fromFileUrl, join } from "@std/path";
|
type LumePluginOptions,
|
||||||
|
LumeSite,
|
||||||
|
type LumeSiteOptions,
|
||||||
|
type LumeWriter,
|
||||||
|
} from "../deps.ts";
|
||||||
|
|
||||||
const cwd = fromFileUrl(import.meta.resolve("./"));
|
const cwd = fromFileUrl(import.meta.resolve("./"));
|
||||||
|
|
||||||
class TestWriter implements Writer {
|
class TestWriter implements LumeWriter {
|
||||||
savePages() {
|
savePages() {
|
||||||
return Promise.resolve([]);
|
return Promise.resolve([]);
|
||||||
}
|
}
|
||||||
|
@ -42,9 +46,9 @@ class TestWriter implements Writer {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getSite(
|
export function getSite(
|
||||||
siteOptions: DeepPartial<SiteOptions> = {},
|
siteOptions: LumeDeepPartial<LumeSiteOptions> = {},
|
||||||
pluginOptions: PluginOptions = {},
|
pluginOptions: LumePluginOptions = {},
|
||||||
): Site {
|
): LumeSite {
|
||||||
siteOptions.cwd = join(cwd, "site");
|
siteOptions.cwd = join(cwd, "site");
|
||||||
|
|
||||||
const site = lume(
|
const site = lume(
|
||||||
|
|
Loading…
Reference in a new issue