UNPKG

@pnp/cli-microsoft365

Version:

Manage Microsoft 365 and SharePoint Framework projects on any platform

66 lines 2.59 kB
import { z } from 'zod'; import { zod } from '../../../../utils/zod.js'; import { globalOptionsZod } from '../../../../Command.js'; import { spo } from '../../../../utils/spo.js'; import { validation } from '../../../../utils/validation.js'; import SpoCommand from '../../../base/SpoCommand.js'; import commands from '../../commands.js'; import request from '../../../../request.js'; const options = globalOptionsZod .extend({ url: zod.alias('u', z.string() .refine((url) => validation.isValidSharePointUrl(url) === true, url => ({ message: `'${url}' is not a valid SharePoint Online site URL.` }))), audiences: z.string() .refine(audiences => validation.isValidGuidArray(audiences) === true, audiences => ({ message: `The following GUIDs are invalid: ${validation.isValidGuidArray(audiences)}.` })).optional(), vivaConnectionsDefaultStart: z.boolean().optional(), isInDraftMode: z.boolean().optional(), order: z.number() .refine(order => validation.isValidPositiveInteger(order) === true, order => ({ message: `'${order}' is not a positive integer.` })).optional() }) .strict(); class SpoHomeSiteAddCommand extends SpoCommand { get name() { return commands.HOMESITE_ADD; } get description() { return 'Adds a home site'; } get schema() { return options; } async commandAction(logger, args) { try { const spoAdminUrl = await spo.getSpoAdminUrl(logger, this.verbose); const requestOptions = { url: `${spoAdminUrl}/_api/SPHSite/AddHomeSite`, headers: { accept: 'application/json;odata=nometadata' }, responseType: 'json', data: { siteUrl: args.options.url, audiences: args.options.audiences?.split(','), vivaConnectionsDefaultStart: args.options.vivaConnectionsDefaultStart ?? true, isInDraftMode: args.options.isInDraftMode ?? false, order: args.options.order } }; if (this.verbose) { await logger.logToStderr(`Adding home site with URL: ${args.options.url}...`); } const res = await request.post(requestOptions); await logger.log(res); } catch (err) { this.handleRejectedODataJsonPromise(err); } } } export default new SpoHomeSiteAddCommand(); //# sourceMappingURL=homesite-add.js.map