alinea
Version:
Headless git-based CMS
59 lines (57 loc) • 1.51 kB
JavaScript
import "../../chunks/chunk-NZLE2WMY.js";
// src/adapter/next/with-alinea.ts
import { readFileSync } from "node:fs";
import { createRequire } from "node:module";
import { resolve } from "node:path";
function createCMS() {
throw new Error(
'Alinea was loaded in a CJS environment. Please ensure your project is marked as "type": "module" in package.json.'
);
}
function withAlinea(config) {
let nextVersion = 15;
try {
const require2 = createRequire(resolve("./index.js"));
const pkgLocation = require2.resolve("next/package.json");
const pkg = JSON.parse(readFileSync(pkgLocation, "utf-8"));
nextVersion = Number(pkg.version.split(".")[0]);
} catch {
console.warn("Alinea could not determine Next.js version, assuming 15+");
}
const imagesConfig = config.images ?? {};
const remotePatterns = [
...imagesConfig.remotePatterns ?? [],
{
protocol: "https",
hostname: "uploads.alinea.cloud"
}
];
const images = {
...imagesConfig,
remotePatterns
};
if (nextVersion < 15)
return {
...config,
experimental: {
...config.experimental,
serverComponentsExternalPackages: [
...config.experimental?.serverComponentsExternalPackages ?? [],
"@alinea/generated"
]
},
images
};
return {
...config,
serverExternalPackages: [
...config.serverExternalPackages ?? [],
"@alinea/generated"
],
images
};
}
export {
createCMS,
withAlinea
};