chore(core package): re-organize files

This commit is contained in:
Nicolas Meienberger 2026-04-16 19:07:11 +02:00
parent 5b728b8144
commit 95006a7471
No known key found for this signature in database
16 changed files with 28 additions and 34 deletions

View file

@ -5,8 +5,7 @@ import { spawn } from "node:child_process";
import { OPERATION_TIMEOUT, SSH_KEYS_DIR } from "../../../core/constants";
import { cryptoUtils } from "../../../utils/crypto";
import { toMessage } from "../../../utils/errors";
import { logger } from "@zerobyte/core/node";
import { FILE_MODES, writeFileWithMode } from "@zerobyte/core/utils";
import { logger, FILE_MODES, writeFileWithMode } from "@zerobyte/core/node";
import { getMountForPath } from "../../../utils/mountinfo";
import { withTimeout } from "../../../utils/timeout";
import type { VolumeBackend } from "../backend";

View file

@ -8,7 +8,6 @@
"scripts": {
"dev": "vite dev",
"build": "vite build",
"test": "vitest run",
"preview": "vite preview",
"deploy": "bun run build && wrangler deploy",
"cf-typegen": "wrangler types"
@ -52,7 +51,6 @@
"typescript": "^5.7.2",
"vite": "^8.0.8",
"vite-plugin-killer-instincts": "^1.0.0",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^3.0.5",
"wrangler": "^4.82.1"
},

View file

@ -1,6 +1,5 @@
import { defineConfig } from "vite";
import { devtools } from "@tanstack/devtools-vite";
import tsconfigPaths from "vite-tsconfig-paths";
import { tanstackStart } from "@tanstack/react-start/plugin/vite";
import { cloudflare } from "@cloudflare/vite-plugin";
@ -17,12 +16,14 @@ const config = defineConfig({
plugins: [
mdx(MdxConfig),
devtools(),
tsconfigPaths({ projects: ["./tsconfig.json"] }),
tailwindcss(),
cloudflare({ viteEnvironment: { name: "ssr" } }),
tanstackStart(),
viteReact(),
],
resolve: {
tsconfigPaths: true,
},
});
export default config;

View file

@ -1,7 +1,17 @@
import { describe, expect, test } from "vitest";
import { safeExec, safeSpawn } from "@zerobyte/core/node";
import { safeExec, safeSpawn } from "../spawn";
describe("safeExec", () => {
test("falls back to the process error message when stderr is empty", async () => {
const result = await safeExec({
command: process.execPath,
args: ["-e", "process.stdout.write('a'.repeat(2 * 1024 * 1024))"],
});
expect(result.exitCode).toBe(1);
expect(result.stderr).toContain("stdout maxBuffer length exceeded");
});
describe("successful commands", () => {
test("returns exitCode 0 and output for successful command", async () => {
const result = await safeExec({ command: "echo", args: ["hello"] });

View file

@ -1,4 +1,5 @@
export { safeSpawn, safeExec } from "../utils/spawn.js";
export type { SafeSpawnParams, SafeSpawnParamsLines, SafeSpawnParamsRaw, SpawnResult } from "../utils/spawn.js";
export { logger } from "../utils/logger.js";
export { safeSpawn, safeExec } from "./spawn.js";
export type { SafeSpawnParams, SafeSpawnParamsLines, SafeSpawnParamsRaw, SpawnResult } from "./spawn.js";
export { logger } from "./logger.js";
export { sanitizeSensitiveData } from "../utils/sanitize.js";
export { FILE_MODES, writeFileWithMode } from "./fs.js";

View file

@ -1,7 +1,7 @@
import { format } from "date-fns";
import { createConsola, type ConsolaReporter } from "consola";
import { formatWithOptions } from "node:util";
import { sanitizeSensitiveData } from "./sanitize";
import { sanitizeSensitiveData } from "../utils/sanitize";
type LogLevel = "debug" | "info" | "warn" | "error";

View file

@ -1,11 +1,11 @@
import { afterEach, describe, expect, test, vi } from "vitest";
import { Effect } from "effect";
import * as cleanupModule from "../../helpers/cleanup-temporary-keys";
import * as spawnModule from "../../../utils/spawn";
import * as spawnModule from "../../../node/spawn";
import { ResticError } from "../../error";
import { backup } from "../backup";
import type { ResticDeps } from "../../types";
import type { SafeSpawnParams, SpawnResult } from "../../../utils/spawn";
import type { SafeSpawnParams, SpawnResult } from "../../../node/spawn";
const mockDeps: ResticDeps = {
resolveSecret: async (s) => s,

View file

@ -1,9 +1,9 @@
import { afterEach, describe, expect, test, vi } from "vitest";
import * as cleanupModule from "../../helpers/cleanup-temporary-keys";
import * as spawnModule from "../../../utils/spawn";
import * as spawnModule from "../../../node/spawn";
import { ls } from "../ls";
import type { ResticDeps } from "../../types";
import type { SafeSpawnParams } from "../../../utils/spawn";
import type { SafeSpawnParams } from "../../../node/spawn";
const mockDeps: ResticDeps = {
resolveSecret: async (s) => s,

View file

@ -1,10 +1,10 @@
import { afterEach, describe, expect, test, vi } from "vitest";
import * as cleanupModule from "../../helpers/cleanup-temporary-keys";
import * as spawnModule from "../../../utils/spawn";
import * as spawnModule from "../../../node/spawn";
import { ResticError } from "../../error";
import { restore } from "../restore";
import type { ResticDeps } from "../../types";
import type { SafeSpawnParams, SpawnResult } from "../../../utils/spawn";
import type { SafeSpawnParams, SpawnResult } from "../../../node/spawn";
const mockDeps: ResticDeps = {
resolveSecret: async (s) => s,

View file

@ -3,7 +3,7 @@ import path from "node:path";
import type { ResticDeps, ResticEnv } from "../types";
import type { RepositoryConfig } from "../schemas";
import { logger } from "../../node";
import { FILE_MODES, writeFileWithMode } from "../../utils/fs.js";
import { FILE_MODES, writeFileWithMode } from "../../node/fs.js";
export const buildEnv = async (
config: RepositoryConfig,

View file

@ -1,14 +0,0 @@
import { describe, expect, test } from "vitest";
import { safeExec } from "../spawn";
describe("safeExec", () => {
test("falls back to the process error message when stderr is empty", async () => {
const result = await safeExec({
command: process.execPath,
args: ["-e", "process.stdout.write('a'.repeat(2 * 1024 * 1024))"],
});
expect(result.exitCode).toBe(1);
expect(result.stderr).toContain("stdout maxBuffer length exceeded");
});
});

View file

@ -2,4 +2,3 @@ export { safeJsonParse } from "./json.js";
export { toErrorDetails, toMessage } from "./errors.js";
export { isPathWithin, normalizeAbsolutePath } from "./path.js";
export { findCommonAncestor } from "./common-ancestor.js";
export { FILE_MODES, writeFileWithMode } from "./fs.js";

View file

@ -1,6 +1,6 @@
import { vi } from "vitest";
vi.mock(import("../src/utils/logger.ts"), () => ({
vi.mock(import("../src/node/logger.ts"), () => ({
logger: {
debug: () => {},
info: () => {},