@strapi/utils
Version:
Shared utilities for the Strapi packages
1 lines • 1.87 kB
Source Map (JSON)
{"version":3,"file":"content-api-router.mjs","sources":["../src/content-api-router.ts"],"sourcesContent":["/**\n * Creates a content-api route factory that exposes `routes` on the factory function for backward compatibility.\n *\n * This allows legacy extensions to mutate `plugin.routes[\"content-api\"].routes` directly.\n */\nexport const createContentApiRoutesFactory = <TRoutes>(buildRoutes: () => TRoutes) => {\n let sharedRoutes: TRoutes | undefined;\n\n const ensureSharedRoutes = (): TRoutes => {\n if (!sharedRoutes) {\n sharedRoutes = buildRoutes();\n }\n\n return sharedRoutes;\n };\n\n const createContentApiRoutes = () => {\n return {\n type: 'content-api' as const,\n routes: ensureSharedRoutes(),\n };\n };\n\n Object.defineProperty(createContentApiRoutes, 'routes', {\n get: ensureSharedRoutes,\n set(next: TRoutes) {\n sharedRoutes = next;\n },\n enumerable: true,\n });\n\n return createContentApiRoutes;\n};\n\nexport type ContentApiRoutesFactory<TRoutes> = ReturnType<\n typeof createContentApiRoutesFactory<TRoutes>\n> & { routes: TRoutes };\n"],"names":["createContentApiRoutesFactory","buildRoutes","sharedRoutes","ensureSharedRoutes","createContentApiRoutes","type","routes","Object","defineProperty","get","set","next","enumerable"],"mappings":"AAAA;;;;IAKO,MAAMA,6BAAAA,GAAgC,CAAUC,WAAAA,GAAAA;IACrD,IAAIC,YAAAA;AAEJ,IAAA,MAAMC,kBAAAA,GAAqB,IAAA;AACzB,QAAA,IAAI,CAACD,YAAAA,EAAc;YACjBA,YAAAA,GAAeD,WAAAA,EAAAA;AACjB,QAAA;QAEA,OAAOC,YAAAA;AACT,IAAA,CAAA;AAEA,IAAA,MAAME,sBAAAA,GAAyB,IAAA;QAC7B,OAAO;YACLC,IAAAA,EAAM,aAAA;YACNC,MAAAA,EAAQH,kBAAAA;AACV,SAAA;AACF,IAAA,CAAA;IAEAI,MAAAA,CAAOC,cAAc,CAACJ,sBAAAA,EAAwB,QAAA,EAAU;QACtDK,GAAAA,EAAKN,kBAAAA;AACLO,QAAAA,GAAAA,CAAAA,CAAIC,IAAa,EAAA;YACfT,YAAAA,GAAeS,IAAAA;AACjB,QAAA,CAAA;QACAC,UAAAA,EAAY;AACd,KAAA,CAAA;IAEA,OAAOR,sBAAAA;AACT;;;;"}