@pnp/cli-microsoft365
Version:
Manage Microsoft 365 and SharePoint Framework projects on any platform
66 lines • 2.59 kB
JavaScript
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