UNPKG

@strapi/utils

Version:

Shared utilities for the Strapi packages

1 lines 1.85 kB
{"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;;;;IAKaA,MAAAA,6BAAAA,GAAgC,CAAUC,WAAAA,GAAAA;IACrD,IAAIC,YAAAA;AAEJ,IAAA,MAAMC,kBAAqB,GAAA,IAAA;AACzB,QAAA,IAAI,CAACD,YAAc,EAAA;YACjBA,YAAeD,GAAAA,WAAAA,EAAAA;AACjB;QAEA,OAAOC,YAAAA;AACT,KAAA;AAEA,IAAA,MAAME,sBAAyB,GAAA,IAAA;QAC7B,OAAO;YACLC,IAAM,EAAA,aAAA;YACNC,MAAQH,EAAAA,kBAAAA;AACV,SAAA;AACF,KAAA;IAEAI,MAAOC,CAAAA,cAAc,CAACJ,sBAAAA,EAAwB,QAAU,EAAA;QACtDK,GAAKN,EAAAA,kBAAAA;AACLO,QAAAA,GAAAA,CAAAA,CAAIC,IAAa,EAAA;YACfT,YAAeS,GAAAA,IAAAA;AACjB,SAAA;QACAC,UAAY,EAAA;AACd,KAAA,CAAA;IAEA,OAAOR,sBAAAA;AACT;;;;"}