fix(javascript): bind Next page admission to source context
This commit is contained in:
1 parent
c20b707680
commit
5ee5e49cb4
13 files changed
+532
-53
No files matched your search
@@ -15,6 +15,7 @@ interface JavaScriptJsonDocumentFactBase {
|
||||
export type JavaScriptJsonDocumentFacts =
|
||||
| (JavaScriptJsonDocumentFactBase & {
|
||||
readonly status: "included";
|
||||
readonly nextDependency: "declared" | "unproven";
|
||||
readonly packageFields: Readonly<
|
||||
Partial<Record<(typeof PACKAGE_PROPERTIES)[number], unknown>>
|
||||
> | null;
|
||||
@@ -127,6 +128,7 @@ const parseDocument = (
|
||||
return Object.freeze({
|
||||
source: snapshot.source,
|
||||
status: "included",
|
||||
nextDependency: "unproven",
|
||||
packageFields: null,
|
||||
topLevelKeys: Object.freeze([]),
|
||||
});
|
||||
@@ -145,9 +147,24 @@ const parseDocument = (
|
||||
packageFields[key] = Reflect.get(record, key);
|
||||
Object.freeze(packageFields);
|
||||
}
|
||||
const nextDeclared =
|
||||
snapshot.kind === "package-json" &&
|
||||
["dependencies", "devDependencies", "peerDependencies"].some((key) => {
|
||||
const dependencies: unknown = record[key];
|
||||
if (
|
||||
typeof dependencies !== "object" ||
|
||||
dependencies === null ||
|
||||
Array.isArray(dependencies) ||
|
||||
!Object.hasOwn(dependencies, "next")
|
||||
)
|
||||
return false;
|
||||
const version: unknown = Reflect.get(dependencies, "next");
|
||||
return typeof version === "string" && version.length > 0;
|
||||
});
|
||||
return Object.freeze({
|
||||
source: snapshot.source,
|
||||
status: "included",
|
||||
nextDependency: nextDeclared ? "declared" : "unproven",
|
||||
packageFields,
|
||||
topLevelKeys,
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user