@wix/cli
Version:
CLI tool for building Wix sites and applications
124 lines (123 loc) • 3.61 kB
JavaScript
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