UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

1 lines 2.58 kB
{"version":3,"file":"generate-process-key.mjs","names":["constants"],"sources":["../../../src/utils/media/generate-process-key.ts"],"sourcesContent":["import constants from \"../../constants/constants.js\";\nimport type { ImageProcessorOptions } from \"../../libs/image-processor/types.js\";\nimport getKeyVisibility from \"./get-key-visibility.js\";\nimport { getMediaKeyParts } from \"./media-key-tenant.js\";\nimport normalizeMediaKey from \"./normalize-media-key.js\";\n\n/**\n * Generates a unique key for processed images based on the media key, its options and visibility. Looks like:\n * private/tenant-key/processed/def456-image-w400-fwebp\n */\nconst generateProcessKey = (data: {\n\tkey: string;\n\toptions: ImageProcessorOptions;\n\textension?: string | null;\n}) => {\n\tconst normalizedKey = normalizeMediaKey(data.key);\n\tconst visibility = getKeyVisibility(normalizedKey);\n\tconst keyParts = getMediaKeyParts(normalizedKey);\n\tconst keyIdentity =\n\t\tkeyParts.identityIndex === -1\n\t\t\t? normalizedKey\n\t\t\t: keyParts.parts.slice(keyParts.identityIndex).join(\"/\");\n\tconst prefix =\n\t\tkeyParts.scopedPathStartIndex === -1\n\t\t\t? visibility\n\t\t\t: keyParts.parts.slice(0, keyParts.scopedPathStartIndex).join(\"/\");\n\n\tconst suffixes: string[] = [];\n\tif (data.options.width) suffixes.push(`w${data.options.width}`);\n\tif (data.options.height) suffixes.push(`h${data.options.height}`);\n\tif (data.options.quality) suffixes.push(`q${data.options.quality}`);\n\tif (data.options.fit && data.options.fit !== \"cover\") {\n\t\tsuffixes.push(`fit${data.options.fit}`);\n\t}\n\n\tconst suffix = suffixes.length > 0 ? `-${suffixes.join(\"-\")}` : \"\";\n\tconst finalFormat = data.options.format ?? data.extension ?? \"bin\";\n\n\treturn `${prefix}/${constants.media.processedKey}/${keyIdentity}${suffix}-f${finalFormat}`;\n};\n\nexport default generateProcessKey;\n"],"mappings":"wLAUA,MAAM,EAAsB,GAItB,CACL,IAAM,EAAgB,EAAkB,EAAK,GAAG,EAC1C,EAAa,EAAiB,CAAa,EAC3C,EAAW,EAAiB,CAAa,EACzC,EACL,EAAS,gBAAkB,GACxB,EACA,EAAS,MAAM,MAAM,EAAS,aAAa,CAAC,CAAC,KAAK,GAAG,EACnD,EACL,EAAS,uBAAyB,GAC/B,EACA,EAAS,MAAM,MAAM,EAAG,EAAS,oBAAoB,CAAC,CAAC,KAAK,GAAG,EAE7D,EAAqB,CAAC,EACxB,EAAK,QAAQ,OAAO,EAAS,KAAK,IAAI,EAAK,QAAQ,OAAO,EAC1D,EAAK,QAAQ,QAAQ,EAAS,KAAK,IAAI,EAAK,QAAQ,QAAQ,EAC5D,EAAK,QAAQ,SAAS,EAAS,KAAK,IAAI,EAAK,QAAQ,SAAS,EAC9D,EAAK,QAAQ,KAAO,EAAK,QAAQ,MAAQ,SAC5C,EAAS,KAAK,MAAM,EAAK,QAAQ,KAAK,EAGvC,IAAM,EAAS,EAAS,OAAS,EAAI,IAAI,EAAS,KAAK,GAAG,IAAM,GAC1D,EAAc,EAAK,QAAQ,QAAU,EAAK,WAAa,MAE7D,MAAO,GAAG,EAAO,GAAGA,EAAU,MAAM,aAAa,GAAG,IAAc,EAAO,IAAI,GAC9E"}