UNPKG

@knapsack/app

Version:

Build Design Systems on top of knapsack, by Basalt

104 lines (90 loc) 2.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "pageBuilderPagesTypeDef", { enumerable: true, get: function () { return _pageBuilder.pageBuilderPagesTypeDef; } }); exports.pageBuilderPagesResolvers = exports.PageBuilder = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _graphqlTypeJson = _interopRequireDefault(require("graphql-type-json")); var _fileDb = require("./dbs/file-db"); var _pageBuilder = require("../schemas/page-builder"); /** * Copyright (C) 2018 Basalt This file is part of Knapsack. Knapsack is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Knapsack is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Knapsack; if not, see <https://www.gnu.org/licenses>. */ class PageBuilder { constructor({ dataDir }) { (0, _defineProperty2.default)(this, "db", void 0); this.db = new _fileDb.FileDb({ dbDir: dataDir, name: 'knapsack.page-builder', defaults: {} }); } async getPageBuilderPage(id) { return this.db.get(id); } async getPageBuilderPages() { return this.db.values(); } async setPageBuilderPage(id, data) { try { this.db.set(id, data); return { ok: true, message: `PageBuilderPage ${id} saved successfully!` }; } catch (e) { return { ok: false, message: `PageBuilderPage ${id} NOT saved successfully. ${e.toString()}` }; } } } exports.PageBuilder = PageBuilder; const pageBuilderPagesResolvers = { Query: { pageBuilderPage: (parent, { id }, { pageBuilderPages }) => pageBuilderPages.getPageBuilderPage(id), pageBuilderPages: (parent, args, { pageBuilderPages }) => pageBuilderPages.getPageBuilderPages() }, Mutation: { setPageBuilderPage: async (parent, { id, data }, { pageBuilderPages, canWrite }) => { if (!canWrite) return false; await pageBuilderPages.setPageBuilderPage(id, data); return pageBuilderPages.getPageBuilderPage(id); } }, JSON: _graphqlTypeJson.default }; exports.pageBuilderPagesResolvers = pageBuilderPagesResolvers;