@onroad/core 4.0.0-alpha.0 → 4.0.0-alpha.2
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/README.md +99 -1
- package/dist/OnRoadExpress.js +2 -2
- package/dist/OnRoadExpress.js.map +1 -1
- package/dist/database/SequelizeConnectionManager.d.ts +3 -0
- package/dist/database/SequelizeConnectionManager.d.ts.map +1 -1
- package/dist/database/SequelizeConnectionManager.js +13 -0
- package/dist/database/SequelizeConnectionManager.js.map +1 -1
- package/dist/database/index.d.ts +1 -0
- package/dist/database/index.d.ts.map +1 -1
- package/dist/database/index.js +1 -0
- package/dist/database/index.js.map +1 -1
- package/dist/database/migrations/MigrationRunner.d.ts +21 -0
- package/dist/database/migrations/MigrationRunner.d.ts.map +1 -0
- package/dist/database/migrations/MigrationRunner.js +54 -0
- package/dist/database/migrations/MigrationRunner.js.map +1 -0
- package/dist/database/migrations/index.d.ts +7 -0
- package/dist/database/migrations/index.d.ts.map +1 -0
- package/dist/database/migrations/index.js +2 -0
- package/dist/database/migrations/index.js.map +1 -0
- package/package.json +49 -24
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> TypeScript backend framework for multi-tenant Express APIs — DI Container, Filter Chain, EventBus, Provider Pattern.
|
|
4
4
|
|
|
5
|
-
**v4.0.0-alpha.
|
|
5
|
+
**v4.0.0-alpha.1** — Full TypeScript rewrite of the onRoad framework.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
- [Graceful Shutdown](#graceful-shutdown)
|
|
28
28
|
- [Testing](#testing)
|
|
29
29
|
- [Subpath Exports](#subpath-exports)
|
|
30
|
+
- [Known Pitfalls](#known-pitfalls)
|
|
30
31
|
|
|
31
32
|
---
|
|
32
33
|
|
|
@@ -665,6 +666,103 @@ import { StorageProvider } from "@onroad/core/storage" // Storag
|
|
|
665
666
|
|
|
666
667
|
---
|
|
667
668
|
|
|
669
|
+
## Known Pitfalls
|
|
670
|
+
|
|
671
|
+
### Controller base path must not be empty
|
|
672
|
+
|
|
673
|
+
Always pass `/` or a non-empty path to `@Controller()`. An empty string is falsy and previously caused the route guard to **silently drop all routes** of that controller.
|
|
674
|
+
|
|
675
|
+
```ts
|
|
676
|
+
// ❌ Wrong — all routes silently skipped
|
|
677
|
+
@Controller("")
|
|
678
|
+
class UserController extends AbstractController<UserService> { ... }
|
|
679
|
+
|
|
680
|
+
// ✅ Correct — root-level routes
|
|
681
|
+
@Controller("/")
|
|
682
|
+
class UserController extends AbstractController<UserService> { ... }
|
|
683
|
+
|
|
684
|
+
// ✅ Correct — prefixed routes
|
|
685
|
+
@Controller("/users")
|
|
686
|
+
class UserController extends AbstractController<UserService> { ... }
|
|
687
|
+
```
|
|
688
|
+
|
|
689
|
+
> Since **v4.0.0-alpha.1** the path guard was tightened (`basePath === undefined || basePath === null`) and paths are normalized (`//auth` → `/auth`), so `@Controller("/")` + route `"/auth"` resolves correctly to `/auth` instead of `//auth`.
|
|
690
|
+
|
|
691
|
+
---
|
|
692
|
+
|
|
693
|
+
### Circular service dependencies
|
|
694
|
+
|
|
695
|
+
When two services reference each other (e.g. `UserService ↔ CompanyService`), eager instantiation inside `configDependencies()` causes a `RangeError: Maximum call stack size exceeded` at startup because the constructors recurse infinitely.
|
|
696
|
+
|
|
697
|
+
```ts
|
|
698
|
+
// ❌ Wrong — infinite recursion on startup
|
|
699
|
+
@Service()
|
|
700
|
+
class UserService extends AbstractService<UserRepository> {
|
|
701
|
+
companySVC!: CompanyService
|
|
702
|
+
|
|
703
|
+
configDependencies() {
|
|
704
|
+
this.companySVC = new CompanyService() // → CompanyService() → new UserService() → ...
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
```
|
|
708
|
+
|
|
709
|
+
Fix: replace the eager field with a **lazy getter**. The getter body only runs on first access, never during construction, which breaks the cycle:
|
|
710
|
+
|
|
711
|
+
```ts
|
|
712
|
+
// ✅ Correct — lazy getter breaks the circular chain
|
|
713
|
+
@Service()
|
|
714
|
+
class UserService extends AbstractService<UserRepository> {
|
|
715
|
+
private _companySVC?: CompanyService
|
|
716
|
+
|
|
717
|
+
protected get companySVC(): CompanyService {
|
|
718
|
+
if (!this._companySVC) this._companySVC = new CompanyService()
|
|
719
|
+
return this._companySVC
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
@Service()
|
|
724
|
+
class CompanyService extends AbstractService<CompanyRepository> {
|
|
725
|
+
private _userSVC?: UserService
|
|
726
|
+
|
|
727
|
+
protected get userSVC(): UserService {
|
|
728
|
+
if (!this._userSVC) this._userSVC = new UserService()
|
|
729
|
+
return this._userSVC
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
```
|
|
733
|
+
|
|
734
|
+
> **Why it was masked before**: the `if (!basePath)` bug meant controllers (and therefore services) were never instantiated during `buildServer()`. The circular dep crash only surfaced after fixing the route guard.
|
|
735
|
+
|
|
736
|
+
---
|
|
737
|
+
|
|
738
|
+
### Overriding `fullAssociation` in Repositories
|
|
739
|
+
|
|
740
|
+
When using `@onroad/core`, the `@Repository` decorator automatically builds relations and injects the `fullAssociation` property populated with the appropriate Sequelize Models. Manually overriding this property in your repository class using raw ES classes will cause crashes during runtime (e.g., `TypeError: include.model.getTableName is not a function`) because Sequelize expects internal model objects, not raw classes.
|
|
741
|
+
|
|
742
|
+
```ts
|
|
743
|
+
// ❌ Wrong — overriding fullAssociation with raw ES classes crashes Sequelize
|
|
744
|
+
@Repository({ entity: User })
|
|
745
|
+
export class UserRepository extends BaseRepository<User> {
|
|
746
|
+
readonly fullAssociation = [{ model: FilterPref, as: "filters" }]
|
|
747
|
+
}
|
|
748
|
+
```
|
|
749
|
+
|
|
750
|
+
**Fix:** Remove the hardcoded override. If you are extending a custom `BaseRepository` and need TypeScript to recognize the property without emitting an overriding value in the compiled JavaScript, use the `declare` modifier:
|
|
751
|
+
|
|
752
|
+
```ts
|
|
753
|
+
// ✅ Correct — Let the decorator inject the value and use `declare` for typings
|
|
754
|
+
export abstract class BaseRepository<TEntity = unknown> extends SequelizeRepository<TEntity> {
|
|
755
|
+
declare readonly fullAssociation: any[] // Tells TS it exists without overriding it
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
@Repository({ entity: User })
|
|
759
|
+
export class UserRepository extends BaseRepository<User> {
|
|
760
|
+
// No fullAssociation override here!
|
|
761
|
+
}
|
|
762
|
+
```
|
|
763
|
+
|
|
764
|
+
---
|
|
765
|
+
|
|
668
766
|
## License
|
|
669
767
|
|
|
670
768
|
UNLICENSED — HashCodeTI-Brasil
|
package/dist/OnRoadExpress.js
CHANGED
|
@@ -167,13 +167,13 @@ export class OnRoadExpress {
|
|
|
167
167
|
const controllers = this.container.getByType("controller");
|
|
168
168
|
for (const meta of controllers) {
|
|
169
169
|
const basePath = this.container.getControllerPath(meta.target);
|
|
170
|
-
if (
|
|
170
|
+
if (basePath === undefined || basePath === null)
|
|
171
171
|
continue;
|
|
172
172
|
// Instantiate temporarily to read route config
|
|
173
173
|
const tempInstance = new meta.target();
|
|
174
174
|
const routes = tempInstance.getRoutes();
|
|
175
175
|
for (const [methodName, routeConfig] of Object.entries(routes)) {
|
|
176
|
-
const fullPath = basePath + (routeConfig.path ?? "");
|
|
176
|
+
const fullPath = ("/" + basePath + "/" + (routeConfig.path ?? "")).replace(/\/+/g, "/");
|
|
177
177
|
const httpMethod = routeConfig.method;
|
|
178
178
|
this.app[httpMethod](fullPath, (req, res, next) => {
|
|
179
179
|
const tenant = tenantResolver(req);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnRoadExpress.js","sourceRoot":"","sources":["../src/OnRoadExpress.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OnRoadExpress.js","sourceRoot":"","sources":["../src/OnRoadExpress.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { ConnectionManager, type DatabaseConfig } from "./ConnectionManager.js";
|
|
2
|
+
import { MigrationRunner, type MigrationConfig } from "./migrations/MigrationRunner.js";
|
|
2
3
|
export interface SequelizeConfig extends DatabaseConfig {
|
|
3
4
|
dialect: "postgres" | "mysql" | "sqlite" | "mariadb" | "mssql";
|
|
5
|
+
migrations?: MigrationConfig;
|
|
4
6
|
}
|
|
5
7
|
export declare class SequelizeConnectionManager extends ConnectionManager<unknown> {
|
|
6
8
|
protected config: SequelizeConfig;
|
|
@@ -9,5 +11,6 @@ export declare class SequelizeConnectionManager extends ConnectionManager<unknow
|
|
|
9
11
|
closeAll(): Promise<void>;
|
|
10
12
|
isHealthy(tenant: string): Promise<boolean>;
|
|
11
13
|
get engine(): string;
|
|
14
|
+
getMigrationRunner(tenant: string, dataSource?: string): Promise<MigrationRunner>;
|
|
12
15
|
}
|
|
13
16
|
//# sourceMappingURL=SequelizeConnectionManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SequelizeConnectionManager.d.ts","sourceRoot":"","sources":["../../src/database/SequelizeConnectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"SequelizeConnectionManager.d.ts","sourceRoot":"","sources":["../../src/database/SequelizeConnectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEvF,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,OAAO,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAA;IAC9D,UAAU,CAAC,EAAE,eAAe,CAAA;CAC7B;AAED,qBAAa,0BAA2B,SAAQ,iBAAiB,CAAC,OAAO,CAAC;IACxE,UAAmB,MAAM,EAAE,eAAe,CAAA;gBAE9B,MAAM,EAAE,eAAe;IAK7B,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmCpE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IASzB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAcjD,IAAa,MAAM,IAAI,MAAM,CAE5B;IAEK,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAQxF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ConnectionManager } from "./ConnectionManager.js";
|
|
2
|
+
import { MigrationRunner } from "./migrations/MigrationRunner.js";
|
|
2
3
|
export class SequelizeConnectionManager extends ConnectionManager {
|
|
3
4
|
config;
|
|
4
5
|
constructor(config) {
|
|
@@ -26,6 +27,10 @@ export class SequelizeConnectionManager extends ConnectionManager {
|
|
|
26
27
|
: undefined,
|
|
27
28
|
logging: false,
|
|
28
29
|
});
|
|
30
|
+
if (this.config.migrations?.runOnConnect) {
|
|
31
|
+
const runner = new MigrationRunner(connection, this.config.migrations);
|
|
32
|
+
await runner.up();
|
|
33
|
+
}
|
|
29
34
|
this.connections.set(key, connection);
|
|
30
35
|
return connection;
|
|
31
36
|
}
|
|
@@ -54,5 +59,13 @@ export class SequelizeConnectionManager extends ConnectionManager {
|
|
|
54
59
|
get engine() {
|
|
55
60
|
return "sequelize";
|
|
56
61
|
}
|
|
62
|
+
async getMigrationRunner(tenant, dataSource) {
|
|
63
|
+
if (!this.config.migrations) {
|
|
64
|
+
throw new Error("[TypeRoad] Migration configuration is missing in SequelizeConnectionManager");
|
|
65
|
+
}
|
|
66
|
+
const connection = await this.getConnection(tenant, dataSource);
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
68
|
+
return new MigrationRunner(connection, this.config.migrations);
|
|
69
|
+
}
|
|
57
70
|
}
|
|
58
71
|
//# sourceMappingURL=SequelizeConnectionManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SequelizeConnectionManager.js","sourceRoot":"","sources":["../../src/database/SequelizeConnectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAuB,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"SequelizeConnectionManager.js","sourceRoot":"","sources":["../../src/database/SequelizeConnectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAuB,MAAM,wBAAwB,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAwB,MAAM,iCAAiC,CAAA;AAOvF,MAAM,OAAO,0BAA2B,SAAQ,iBAA0B;IACrD,MAAM,CAAiB;IAE1C,YAAY,MAAuB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAA;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,UAAmB;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QAE7C,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;QACnC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QAC3D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAA;QAE/C,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAS,EAAE;YACjF,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACpB,CAAC,CAAC;oBACE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE;oBAC/B,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBAC9B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK;oBAC1C,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK;iBACrC;gBACH,CAAC,CAAC,SAAS;YACb,OAAO,EAAE,KAAK;SACf,CAAC,CAAA;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,UAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAC7E,MAAM,MAAM,CAAC,EAAE,EAAE,CAAA;QACnB,CAAC;QAGD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QACrC,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;YACxE,8DAA8D;YAC9D,MAAO,IAAY,CAAC,KAAK,EAAE,CAAA;YAC3B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;QACF,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAA;QAEvB,IAAI,CAAC;YACH,8DAA8D;YAC9D,MAAO,IAAY,CAAC,YAAY,EAAE,CAAA;YAClC,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,IAAa,MAAM;QACjB,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAc,EAAE,UAAmB;QAC1D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAA;QAChG,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QAC/D,8DAA8D;QAC9D,OAAO,IAAI,eAAe,CAAC,UAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACvE,CAAC;CACF"}
|
package/dist/database/index.d.ts
CHANGED
|
@@ -3,4 +3,5 @@ export type { DatabaseConfig } from "./ConnectionManager.js";
|
|
|
3
3
|
export { SequelizeConnectionManager } from "./SequelizeConnectionManager.js";
|
|
4
4
|
export type { SequelizeConfig } from "./SequelizeConnectionManager.js";
|
|
5
5
|
export { MongoConnectionManager } from "./MongoConnectionManager.js";
|
|
6
|
+
export * from "./migrations/index.js";
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,YAAY,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,YAAY,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEpE,cAAc,uBAAuB,CAAA"}
|
package/dist/database/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { ConnectionManager } from "./ConnectionManager.js";
|
|
2
2
|
export { SequelizeConnectionManager } from "./SequelizeConnectionManager.js";
|
|
3
3
|
export { MongoConnectionManager } from "./MongoConnectionManager.js";
|
|
4
|
+
export * from "./migrations/index.js";
|
|
4
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAG5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAG5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEpE,cAAc,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Sequelize } from "sequelize";
|
|
2
|
+
export interface MigrationConfig {
|
|
3
|
+
path: string;
|
|
4
|
+
tableName?: string;
|
|
5
|
+
runOnConnect?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface MigrationStatus {
|
|
8
|
+
name: string;
|
|
9
|
+
path?: string;
|
|
10
|
+
isApplied: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare class MigrationRunner {
|
|
13
|
+
private readonly connection;
|
|
14
|
+
private readonly config;
|
|
15
|
+
private umzug;
|
|
16
|
+
constructor(connection: Sequelize, config: MigrationConfig);
|
|
17
|
+
up(steps?: number): Promise<string[]>;
|
|
18
|
+
down(steps?: number): Promise<string[]>;
|
|
19
|
+
status(): Promise<MigrationStatus[]>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=MigrationRunner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationRunner.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/MigrationRunner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,WAAW,CAAA;AAE1D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,qBAAa,eAAe;IAIxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,OAAO,CAAC,KAAK,CAAuB;gBAGjB,UAAU,EAAE,SAAS,EACrB,MAAM,EAAE,eAAe;IA4BpC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKrC,IAAI,CAAC,KAAK,SAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMlC,MAAM,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;CAW3C"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Umzug, SequelizeStorage } from "umzug";
|
|
2
|
+
export class MigrationRunner {
|
|
3
|
+
connection;
|
|
4
|
+
config;
|
|
5
|
+
umzug;
|
|
6
|
+
constructor(connection, config) {
|
|
7
|
+
this.connection = connection;
|
|
8
|
+
this.config = config;
|
|
9
|
+
this.umzug = new Umzug({
|
|
10
|
+
migrations: {
|
|
11
|
+
glob: [`${this.config.path}/*.{ts,js}`, { cwd: process.cwd() }],
|
|
12
|
+
resolve: ({ name, path, context }) => {
|
|
13
|
+
return {
|
|
14
|
+
name,
|
|
15
|
+
up: async () => {
|
|
16
|
+
const migration = await import(path);
|
|
17
|
+
await migration.default.up(context, this.connection);
|
|
18
|
+
},
|
|
19
|
+
down: async () => {
|
|
20
|
+
const migration = await import(path);
|
|
21
|
+
await migration.default.down(context, this.connection);
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
context: this.connection.getQueryInterface(),
|
|
27
|
+
storage: new SequelizeStorage({
|
|
28
|
+
sequelize: this.connection,
|
|
29
|
+
tableName: this.config.tableName ?? "__typeroad_migrations",
|
|
30
|
+
}),
|
|
31
|
+
logger: console, // Default logger
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
async up(steps) {
|
|
35
|
+
const executed = steps ? await this.umzug.up({ step: steps }) : await this.umzug.up();
|
|
36
|
+
return executed.map((m) => m.name);
|
|
37
|
+
}
|
|
38
|
+
async down(steps = 1) {
|
|
39
|
+
if (steps <= 0)
|
|
40
|
+
return [];
|
|
41
|
+
const reverted = await this.umzug.down({ step: steps });
|
|
42
|
+
return reverted.map((m) => m.name);
|
|
43
|
+
}
|
|
44
|
+
async status() {
|
|
45
|
+
const pending = await this.umzug.pending();
|
|
46
|
+
const executed = await this.umzug.executed();
|
|
47
|
+
const allMigrations = [
|
|
48
|
+
...executed.map((m) => ({ name: m.name, path: m.path, isApplied: true })),
|
|
49
|
+
...pending.map((m) => ({ name: m.name, path: m.path, isApplied: false })),
|
|
50
|
+
];
|
|
51
|
+
return allMigrations.sort((a, b) => a.name.localeCompare(b.name));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=MigrationRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationRunner.js","sourceRoot":"","sources":["../../../src/database/migrations/MigrationRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAe/C,MAAM,OAAO,eAAe;IAIP;IACA;IAJX,KAAK,CAAuB;IAEpC,YACmB,UAAqB,EACrB,MAAuB;QADvB,eAAU,GAAV,UAAU,CAAW;QACrB,WAAM,GAAN,MAAM,CAAiB;QAExC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC;YACrB,UAAU,EAAE;gBACV,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,YAAY,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC/D,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;oBACnC,OAAO;wBACL,IAAI;wBACJ,EAAE,EAAE,KAAK,IAAI,EAAE;4BACb,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAK,CAAC,CAAA;4BACrC,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;wBACtD,CAAC;wBACD,IAAI,EAAE,KAAK,IAAI,EAAE;4BACf,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAK,CAAC,CAAA;4BACrC,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;wBACxD,CAAC;qBACF,CAAA;gBACH,CAAC;aACF;YACD,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE;YAC5C,OAAO,EAAE,IAAI,gBAAgB,CAAC;gBAC5B,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,uBAAuB;aAC5D,CAAC;YACF,MAAM,EAAE,OAAO,EAAE,iBAAiB;SACnC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,EAAE,CAAC,KAAc;QACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAA;QACrF,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC;QAClB,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,EAAE,CAAA;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACvD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;QAE5C,MAAM,aAAa,GAAG;YACpB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;SAC1E,CAAA;QAED,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IACnE,CAAC;CACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { QueryInterface, Sequelize } from "sequelize";
|
|
2
|
+
export interface Migration {
|
|
3
|
+
up: (queryInterface: QueryInterface, sequelize: Sequelize) => Promise<void>;
|
|
4
|
+
down: (queryInterface: QueryInterface, sequelize: Sequelize) => Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
export * from "./MigrationRunner.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAE1D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3E,IAAI,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9E;AAED,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/database/migrations/index.ts"],"names":[],"mappings":"AAOA,cAAc,sBAAsB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onroad/core",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.2",
|
|
4
4
|
"description": "TypeScript backend framework — DI Container, Filter Chain, EventBus, Provider Pattern",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -57,6 +57,10 @@
|
|
|
57
57
|
"./storage": {
|
|
58
58
|
"import": "./dist/storage/index.js",
|
|
59
59
|
"types": "./dist/storage/index.d.ts"
|
|
60
|
+
},
|
|
61
|
+
"./migrations": {
|
|
62
|
+
"import": "./dist/database/migrations/index.js",
|
|
63
|
+
"types": "./dist/database/migrations/index.d.ts"
|
|
60
64
|
}
|
|
61
65
|
},
|
|
62
66
|
"files": [
|
|
@@ -92,43 +96,64 @@
|
|
|
92
96
|
"express": "^4.21.0",
|
|
93
97
|
"pino": "^9.6.0",
|
|
94
98
|
"reflect-metadata": "^0.2.2",
|
|
99
|
+
"umzug": "^3.8.2",
|
|
95
100
|
"uuid": "^11.1.0"
|
|
96
101
|
},
|
|
97
102
|
"peerDependencies": {
|
|
98
|
-
"
|
|
103
|
+
"@google-cloud/storage": "^7.0.0",
|
|
104
|
+
"@google-cloud/tasks": "^5.0.0",
|
|
105
|
+
"amqplib": "^0.10.0",
|
|
106
|
+
"axios": "^1.7.0",
|
|
107
|
+
"firebase-admin": "^13.0.0",
|
|
99
108
|
"mongoose": "^8.4.0",
|
|
100
109
|
"pg": "^8.13.0",
|
|
101
110
|
"pg-hstore": "^2.3.4",
|
|
102
|
-
"
|
|
103
|
-
"amqplib": "^0.10.0",
|
|
104
|
-
"@google-cloud/tasks": "^5.0.0",
|
|
105
|
-
"@google-cloud/storage": "^7.0.0",
|
|
106
|
-
"axios": "^1.7.0",
|
|
111
|
+
"sequelize": "^6.37.0",
|
|
107
112
|
"socket.io": "^4.8.0"
|
|
108
113
|
},
|
|
109
114
|
"peerDependenciesMeta": {
|
|
110
|
-
"sequelize": {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
"
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
"
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
"
|
|
115
|
+
"sequelize": {
|
|
116
|
+
"optional": true
|
|
117
|
+
},
|
|
118
|
+
"mongoose": {
|
|
119
|
+
"optional": true
|
|
120
|
+
},
|
|
121
|
+
"pg": {
|
|
122
|
+
"optional": true
|
|
123
|
+
},
|
|
124
|
+
"pg-hstore": {
|
|
125
|
+
"optional": true
|
|
126
|
+
},
|
|
127
|
+
"firebase-admin": {
|
|
128
|
+
"optional": true
|
|
129
|
+
},
|
|
130
|
+
"amqplib": {
|
|
131
|
+
"optional": true
|
|
132
|
+
},
|
|
133
|
+
"@google-cloud/tasks": {
|
|
134
|
+
"optional": true
|
|
135
|
+
},
|
|
136
|
+
"@google-cloud/storage": {
|
|
137
|
+
"optional": true
|
|
138
|
+
},
|
|
139
|
+
"axios": {
|
|
140
|
+
"optional": true
|
|
141
|
+
},
|
|
142
|
+
"socket.io": {
|
|
143
|
+
"optional": true
|
|
144
|
+
}
|
|
120
145
|
},
|
|
121
146
|
"devDependencies": {
|
|
122
|
-
"
|
|
123
|
-
"vitest": "^3.1.0",
|
|
124
|
-
"@vitest/coverage-v8": "^3.1.0",
|
|
125
|
-
"tsx": "^4.19.0",
|
|
147
|
+
"@types/amqplib": "^0.10.0",
|
|
126
148
|
"@types/express": "^5.0.0",
|
|
127
149
|
"@types/node": "^22.0.0",
|
|
128
150
|
"@types/uuid": "^10.0.0",
|
|
129
|
-
"@types/amqplib": "^0.10.0",
|
|
130
|
-
"eslint": "^9.0.0",
|
|
131
151
|
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
132
|
-
"@typescript-eslint/parser": "^8.0.0"
|
|
152
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
153
|
+
"@vitest/coverage-v8": "^3.1.0",
|
|
154
|
+
"eslint": "^9.0.0",
|
|
155
|
+
"tsx": "^4.19.0",
|
|
156
|
+
"typescript": "^5.7.0",
|
|
157
|
+
"vitest": "^3.1.0"
|
|
133
158
|
}
|
|
134
159
|
}
|