UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

59 lines 2.08 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.writePermissionTypesFile = writePermissionTypesFile; const schema_1 = require("@sprucelabs/schema"); const AbstractAction_1 = __importDefault(require("../../AbstractAction")); class SyncAction extends AbstractAction_1.default { invocationMessage = 'Syncing permissions... 🛡'; optionsSchema = schema; commandAliases = ['sync.permissions']; permissions; writer; constructor(options) { super(options); this.permissions = this.Store('permission'); this.writer = this.Writer('permission'); } async execute(options) { const { shouldSyncCorePermissions } = this.validateAndNormalizeOptions(options ?? {}); const permissions = this.permissions; const writer = this.writer; const cwd = this.cwd; const typesFiles = await writePermissionTypesFile({ permissions, shouldSyncCorePermissions, writer, cwd, }); const local = await this.permissions.loadLocalPermissions(); const combinedFiles = await this.writer.writeCombinedFile(this.cwd, { contracts: local, }); return { files: [...typesFiles, ...combinedFiles], summaryLines: ['Permissions synced'], }; } } exports.default = SyncAction; const schema = (0, schema_1.buildSchema)({ id: 'syncPermissions', fields: { shouldSyncCorePermissions: { type: 'boolean', }, }, }); async function writePermissionTypesFile(options) { const { permissions, shouldSyncCorePermissions, writer, cwd, namespaces } = options; const map = await permissions.fetchContracts({ namespaces, shouldSyncCorePermissions, }); const typesFiles = await writer.writeTypesFile(cwd, map); return typesFiles; } //# sourceMappingURL=SyncAction.js.map