@devbro/pashmak 0.1.41 → 0.1.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/console/migrate/MigrateCommand.mjs +4 -2
- package/dist/app/console/migrate/MigrateCommand.mjs.map +1 -1
- package/dist/bin/app/console/index.cjs +4 -2
- package/dist/bin/app/console/migrate/MigrateCommand.cjs +4 -2
- package/dist/bin/app/console/migrate/index.cjs +4 -2
- package/dist/bin/index.cjs +4 -2
- package/dist/bin/storage.cjs +24 -0
- package/dist/config.d.mts +1 -0
- package/dist/storage.d.mts +1 -0
- package/dist/storage.mjs +2 -0
- package/dist/storage.mjs.map +1 -0
- package/package.json +6 -1
|
@@ -22,9 +22,11 @@ class MigrateCommand extends Command {
|
|
|
22
22
|
const db = database();
|
|
23
23
|
const schema = db.getSchema();
|
|
24
24
|
if (this.fresh) {
|
|
25
|
-
|
|
25
|
+
await db.dropDatabase(config.get("databases.default.database"));
|
|
26
|
+
await db.createDatabase(config.get("databases.default.database"));
|
|
27
|
+
logger().info("database dropped and created fresh!");
|
|
26
28
|
}
|
|
27
|
-
if (this.refresh) {
|
|
29
|
+
if (this.refresh && await schema.tableExists("migrations")) {
|
|
28
30
|
logger().info("reverting all migrations!!");
|
|
29
31
|
const existing_migrations = await db.runQuery({
|
|
30
32
|
sql: "select * from migrations order by created_at DESC",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/app/console/migrate/MigrateCommand.mts"],"sourcesContent":["import { cli, db as database, logger } from \"../../../facades.mjs\";\nimport { Command, Option } from \"clipanion\";\nimport { Blueprint } from \"@devbro/neko-sql\";\nimport { context_provider } from \"@devbro/neko-context\";\nimport path from \"path\";\nimport fs from \"fs/promises\";\nimport { config } from \"@devbro/neko-config\";\nimport { Migration } from \"@devbro/neko-sql\";\n\nexport class MigrateCommand extends Command {\n static paths = [[`migrate`]];\n\n fresh = Option.Boolean(`--fresh`, false, {\n description: `whether to delete and recreate database`,\n });\n\n refresh = Option.Boolean(`--refresh`, false, {\n description: `whether to drop all tables before running migrations by using rollback function`,\n });\n\n async execute() {\n await context_provider.run(async () => {\n // this.context.stdout.write(`Hello Migrate Command!\\n`);\n const db = database();\n const schema = db.getSchema();\n\n if (this.fresh) {\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/app/console/migrate/MigrateCommand.mts"],"sourcesContent":["import { cli, db as database, logger } from \"../../../facades.mjs\";\nimport { Command, Option } from \"clipanion\";\nimport { Blueprint } from \"@devbro/neko-sql\";\nimport { context_provider } from \"@devbro/neko-context\";\nimport path from \"path\";\nimport fs from \"fs/promises\";\nimport { config } from \"@devbro/neko-config\";\nimport { Migration } from \"@devbro/neko-sql\";\n\nexport class MigrateCommand extends Command {\n static paths = [[`migrate`]];\n\n fresh = Option.Boolean(`--fresh`, false, {\n description: `whether to delete and recreate database`,\n });\n\n refresh = Option.Boolean(`--refresh`, false, {\n description: `whether to drop all tables before running migrations by using rollback function`,\n });\n\n async execute() {\n await context_provider.run(async () => {\n // this.context.stdout.write(`Hello Migrate Command!\\n`);\n const db = database();\n const schema = db.getSchema();\n\n if (this.fresh) {\n await db.dropDatabase(config.get(\"databases.default.database\"));\n await db.createDatabase(config.get(\"databases.default.database\"));\n logger().info(\"database dropped and created fresh!\");\n }\n\n if (this.refresh && (await schema.tableExists(\"migrations\"))) {\n logger().info(\"reverting all migrations!!\");\n // read all migrations and undo them all\n const existing_migrations = await db.runQuery({\n sql: \"select * from migrations order by created_at DESC\",\n parts: [],\n bindings: [],\n });\n\n const migrationsDir = config.get(\"migration.path\");\n\n for (const migration_record of existing_migrations) {\n logger().info(`rolling back ${migration_record.filename}`);\n try {\n const MigrationClass = (\n await import(path.join(migrationsDir, migration_record.filename))\n ).default;\n const migrationInstance: Migration = new MigrationClass();\n\n // Call the down method to rollback the migration\n await migrationInstance.down(db.getSchema());\n\n // Remove the migration record from the migrations table\n await db.runQuery({\n sql: \"delete from migrations where filename = $1\",\n parts: [],\n bindings: [migration_record.filename],\n });\n } catch (error) {\n logger().error(\n `Failed to rollback migration ${migration_record.filename}: ${error}`,\n );\n throw error;\n }\n }\n\n logger().info(\n `rolled back ${existing_migrations.length} migrations successfully!`,\n );\n }\n\n //create migration table if not exists\n if (!(await schema.tableExists(\"migrations\"))) {\n await schema.createTable(\"migrations\", (blueprint: Blueprint) => {\n blueprint.id();\n blueprint.timestamps();\n blueprint.string(\"filename\");\n blueprint.integer(\"batch\");\n });\n }\n\n const migrationsDir = config.get(\"migration.path\");\n let files: string[] = [];\n\n const dirEntries = await fs.readdir(migrationsDir);\n files = dirEntries\n .filter((entry) => entry.endsWith(\".ts\") || entry.endsWith(\".js\"))\n .sort();\n let batch_number = await db.runQuery({\n sql: \"select max(batch) as next_batch from migrations\",\n parts: [],\n bindings: [],\n });\n batch_number = batch_number[0].next_batch || 0;\n batch_number++;\n\n const migrations = await db.runQuery({\n sql: \"select * from migrations order by created_at ASC\",\n parts: [],\n bindings: [],\n });\n\n const completed_migrations = migrations.map((r: any) => r.filename);\n const pending_migrations = files.filter(\n (file) => !completed_migrations.includes(file),\n );\n\n let migrated_count = 0;\n for (const class_to_migrate of pending_migrations) {\n logger().info(`migrating up ${class_to_migrate}`);\n const ClassToMigrate = (\n await import(path.join(migrationsDir, class_to_migrate))\n ).default;\n const c: Migration = new ClassToMigrate();\n await c.up(db.getSchema());\n await db.runQuery({\n sql: \"insert into migrations (filename, batch) values ($1,$2)\",\n parts: [],\n bindings: [class_to_migrate, batch_number],\n });\n migrated_count++;\n }\n\n if (migrated_count === 0) {\n logger().warn(\"no migrations to run!\");\n return;\n }\n\n logger().info(`migrated ${migrated_count} migrations successfully!`);\n return;\n });\n }\n}\n\ncli().register(MigrateCommand);\n"],"mappings":"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","names":["migrationsDir"]}
|
|
@@ -1940,9 +1940,11 @@ var MigrateCommand = class extends import_clipanion2.Command {
|
|
|
1940
1940
|
const db2 = db();
|
|
1941
1941
|
const schema = db2.getSchema();
|
|
1942
1942
|
if (this.fresh) {
|
|
1943
|
-
|
|
1943
|
+
await db2.dropDatabase(import_neko_config3.config.get("databases.default.database"));
|
|
1944
|
+
await db2.createDatabase(import_neko_config3.config.get("databases.default.database"));
|
|
1945
|
+
logger().info("database dropped and created fresh!");
|
|
1944
1946
|
}
|
|
1945
|
-
if (this.refresh) {
|
|
1947
|
+
if (this.refresh && await schema.tableExists("migrations")) {
|
|
1946
1948
|
logger().info("reverting all migrations!!");
|
|
1947
1949
|
const existing_migrations = await db2.runQuery({
|
|
1948
1950
|
sql: "select * from migrations order by created_at DESC",
|
|
@@ -776,9 +776,11 @@ var MigrateCommand = class extends import_clipanion2.Command {
|
|
|
776
776
|
const db2 = db();
|
|
777
777
|
const schema = db2.getSchema();
|
|
778
778
|
if (this.fresh) {
|
|
779
|
-
|
|
779
|
+
await db2.dropDatabase(import_neko_config3.config.get("databases.default.database"));
|
|
780
|
+
await db2.createDatabase(import_neko_config3.config.get("databases.default.database"));
|
|
781
|
+
logger().info("database dropped and created fresh!");
|
|
780
782
|
}
|
|
781
|
-
if (this.refresh) {
|
|
783
|
+
if (this.refresh && await schema.tableExists("migrations")) {
|
|
782
784
|
logger().info("reverting all migrations!!");
|
|
783
785
|
const existing_migrations = await db2.runQuery({
|
|
784
786
|
sql: "select * from migrations order by created_at DESC",
|
|
@@ -1933,9 +1933,11 @@ var MigrateCommand = class extends import_clipanion2.Command {
|
|
|
1933
1933
|
const db2 = db();
|
|
1934
1934
|
const schema = db2.getSchema();
|
|
1935
1935
|
if (this.fresh) {
|
|
1936
|
-
|
|
1936
|
+
await db2.dropDatabase(import_neko_config3.config.get("databases.default.database"));
|
|
1937
|
+
await db2.createDatabase(import_neko_config3.config.get("databases.default.database"));
|
|
1938
|
+
logger().info("database dropped and created fresh!");
|
|
1937
1939
|
}
|
|
1938
|
-
if (this.refresh) {
|
|
1940
|
+
if (this.refresh && await schema.tableExists("migrations")) {
|
|
1939
1941
|
logger().info("reverting all migrations!!");
|
|
1940
1942
|
const existing_migrations = await db2.runQuery({
|
|
1941
1943
|
sql: "select * from migrations order by created_at DESC",
|
package/dist/bin/index.cjs
CHANGED
|
@@ -901,9 +901,11 @@ var init_MigrateCommand = __esm({
|
|
|
901
901
|
const db2 = db();
|
|
902
902
|
const schema = db2.getSchema();
|
|
903
903
|
if (this.fresh) {
|
|
904
|
-
|
|
904
|
+
await db2.dropDatabase(import_neko_config3.config.get("databases.default.database"));
|
|
905
|
+
await db2.createDatabase(import_neko_config3.config.get("databases.default.database"));
|
|
906
|
+
logger().info("database dropped and created fresh!");
|
|
905
907
|
}
|
|
906
|
-
if (this.refresh) {
|
|
908
|
+
if (this.refresh && await schema.tableExists("migrations")) {
|
|
907
909
|
logger().info("reverting all migrations!!");
|
|
908
910
|
const existing_migrations = await db2.runQuery({
|
|
909
911
|
sql: "select * from migrations order by created_at DESC",
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
|
|
17
|
+
// src/storage.mts
|
|
18
|
+
var storage_exports = {};
|
|
19
|
+
module.exports = __toCommonJS(storage_exports);
|
|
20
|
+
__reExport(storage_exports, require("@devbro/neko-storage"), module.exports);
|
|
21
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
22
|
+
0 && (module.exports = {
|
|
23
|
+
...require("@devbro/neko-storage")
|
|
24
|
+
});
|
package/dist/config.d.mts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@devbro/neko-storage';
|
package/dist/storage.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/storage.mts"],"sourcesContent":["export * from \"@devbro/neko-storage\";\n"],"mappings":"AAAA,cAAc;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devbro/pashmak",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.43",
|
|
4
4
|
"description": "testing application for the entire repo",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -97,6 +97,11 @@
|
|
|
97
97
|
"import": "./dist/middlewares.mjs",
|
|
98
98
|
"require": "./dist/middlewares.js"
|
|
99
99
|
},
|
|
100
|
+
"./storage": {
|
|
101
|
+
"types": "./dist/storage.d.ts",
|
|
102
|
+
"import": "./dist/storage.mjs",
|
|
103
|
+
"require": "./dist/storage.js"
|
|
104
|
+
},
|
|
100
105
|
"./package.json": "./package.json"
|
|
101
106
|
},
|
|
102
107
|
"scripts": {
|