UNPKG

10.1 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7require("babel/polyfill");
8
9"use strict";
10
11exports["default"] = function (api) {
12
13 return {
14
15 db: {
16 version: function version() {
17 return api.bookshelf.knex.migrate.currentVersion();
18 },
19
20 rollback: function rollback() {
21 return api.bookshelf.knex.migrate.rollback();
22 },
23
24 migrate: {
25 make: function make(name) {
26 if (name == null) {
27 return Promise.reject("The file name is required.");
28 }
29 return api.bookshelf.knex.migrate.make(name);
30 },
31 run: function run() {
32 return api.bookshelf.knex.migrate.latest();
33 }
34 },
35
36 seed: {
37 make: function make(name) {
38 if (name == null) {
39 return Promise.reject("The file name is required.");
40 }
41 return api.bookshelf.knex.seed.make(name);
42 },
43 run: function run() {
44 return api.bookshelf.knex.seed.run();
45 }
46 },
47
48 create: function create() {
49 var config, knex, sql;
50 knex = api.bookshelf.knex;
51 sql = "create database " + api.config.bookshelf.connection.database;
52
53 switch (api.config.bookshelf.client) {
54 case "sqlite":
55 case "sqlite3":
56 return Promise.resolve();
57
58 case "pg":
59 case "postgres":
60 case "postgresql":
61 sql += " template template0";
62 config = JSON.parse(JSON.stringify(api.config.bookshelf));
63 config.connection.database = "template1";
64 return knex.destroy().then(function () {
65 knex = require("knex")(config);
66 return knex.raw(sql);
67 });
68
69 default:
70 return knex.raw(sql).then(function () {
71 return knex.destroy();
72 });
73 };
74 },
75
76 drop: function drop() {
77 var config, knex, sql;
78 knex = api.bookshelf.knex;
79 sql = "drop database " + api.config.bookshelf.connection.database;
80
81 switch (api.config.bookshelf.client) {
82 case "sqlite":
83 case "sqlite3":
84 // TODO: remove file
85 return Promise.resolve();
86
87 case "pg":
88 case "postgres":
89 case "postgresql":
90 config = JSON.parse(JSON.stringify(api.config.bookshelf));
91 config.connection.database = "template1";
92 return knex.destroy().then(function () {
93 knex = require("knex")(config);
94 return knex.raw(sql);
95 });
96
97 default:
98 return knex.raw(sql).then(function () {
99 return knex.destroy();
100 });
101 };
102 }
103 }
104
105 };
106};
107
108;
109module.exports = exports["default"];
110//# sourceMappingURL=data:application/json;base64,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anMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFwiYmFiZWwvcG9seWZpbGxcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oYXBpKSB7XG5cbiAgcmV0dXJuIHtcblxuICAgIGRiOiB7XG4gICAgICB2ZXJzaW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFwaS5ib29rc2hlbGYua25leC5taWdyYXRlLmN1cnJlbnRWZXJzaW9uKCk7XG4gICAgICB9LFxuXG5cbiAgICAgIHJvbGxiYWNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFwaS5ib29rc2hlbGYua25leC5taWdyYXRlLnJvbGxiYWNrKCk7XG4gICAgICB9LFxuXG5cbiAgICAgIG1pZ3JhdGU6IHtcbiAgICAgICAgbWFrZTogZnVuY3Rpb24obmFtZSkge1xuICAgICAgICAgIGlmIChuYW1lID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcIlRoZSBmaWxlIG5hbWUgaXMgcmVxdWlyZWQuXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYXBpLmJvb2tzaGVsZi5rbmV4Lm1pZ3JhdGUubWFrZShuYW1lKTtcbiAgICAgICAgfSxcbiAgICAgICAgcnVuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gYXBpLmJvb2tzaGVsZi5rbmV4Lm1pZ3JhdGUubGF0ZXN0KCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG5cblxuICAgICAgc2VlZDoge1xuICAgICAgICBtYWtlOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgICAgICAgaWYgKG5hbWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFwiVGhlIGZpbGUgbmFtZSBpcyByZXF1aXJlZC5cIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhcGkuYm9va3NoZWxmLmtuZXguc2VlZC5tYWtlKG5hbWUpO1xuICAgICAgICB9LFxuICAgICAgICBydW46IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiBhcGkuYm9va3NoZWxmLmtuZXguc2VlZC5ydW4oKTtcbiAgICAgICAgfVxuICAgICAgfSxcblxuXG4gICAgICBjcmVhdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgY29uZmlnLCBrbmV4LCBzcWw7XG4gICAgICAgIGtuZXggPSBhcGkuYm9va3NoZWxmLmtuZXg7XG4gICAgICAgIHNxbCA9IFwiY3JlYXRlIGRhdGFiYXNlIFwiICsgYXBpLmNvbmZpZy5ib29rc2hlbGYuY29ubmVjdGlvbi5kYXRhYmFzZTtcblxuICAgICAgICBzd2l0Y2ggKGFwaS5jb25maWcuYm9va3NoZWxmLmNsaWVudCkge1xuICAgICAgICBjYXNlIFwic3FsaXRlXCI6XG4gICAgICAgIGNhc2UgXCJzcWxpdGUzXCI6XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXG4gICAgICAgIGNhc2UgXCJwZ1wiOlxuICAgICAgICBjYXNlIFwicG9zdGdyZXNcIjpcbiAgICAgICAgY2FzZSBcInBvc3RncmVzcWxcIjpcbiAgICAgICAgICBzcWwgKz0gXCIgdGVtcGxhdGUgdGVtcGxhdGUwXCI7XG4gICAgICAgICAgY29uZmlnID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhcGkuY29uZmlnLmJvb2tzaGVsZikpO1xuICAgICAgICAgIGNvbmZpZy5jb25uZWN0aW9uLmRhdGFiYXNlID0gXCJ0ZW1wbGF0ZTFcIjtcbiAgICAgICAgICByZXR1cm4ga25leC5kZXN0cm95KCkudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGtuZXggPSByZXF1aXJlKFwia25leFwiKShjb25maWcpO1xuICAgICAgICAgICAgcmV0dXJuIGtuZXgucmF3KHNxbCk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4ga25leC5yYXcoc3FsKS50aGVuKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIGtuZXguZGVzdHJveSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgfSxcblxuXG4gICAgICBkcm9wOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGNvbmZpZywga25leCwgc3FsO1xuICAgICAgICBrbmV4ID0gYXBpLmJvb2tzaGVsZi5rbmV4O1xuICAgICAgICBzcWwgPSBcImRyb3AgZGF0YWJhc2UgXCIgKyBhcGkuY29uZmlnLmJvb2tzaGVsZi5jb25uZWN0aW9uLmRhdGFiYXNlO1xuXG4gICAgICAgIHN3aXRjaCAoYXBpLmNvbmZpZy5ib29rc2hlbGYuY2xpZW50KSB7XG4gICAgICAgIGNhc2UgXCJzcWxpdGVcIjpcbiAgICAgICAgY2FzZSBcInNxbGl0ZTNcIjpcbiAgICAgICAgICAvLyBUT0RPOiByZW1vdmUgZmlsZVxuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblxuICAgICAgICBjYXNlIFwicGdcIjpcbiAgICAgICAgY2FzZSBcInBvc3RncmVzXCI6XG4gICAgICAgIGNhc2UgXCJwb3N0Z3Jlc3FsXCI6XG4gICAgICAgICAgY29uZmlnID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhcGkuY29uZmlnLmJvb2tzaGVsZikpO1xuICAgICAgICAgIGNvbmZpZy5jb25uZWN0aW9uLmRhdGFiYXNlID0gXCJ0ZW1wbGF0ZTFcIjtcbiAgICAgICAgICByZXR1cm4ga25leC5kZXN0cm95KCkudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGtuZXggPSByZXF1aXJlKFwia25leFwiKShjb25maWcpO1xuICAgICAgICAgICAgcmV0dXJuIGtuZXgucmF3KHNxbCk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4ga25leC5yYXcoc3FsKS50aGVuKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIGtuZXguZGVzdHJveSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICB9O1xufTtcbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
\No newline at end of file