UNPKG

@wix/cli

Version:

CLI tool for building Wix sites and applications

124 lines (123 loc) 3.61 kB
import { createRequire as _createRequire } from 'node:module'; const require = _createRequire(import.meta.url); import { extensionTypeSchema } from "./chunk-VDKMDELU.js"; import { extensionHandlers } from "./chunk-K37QBDZK.js"; import "./chunk-FQM6PYRS.js"; import "./chunk-KGXWWZJW.js"; import "./chunk-SR7TTQEG.js"; import "./chunk-FLDCYVA4.js"; import "./chunk-TQF2C25T.js"; import "./chunk-BHWSM372.js"; import "./chunk-7QJUAJW3.js"; import "./chunk-NMCF7XG5.js"; import "./chunk-MHV22UIU.js"; import "./chunk-OQJA5FSX.js"; import "./chunk-AAUVYJJT.js"; import "./chunk-K6JLY75P.js"; import "./chunk-KCDAY54L.js"; import "./chunk-FYLO6WOU.js"; import "./chunk-3B6VL2WO.js"; import "./chunk-7QTVQZAE.js"; import { createHttpClient, isLoggedInToAccount } from "./chunk-CCWE4DS6.js"; import "./chunk-U5H3SP3I.js"; import "./chunk-TIVTYCB2.js"; import "./chunk-RPTAJN5Y.js"; import "./chunk-UC5LTXTA.js"; import "./chunk-5VIJC5EU.js"; import "./chunk-MZDJNQLB.js"; import "./chunk-QNHANFRW.js"; import "./chunk-AFPDHQYI.js"; import "./chunk-HYKBBZLS.js"; import "./chunk-C5RTKQVL.js"; import "./chunk-4EJ5VQTT.js"; import "./chunk-4UTFAKA5.js"; import "./chunk-LU3R3EBR.js"; import "./chunk-XZUGLEBK.js"; import "./chunk-TLLAD5LU.js"; import "./chunk-SDLCFZRL.js"; import { CliError, CliErrorCode } from "./chunk-CO5A7CZG.js"; import { init_esm_shims } from "./chunk-EXLZF52D.js"; // ../cli-astro-commands/src/non-interactive/generate-extensions.ts init_esm_shims(); import { relative } from "node:path"; async function assertAuth() { const authData = await isLoggedInToAccount(); if (!authData) { throw new CliError({ code: CliErrorCode.AuthenticationRequired(), cause: null }); } return authData; } function parseExtensionType(params) { const extensionTypeResult = extensionTypeSchema.safeParse(params); if (!extensionTypeResult.success) { throw new Error( `'extensionType' must be specified. Run 'wix schema generate' to see available types.` ); } const { extensionType } = extensionTypeResult.data; if (!Object.hasOwn(extensionHandlers, extensionType)) { throw new Error( `Unknown extension type: '${extensionType}'. Run 'wix schema generate' to see available types.` ); } return extensionType; } async function nonInteractiveGenerateExtension(_services, model, params) { const authData = await assertAuth(); const extensionType = parseExtensionType(params); const handler = extensionHandlers[extensionType]; const httpClient = createHttpClient({ type: "backoffice", getAppToken: () => authData.getAccessToken({}) }); const zodSchema = typeof handler.zodSchema === "function" ? await handler.zodSchema(httpClient) : handler.zodSchema; const result = zodSchema.safeParse(params); if (!result.success) { throw new Error( result.error.errors.map( (e) => e.path.length > 0 ? `${e.path.join(".")}: ${e.message}` : e.message ).join("\n") ); } if (handler.validate) { const validationError = await handler.validate( model.projectFolder, result.data ); if (validationError) { throw new Error(validationError); } } const generationResult = await handler.generate({ projectFolder: model.projectFolder, appId: model.config.appId, model, data: result.data, httpClient }); return { extensionType, newFiles: (generationResult?.newFiles ?? []).map( (f) => relative(model.projectFolder, f) ) }; } export { nonInteractiveGenerateExtension }; //# sourceMappingURL=generate-extensions-Z7NJKAVX.js.map