@knapsack/app
Version:
Build Design Systems on top of knapsack, by Basalt
104 lines (90 loc) • 2.8 kB
JavaScript
;
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;