formats.exposed/public/gif/constants.js

63 lines
1.2 KiB
JavaScript
Raw Normal View History

// @ts-check
/** @enum {string} */
const types = [
"root",
"header",
"headerSignature",
"headerVersion",
2023-08-16 15:46:31 +00:00
"logicalScreenDescriptor",
"logicalScreenWidth",
"logicalScreenHeight",
"logicalScreenDescriptorPackedFields",
"logicalScreenBackgroundColorIndex",
"logicalScreenPixelAspectRatio",
2023-08-16 16:59:33 +00:00
"globalColorTable",
"globalColorTableColor",
"imageSection",
"imageDescriptor",
"imageSeparator",
"imageDescriptorLeftPosition",
"imageDescriptorTopPosition",
"imageDescriptorWidth",
"imageDescriptorHeight",
"imageDescriptorPackedFields",
"localColorTable",
"localColorTableColor",
"imageData",
"imageDataLzwMinimumCodeSize",
"imageDataSubBlock",
"imageDataSubBlockSize",
"imageDataSubBlockData",
"imageDataTerminator",
"extensionBlockIntroducer",
"extensionBlockSize",
"unknownExtensionBlock",
"unknownExtensionBlockLabel",
"unknownExtensionBlockData",
2023-11-09 15:20:48 +00:00
"gifTerminator",
].reduce((result, id) => {
result[id] = id;
return result;
}, Object.create(null));
// TODO: Revert this and just export the thing
export const GifNodeType = new Proxy(types, {
get(target, prop) {
const result = target[prop];
if (!result) {
throw new Error(`cannot get ${String(prop)}`);
}
return result;
},
});