UNPKG

@azure-utils/storybooks

Version:

Utils to upload and manage Storybooks via Azure Functions and storage.

112 lines (110 loc) 4.83 kB
const require_chunk = require('./chunk-DWy1uDak.cjs'); const require_constants = require('./constants-94H7Co6A.cjs'); require('./azure-data-tables-Cr_5xanT.cjs'); require('./mime-utils-t6SSMbeF.cjs'); require('./error-utils-DFTvM-wv.cjs'); require('./azure-storage-blob-BAHnImGv.cjs'); const require_shared = require('./shared-BSQDPNdH.cjs'); require('./projects-Dq7sJTc7.cjs'); const require_timer_purge_handler = require('./timer-purge-handler-Da1TCfbg.cjs'); require('./openapi-utils-CMVFCUk1.cjs'); const require_store = require('./store-CYxr095K.cjs'); const require_url_utils = require('./url-utils-Dy7KiQmB.cjs'); require('./table-CnB0C2aQ.cjs'); require('./projects-table-BIdoDclZ.cjs'); require('./builds-table-C0WHumRL.cjs'); require('./labels-table-C6Zj73wz.cjs'); const require_projects_router = require('./projects-router-CPG9dN8W.cjs'); require('./validators-XghOucvl.cjs'); require('./upload-utils-WCE_dx3_.cjs'); const require_builds_router = require('./builds-router-CjqDPSp2.cjs'); const require_labels_router = require('./labels-router-D-Imun3b.cjs'); require('./openapi-handler-DHgi5PyL.cjs'); const require_web_ui_router = require('./web-ui-router-B9HQAZXS.cjs'); const require_storybook_router = require('./storybook-router-BIGCGqvZ.cjs'); const __azure_functions = require_chunk.__toESM(require("@azure/functions")); const zod = require_chunk.__toESM(require("zod")); //#region src/index.ts /** * Function to register all routes required to manage the Storybooks including * GET, POST and DELETE methods. * * @returns a function to register additional HTTP handlers for the service. */ function registerStorybooksRouter(options = {}) { const { serviceName = require_constants.DEFAULT_SERVICE_NAME, baseRoute = "", authLevel, storageConnectionStringEnvVar = require_constants.DEFAULT_STORAGE_CONN_STR_ENV_VAR, purgeScheduleCron, openapi, checkPermissions = require_constants.DEFAULT_CHECK_PERMISSIONS_CALLBACK } = options; const storageConnectionString = process.env[storageConnectionStringEnvVar]; if (!storageConnectionString) throw new Error("Missing env-var '${storageConnectionStringEnvVar}' value.\nIt is required to connect with Azure Storage resource."); console.log("Registering Storybooks Router"); const openAPIEnabled = !openapi?.disabled; __azure_functions.app.setup({ enableHttpStream: true }); const handlerWrapper = require_store.wrapHttpHandlerWithStore.bind(null, { serviceName, baseRoute, authLevel, connectionString: storageConnectionString, openapi, staticDirs: options.staticDirs || ["./public"], checkPermissions }); const normalisedServiceName = serviceName.toLowerCase().replace(/\s+/g, "_"); require_projects_router.registerProjectsRouter({ serviceName: normalisedServiceName, baseRoute: require_url_utils.joinUrl(baseRoute, "projects"), basePathParamsSchema: require_shared.EmptyObjectSchema, openAPIEnabled, handlerWrapper }); require_builds_router.registerBuildsRouter({ serviceName: normalisedServiceName, baseRoute: require_url_utils.joinUrl(baseRoute, "projects", "{projectId}", "builds"), basePathParamsSchema: zod.default.object({ projectId: require_shared.ProjectIdSchema }), openAPIEnabled, handlerWrapper }); require_labels_router.registerLabelsRouter({ serviceName: normalisedServiceName, baseRoute: require_url_utils.joinUrl(baseRoute, "projects", "{projectId}", "labels"), basePathParamsSchema: zod.default.object({ projectId: require_shared.ProjectIdSchema }), openAPIEnabled, handlerWrapper }); require_storybook_router.registerStorybookRouter({ serviceName: normalisedServiceName, baseRoute: require_url_utils.joinUrl(baseRoute, "_"), basePathParamsSchema: require_shared.EmptyObjectSchema, openAPIEnabled, handlerWrapper }); require_web_ui_router.registerWebUIRouter({ serviceName: normalisedServiceName, baseRoute, basePathParamsSchema: require_shared.EmptyObjectSchema, openAPIEnabled, handlerWrapper }); if (purgeScheduleCron !== null) __azure_functions.app.timer(`${normalisedServiceName}-timer_purge`, { schedule: purgeScheduleCron || require_constants.DEFAULT_PURGE_SCHEDULE_CRON, handler: require_timer_purge_handler.timerPurgeHandler(storageConnectionString) }); /** * Register an HTTP function. * * The baseRoute and authLevel is inherited. * * @param name unique name for the HTTP function * @param options Options for Azure HTTP function */ function registerRoute(name, options$1) { __azure_functions.app.http(`${normalisedServiceName}-${name}`, { authLevel, ...options$1, route: require_url_utils.joinUrl(baseRoute, options$1.route || name), handler: handlerWrapper(options$1.handler, []), methods: options$1.methods || ["GET"] }); } return registerRoute; } //#endregion exports.registerStorybooksRouter = registerStorybooksRouter;