Initial commit: 11ty website with Fire/Frost branding
This commit is contained in:
69
node_modules/@11ty/eleventy/src/Util/ReservedData.js
generated
vendored
Normal file
69
node_modules/@11ty/eleventy/src/Util/ReservedData.js
generated
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
class EleventyReservedDataError extends TypeError {}
|
||||
|
||||
class ReservedData {
|
||||
static properties = [
|
||||
// "pkg", // Object.freeze’d upstream
|
||||
// "eleventy", // Object.freeze’d upstream
|
||||
// "page" is only frozen for specific subproperties below
|
||||
"content",
|
||||
"collections",
|
||||
];
|
||||
|
||||
static pageProperties = [
|
||||
"date",
|
||||
"inputPath",
|
||||
"fileSlug",
|
||||
"filePathStem",
|
||||
"outputFileExtension",
|
||||
"templateSyntax",
|
||||
"url",
|
||||
"outputPath",
|
||||
// not yet `excerpt` or `lang` set via front matter and computed data
|
||||
];
|
||||
|
||||
// Check in the data cascade for reserved data properties.
|
||||
static getReservedKeys(data) {
|
||||
if (!data) {
|
||||
return [];
|
||||
}
|
||||
|
||||
let keys = this.properties.filter((key) => {
|
||||
return key in data;
|
||||
});
|
||||
|
||||
if ("page" in data) {
|
||||
if (typeof data.page === "object") {
|
||||
for (let key of this.pageProperties) {
|
||||
if (key in data.page) {
|
||||
keys.push(`page.${key}`);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// fail `page` when set to non-object values.
|
||||
keys.push("page");
|
||||
}
|
||||
}
|
||||
return keys;
|
||||
}
|
||||
|
||||
static check(data) {
|
||||
let reserved = ReservedData.getReservedKeys(data);
|
||||
if (reserved.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
let error = new EleventyReservedDataError(
|
||||
`Cannot override reserved Eleventy properties: ${reserved.join(", ")}`,
|
||||
);
|
||||
|
||||
error.reservedNames = reserved;
|
||||
|
||||
throw error;
|
||||
}
|
||||
|
||||
static isReservedDataError(e) {
|
||||
return e instanceof EleventyReservedDataError;
|
||||
}
|
||||
}
|
||||
|
||||
export default ReservedData;
|
||||
Reference in New Issue
Block a user