mirror of
https://github.com/cloudflare/vinext.git
synced 2026-09-14 19:04:59 +08:00
ffd28c133f
* fix(app-router): ignore fully dynamic requests * fix(app-router): match dynamic request analysis semantics * fix(app-router): complete dynamic request analysis * fix(app-router): complete dynamic request analysis * fix(app-router): avoid unsafe dynamic request folding * fix(build): respect static block request bindings * fix(build): scope static block var bindings * fix(build): scope dynamic request parameter defaults * fix(build): honor dynamic request ignore comments * fix(build): parse dynamic request comments safely * perf(build): skip irrelevant dynamic request modules * refactor(build): scope dynamic request analysis * fix(build): track TypeScript value bindings * fix(build): preserve bounded concat requests * fix(build): harden dynamic request analysis * fix(build): harden dynamic request analysis * fix(build): preserve switch discriminant scope * fix(build): resolve constant dynamic request expressions * fix(build): align unary dynamic requests * fix(build): preserve negative numeric dynamic requests * fix(build): align remaining dynamic request analysis * fix(build): align dynamic request sequence analysis * fix(build): resolve constant string predicates * fix(build): bound dynamic request alias resolution * fix(build): resolve dynamic request aliases lexically * fix(build): align dynamic request global constants * fix(build): align NaN dynamic request predicates * fix(build): include optimized transpile packages * fix(build): align Turbopack package classification * fix(build): align server transpile precedence
34 lines
1.4 KiB
TypeScript
34 lines
1.4 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { mergeServerExternalPackages } from "../packages/vinext/src/config/server-external-packages.js";
|
|
|
|
describe("mergeServerExternalPackages", () => {
|
|
it("includes Next.js defaults and appends unique user packages", () => {
|
|
const packages = mergeServerExternalPackages(["typescript", "custom-package"]);
|
|
|
|
expect(packages).toContain("shiki");
|
|
expect(packages).toContain("ts-morph");
|
|
expect(packages).toContain("typescript");
|
|
expect(packages).toContain("custom-package");
|
|
expect(packages.filter((name) => name === "typescript")).toHaveLength(1);
|
|
});
|
|
|
|
it("lets transpilePackages override default externals", () => {
|
|
const packages = mergeServerExternalPackages([], ["typescript", "shiki"]);
|
|
|
|
expect(packages).not.toContain("shiki");
|
|
expect(packages).not.toContain("typescript");
|
|
});
|
|
|
|
it("lets default and optimized transpile packages override externals", () => {
|
|
const packages = mergeServerExternalPackages([], ["geist", "shiki"]);
|
|
|
|
expect(packages).not.toContain("shiki");
|
|
});
|
|
|
|
it("rejects conflicts between explicit externals and transpiled packages", () => {
|
|
expect(() => mergeServerExternalPackages(["typescript"], ["typescript"])).toThrow(
|
|
"The packages specified in the 'transpilePackages' conflict with the 'serverExternalPackages': typescript",
|
|
);
|
|
});
|
|
});
|