{"version":3,"file":"vis_options.mjs","names":[],"sources":["../../src/server/vis_options.ts"],"sourcesContent":["import type { TestUserConfig } from 'vitest/node'\nimport type { VisOptions } from '../config/types.ts'\nimport { assertSnapshotKeyWithoutDash } from '../shared/asserts.ts'\nimport { getProjectName } from './project.ts'\nimport type { ExtendedBrowserCommandContext } from './vis_server_context.types.ts'\n\nconst DEFAULT_PROJECT_NAME = '__default'\n\nconst visOptions: Record<string, VisOptions<any> | undefined> = {}\n\n/** Clears stored options (for tests that share this module). */\nexport function clearVisOptionsRegistryForTesting() {\n\tfor (const key of Object.keys(visOptions)) {\n\t\tdelete visOptions[key]\n\t}\n}\n\nexport function setVisOption(\n\tuserConfig: { test?: { name?: TestUserConfig['name'] | undefined } },\n\toptions: VisOptions<any> | undefined,\n) {\n\tassertSnapshotKeyWithoutDash(options?.snapshotKey)\n\n\tconst name = userConfig.test?.name\n\tconst id = typeof name === 'string' ? name : typeof name === 'object' ? name?.label : DEFAULT_PROJECT_NAME\n\n\tvisOptions[id] = options\n}\n\nexport function getVisOption(context: ExtendedBrowserCommandContext) {\n\tconst id = getProjectName(context) || DEFAULT_PROJECT_NAME\n\tconst base = visOptions[DEFAULT_PROJECT_NAME] ?? {}\n\tconst override = visOptions[id] ?? {}\n\treturn { ...base, ...override }\n}\n"],"mappings":";;;;AAMA,MAAM,uBAAuB;AAE7B,MAAM,aAA0D,EAAE;AASlE,SAAgB,aACf,YACA,SACC;AACD,8BAA6B,SAAS,YAAY;CAElD,MAAM,OAAO,WAAW,MAAM;CAC9B,MAAM,KAAK,OAAO,SAAS,WAAW,OAAO,OAAO,SAAS,WAAW,MAAM,QAAQ;AAEtF,YAAW,MAAM;;AAGlB,SAAgB,aAAa,SAAwC;CACpE,MAAM,KAAK,eAAe,QAAQ,IAAI;CACtC,MAAM,OAAO,WAAW,yBAAyB,EAAE;CACnD,MAAM,WAAW,WAAW,OAAO,EAAE;AACrC,QAAO;EAAE,GAAG;EAAM,GAAG;EAAU"}