@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
59 lines • 2.08 kB
JavaScript
;
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