velocious 1.0.107 → 1.0.109
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 +5 -5
- package/dist/bin/velocious.d.ts +3 -0
- package/dist/bin/velocious.d.ts.map +1 -0
- package/dist/bin/velocious.js +27 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -0
- package/dist/src/application.d.ts +67 -0
- package/dist/src/application.d.ts.map +1 -0
- package/dist/src/application.js +101 -0
- package/dist/src/cli/base-command.d.ts +32 -0
- package/dist/src/cli/base-command.d.ts.map +1 -0
- package/dist/src/cli/base-command.js +34 -0
- package/dist/src/cli/browser-cli.d.ts +22 -0
- package/dist/src/cli/browser-cli.d.ts.map +1 -0
- package/dist/src/cli/browser-cli.js +32 -0
- package/dist/src/cli/commands/db/create.d.ts +9 -0
- package/dist/src/cli/commands/db/create.d.ts.map +1 -0
- package/dist/src/cli/commands/db/create.js +62 -0
- package/dist/src/cli/commands/db/drop.d.ts +5 -0
- package/dist/src/cli/commands/db/drop.d.ts.map +1 -0
- package/dist/src/cli/commands/db/drop.js +14 -0
- package/dist/src/cli/commands/db/migrate.d.ts +5 -0
- package/dist/src/cli/commands/db/migrate.d.ts.map +1 -0
- package/dist/src/cli/commands/db/migrate.js +14 -0
- package/dist/src/cli/commands/db/reset.d.ts +5 -0
- package/dist/src/cli/commands/db/reset.d.ts.map +1 -0
- package/dist/src/cli/commands/db/reset.js +18 -0
- package/dist/src/cli/commands/db/rollback.d.ts +5 -0
- package/dist/src/cli/commands/db/rollback.d.ts.map +1 -0
- package/dist/src/cli/commands/db/rollback.js +13 -0
- package/dist/src/cli/commands/destroy/migration.d.ts +5 -0
- package/dist/src/cli/commands/destroy/migration.d.ts.map +1 -0
- package/dist/src/cli/commands/destroy/migration.js +6 -0
- package/dist/src/cli/commands/generate/base-models.d.ts +5 -0
- package/dist/src/cli/commands/generate/base-models.d.ts.map +1 -0
- package/dist/src/cli/commands/generate/base-models.js +6 -0
- package/dist/src/cli/commands/generate/migration.d.ts +5 -0
- package/dist/src/cli/commands/generate/migration.d.ts.map +1 -0
- package/dist/src/cli/commands/generate/migration.js +6 -0
- package/dist/src/cli/commands/generate/model.d.ts +5 -0
- package/dist/src/cli/commands/generate/model.d.ts.map +1 -0
- package/dist/src/cli/commands/generate/model.js +6 -0
- package/dist/src/cli/commands/init.d.ts +6 -0
- package/dist/src/cli/commands/init.d.ts.map +1 -0
- package/dist/src/cli/commands/init.js +8 -0
- package/dist/src/cli/commands/server.d.ts +5 -0
- package/dist/src/cli/commands/server.d.ts.map +1 -0
- package/dist/src/cli/commands/server.js +6 -0
- package/dist/src/cli/commands/test.d.ts +5 -0
- package/dist/src/cli/commands/test.d.ts.map +1 -0
- package/dist/src/cli/commands/test.js +6 -0
- package/dist/src/cli/index.d.ts +12 -0
- package/dist/src/cli/index.d.ts.map +1 -0
- package/dist/src/cli/index.js +34 -0
- package/dist/src/cli/use-browser-cli.d.ts +10 -0
- package/dist/src/cli/use-browser-cli.d.ts.map +1 -0
- package/dist/src/cli/use-browser-cli.js +21 -0
- package/dist/src/configuration-resolver.d.ts +7 -0
- package/dist/src/configuration-resolver.d.ts.map +1 -0
- package/dist/src/configuration-resolver.js +55 -0
- package/dist/src/configuration-types.d.ts +112 -0
- package/dist/src/configuration-types.d.ts.map +1 -0
- package/dist/src/configuration-types.js +54 -0
- package/dist/src/configuration.d.ts +193 -0
- package/dist/src/configuration.d.ts.map +1 -0
- package/dist/src/configuration.js +335 -0
- package/dist/src/controller.d.ts +73 -0
- package/dist/src/controller.d.ts.map +1 -0
- package/dist/src/controller.js +141 -0
- package/dist/src/database/drivers/base-column.d.ts +72 -0
- package/dist/src/database/drivers/base-column.d.ts.map +1 -0
- package/dist/src/database/drivers/base-column.js +120 -0
- package/dist/src/database/drivers/base-columns-index.d.ts +44 -0
- package/dist/src/database/drivers/base-columns-index.d.ts.map +1 -0
- package/dist/src/database/drivers/base-columns-index.js +62 -0
- package/dist/src/database/drivers/base-foreign-key.d.ts +52 -0
- package/dist/src/database/drivers/base-foreign-key.d.ts.map +1 -0
- package/dist/src/database/drivers/base-foreign-key.js +79 -0
- package/dist/src/database/drivers/base-table.d.ts +54 -0
- package/dist/src/database/drivers/base-table.d.ts.map +1 -0
- package/dist/src/database/drivers/base-table.js +106 -0
- package/dist/src/database/drivers/base.d.ts +365 -0
- package/dist/src/database/drivers/base.d.ts.map +1 -0
- package/dist/src/database/drivers/base.js +654 -0
- package/dist/src/database/drivers/mssql/column.d.ts +13 -0
- package/dist/src/database/drivers/mssql/column.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/column.js +61 -0
- package/dist/src/database/drivers/mssql/columns-index.d.ts +4 -0
- package/dist/src/database/drivers/mssql/columns-index.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/columns-index.js +4 -0
- package/dist/src/database/drivers/mssql/connect-connection.d.ts +2 -0
- package/dist/src/database/drivers/mssql/connect-connection.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/connect-connection.js +13 -0
- package/dist/src/database/drivers/mssql/foreign-key.d.ts +9 -0
- package/dist/src/database/drivers/mssql/foreign-key.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/foreign-key.js +10 -0
- package/dist/src/database/drivers/mssql/index.d.ts +33 -0
- package/dist/src/database/drivers/mssql/index.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/index.js +304 -0
- package/dist/src/database/drivers/mssql/options.d.ts +11 -0
- package/dist/src/database/drivers/mssql/options.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/options.js +65 -0
- package/dist/src/database/drivers/mssql/query-parser.d.ts +4 -0
- package/dist/src/database/drivers/mssql/query-parser.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/query-parser.js +4 -0
- package/dist/src/database/drivers/mssql/sql/alter-table.d.ts +4 -0
- package/dist/src/database/drivers/mssql/sql/alter-table.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/sql/alter-table.js +3 -0
- package/dist/src/database/drivers/mssql/sql/create-database.d.ts +4 -0
- package/dist/src/database/drivers/mssql/sql/create-database.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/sql/create-database.js +27 -0
- package/dist/src/database/drivers/mssql/sql/create-index.d.ts +4 -0
- package/dist/src/database/drivers/mssql/sql/create-index.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/sql/create-index.js +3 -0
- package/dist/src/database/drivers/mssql/sql/create-table.d.ts +4 -0
- package/dist/src/database/drivers/mssql/sql/create-table.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/sql/create-table.js +3 -0
- package/dist/src/database/drivers/mssql/sql/delete.d.ts +5 -0
- package/dist/src/database/drivers/mssql/sql/delete.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/sql/delete.js +16 -0
- package/dist/src/database/drivers/mssql/sql/drop-table.d.ts +4 -0
- package/dist/src/database/drivers/mssql/sql/drop-table.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/sql/drop-table.js +3 -0
- package/dist/src/database/drivers/mssql/sql/insert.d.ts +4 -0
- package/dist/src/database/drivers/mssql/sql/insert.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/sql/insert.js +3 -0
- package/dist/src/database/drivers/mssql/sql/update.d.ts +5 -0
- package/dist/src/database/drivers/mssql/sql/update.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/sql/update.js +26 -0
- package/dist/src/database/drivers/mssql/table.d.ts +15 -0
- package/dist/src/database/drivers/mssql/table.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/table.js +116 -0
- package/dist/src/database/drivers/mysql/column.d.ts +13 -0
- package/dist/src/database/drivers/mysql/column.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/column.js +87 -0
- package/dist/src/database/drivers/mysql/columns-index.d.ts +4 -0
- package/dist/src/database/drivers/mysql/columns-index.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/columns-index.js +4 -0
- package/dist/src/database/drivers/mysql/foreign-key.d.ts +9 -0
- package/dist/src/database/drivers/mysql/foreign-key.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/foreign-key.js +10 -0
- package/dist/src/database/drivers/mysql/index.d.ts +30 -0
- package/dist/src/database/drivers/mysql/index.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/index.js +234 -0
- package/dist/src/database/drivers/mysql/options.d.ts +11 -0
- package/dist/src/database/drivers/mysql/options.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/options.js +27 -0
- package/dist/src/database/drivers/mysql/query-parser.d.ts +4 -0
- package/dist/src/database/drivers/mysql/query-parser.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/query-parser.js +4 -0
- package/dist/src/database/drivers/mysql/query.d.ts +6 -0
- package/dist/src/database/drivers/mysql/query.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/query.js +27 -0
- package/dist/src/database/drivers/mysql/sql/alter-table.d.ts +4 -0
- package/dist/src/database/drivers/mysql/sql/alter-table.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/sql/alter-table.js +4 -0
- package/dist/src/database/drivers/mysql/sql/create-database.d.ts +4 -0
- package/dist/src/database/drivers/mysql/sql/create-database.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/sql/create-database.js +4 -0
- package/dist/src/database/drivers/mysql/sql/create-index.d.ts +4 -0
- package/dist/src/database/drivers/mysql/sql/create-index.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/sql/create-index.js +4 -0
- package/dist/src/database/drivers/mysql/sql/create-table.d.ts +4 -0
- package/dist/src/database/drivers/mysql/sql/create-table.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/sql/create-table.js +4 -0
- package/dist/src/database/drivers/mysql/sql/delete.d.ts +5 -0
- package/dist/src/database/drivers/mysql/sql/delete.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/sql/delete.js +17 -0
- package/dist/src/database/drivers/mysql/sql/drop-table.d.ts +4 -0
- package/dist/src/database/drivers/mysql/sql/drop-table.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/sql/drop-table.js +4 -0
- package/dist/src/database/drivers/mysql/sql/insert.d.ts +4 -0
- package/dist/src/database/drivers/mysql/sql/insert.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/sql/insert.js +4 -0
- package/dist/src/database/drivers/mysql/sql/update.d.ts +5 -0
- package/dist/src/database/drivers/mysql/sql/update.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/sql/update.js +27 -0
- package/dist/src/database/drivers/mysql/table.d.ts +15 -0
- package/dist/src/database/drivers/mysql/table.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/table.js +80 -0
- package/dist/src/database/drivers/pgsql/column.d.ts +13 -0
- package/dist/src/database/drivers/pgsql/column.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/column.js +66 -0
- package/dist/src/database/drivers/pgsql/columns-index.d.ts +4 -0
- package/dist/src/database/drivers/pgsql/columns-index.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/columns-index.js +4 -0
- package/dist/src/database/drivers/pgsql/foreign-key.d.ts +9 -0
- package/dist/src/database/drivers/pgsql/foreign-key.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/foreign-key.js +10 -0
- package/dist/src/database/drivers/pgsql/index.d.ts +21 -0
- package/dist/src/database/drivers/pgsql/index.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/index.js +211 -0
- package/dist/src/database/drivers/pgsql/options.d.ts +13 -0
- package/dist/src/database/drivers/pgsql/options.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/options.js +26 -0
- package/dist/src/database/drivers/pgsql/query-parser.d.ts +4 -0
- package/dist/src/database/drivers/pgsql/query-parser.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/query-parser.js +4 -0
- package/dist/src/database/drivers/pgsql/sql/alter-table.d.ts +4 -0
- package/dist/src/database/drivers/pgsql/sql/alter-table.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/sql/alter-table.js +4 -0
- package/dist/src/database/drivers/pgsql/sql/create-database.d.ts +4 -0
- package/dist/src/database/drivers/pgsql/sql/create-database.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/sql/create-database.js +33 -0
- package/dist/src/database/drivers/pgsql/sql/create-index.d.ts +4 -0
- package/dist/src/database/drivers/pgsql/sql/create-index.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/sql/create-index.js +4 -0
- package/dist/src/database/drivers/pgsql/sql/create-table.d.ts +4 -0
- package/dist/src/database/drivers/pgsql/sql/create-table.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/sql/create-table.js +4 -0
- package/dist/src/database/drivers/pgsql/sql/delete.d.ts +5 -0
- package/dist/src/database/drivers/pgsql/sql/delete.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/sql/delete.js +17 -0
- package/dist/src/database/drivers/pgsql/sql/drop-table.d.ts +4 -0
- package/dist/src/database/drivers/pgsql/sql/drop-table.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/sql/drop-table.js +4 -0
- package/dist/src/database/drivers/pgsql/sql/insert.d.ts +4 -0
- package/dist/src/database/drivers/pgsql/sql/insert.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/sql/insert.js +4 -0
- package/dist/src/database/drivers/pgsql/sql/update.d.ts +5 -0
- package/dist/src/database/drivers/pgsql/sql/update.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/sql/update.js +27 -0
- package/dist/src/database/drivers/pgsql/table.d.ts +15 -0
- package/dist/src/database/drivers/pgsql/table.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/table.js +105 -0
- package/dist/src/database/drivers/sqlite/base.d.ts +41 -0
- package/dist/src/database/drivers/sqlite/base.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/base.js +253 -0
- package/dist/src/database/drivers/sqlite/column.d.ts +19 -0
- package/dist/src/database/drivers/sqlite/column.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/column.js +55 -0
- package/dist/src/database/drivers/sqlite/columns-index.d.ts +6 -0
- package/dist/src/database/drivers/sqlite/columns-index.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/columns-index.js +24 -0
- package/dist/src/database/drivers/sqlite/connection-remote.d.ts +9 -0
- package/dist/src/database/drivers/sqlite/connection-remote.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/connection-remote.js +11 -0
- package/dist/src/database/drivers/sqlite/connection-sql-js.d.ts +19 -0
- package/dist/src/database/drivers/sqlite/connection-sql-js.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/connection-sql-js.js +38 -0
- package/dist/src/database/drivers/sqlite/foreign-key.d.ts +17 -0
- package/dist/src/database/drivers/sqlite/foreign-key.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/foreign-key.js +19 -0
- package/dist/src/database/drivers/sqlite/index.d.ts +8 -0
- package/dist/src/database/drivers/sqlite/index.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/index.js +42 -0
- package/dist/src/database/drivers/sqlite/index.native.d.ts +9 -0
- package/dist/src/database/drivers/sqlite/index.native.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/index.native.js +57 -0
- package/dist/src/database/drivers/sqlite/index.web.d.ts +14 -0
- package/dist/src/database/drivers/sqlite/index.web.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/index.web.js +50 -0
- package/dist/src/database/drivers/sqlite/options.d.ts +13 -0
- package/dist/src/database/drivers/sqlite/options.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/options.js +26 -0
- package/dist/src/database/drivers/sqlite/query-parser.d.ts +4 -0
- package/dist/src/database/drivers/sqlite/query-parser.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/query-parser.js +4 -0
- package/dist/src/database/drivers/sqlite/query.d.ts +7 -0
- package/dist/src/database/drivers/sqlite/query.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/query.js +28 -0
- package/dist/src/database/drivers/sqlite/query.native.d.ts +2 -0
- package/dist/src/database/drivers/sqlite/query.native.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/query.native.js +20 -0
- package/dist/src/database/drivers/sqlite/query.web.d.ts +7 -0
- package/dist/src/database/drivers/sqlite/query.web.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/query.web.js +38 -0
- package/dist/src/database/drivers/sqlite/sql/alter-table.d.ts +6 -0
- package/dist/src/database/drivers/sqlite/sql/alter-table.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/sql/alter-table.js +122 -0
- package/dist/src/database/drivers/sqlite/sql/create-index.d.ts +4 -0
- package/dist/src/database/drivers/sqlite/sql/create-index.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/sql/create-index.js +4 -0
- package/dist/src/database/drivers/sqlite/sql/create-table.d.ts +4 -0
- package/dist/src/database/drivers/sqlite/sql/create-table.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/sql/create-table.js +4 -0
- package/dist/src/database/drivers/sqlite/sql/delete.d.ts +5 -0
- package/dist/src/database/drivers/sqlite/sql/delete.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/sql/delete.js +20 -0
- package/dist/src/database/drivers/sqlite/sql/drop-table.d.ts +4 -0
- package/dist/src/database/drivers/sqlite/sql/drop-table.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/sql/drop-table.js +4 -0
- package/dist/src/database/drivers/sqlite/sql/insert.d.ts +4 -0
- package/dist/src/database/drivers/sqlite/sql/insert.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/sql/insert.js +4 -0
- package/dist/src/database/drivers/sqlite/sql/update.d.ts +5 -0
- package/dist/src/database/drivers/sqlite/sql/update.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/sql/update.js +27 -0
- package/dist/src/database/drivers/sqlite/table.d.ts +21 -0
- package/dist/src/database/drivers/sqlite/table.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/table.js +76 -0
- package/dist/src/database/handler.d.ts +7 -0
- package/dist/src/database/handler.d.ts.map +1 -0
- package/dist/src/database/handler.js +10 -0
- package/dist/src/database/initializer-from-require-context.d.ts +26 -0
- package/dist/src/database/initializer-from-require-context.d.ts.map +1 -0
- package/dist/src/database/initializer-from-require-context.js +40 -0
- package/dist/src/database/migration/index.d.ts +152 -0
- package/dist/src/database/migration/index.d.ts.map +1 -0
- package/dist/src/database/migration/index.js +286 -0
- package/dist/src/database/migrator/files-finder.d.ts +15 -0
- package/dist/src/database/migrator/files-finder.d.ts.map +1 -0
- package/dist/src/database/migrator/files-finder.js +40 -0
- package/dist/src/database/migrator/types.d.ts +17 -0
- package/dist/src/database/migrator/types.d.ts.map +1 -0
- package/dist/src/database/migrator/types.js +2 -0
- package/dist/src/database/migrator.d.ts +79 -0
- package/dist/src/database/migrator.d.ts.map +1 -0
- package/dist/src/database/migrator.js +377 -0
- package/dist/src/database/pool/async-tracked-multi-connection.d.ts +11 -0
- package/dist/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -0
- package/dist/src/database/pool/async-tracked-multi-connection.js +80 -0
- package/dist/src/database/pool/base-methods-forward.d.ts +6 -0
- package/dist/src/database/pool/base-methods-forward.d.ts.map +1 -0
- package/dist/src/database/pool/base-methods-forward.js +37 -0
- package/dist/src/database/pool/base.d.ts +76 -0
- package/dist/src/database/pool/base.d.ts.map +1 -0
- package/dist/src/database/pool/base.js +111 -0
- package/dist/src/database/pool/single-multi-use.d.ts +5 -0
- package/dist/src/database/pool/single-multi-use.d.ts.map +1 -0
- package/dist/src/database/pool/single-multi-use.js +35 -0
- package/dist/src/database/query/alter-table-base.d.ts +15 -0
- package/dist/src/database/query/alter-table-base.d.ts.map +1 -0
- package/dist/src/database/query/alter-table-base.js +55 -0
- package/dist/src/database/query/base.d.ts +26 -0
- package/dist/src/database/query/base.d.ts.map +1 -0
- package/dist/src/database/query/base.js +38 -0
- package/dist/src/database/query/create-database-base.d.ts +19 -0
- package/dist/src/database/query/create-database-base.d.ts.map +1 -0
- package/dist/src/database/query/create-database-base.js +29 -0
- package/dist/src/database/query/create-index-base.d.ts +31 -0
- package/dist/src/database/query/create-index-base.d.ts.map +1 -0
- package/dist/src/database/query/create-index-base.js +94 -0
- package/dist/src/database/query/create-table-base.d.ts +25 -0
- package/dist/src/database/query/create-table-base.d.ts.map +1 -0
- package/dist/src/database/query/create-table-base.js +136 -0
- package/dist/src/database/query/delete-base.d.ts +17 -0
- package/dist/src/database/query/delete-base.d.ts.map +1 -0
- package/dist/src/database/query/delete-base.js +15 -0
- package/dist/src/database/query/drop-table-base.d.ts +20 -0
- package/dist/src/database/query/drop-table-base.d.ts.map +1 -0
- package/dist/src/database/query/drop-table-base.js +44 -0
- package/dist/src/database/query/from-base.d.ts +19 -0
- package/dist/src/database/query/from-base.d.ts.map +1 -0
- package/dist/src/database/query/from-base.js +27 -0
- package/dist/src/database/query/from-plain.d.ts +9 -0
- package/dist/src/database/query/from-plain.d.ts.map +1 -0
- package/dist/src/database/query/from-plain.js +12 -0
- package/dist/src/database/query/from-table.d.ts +9 -0
- package/dist/src/database/query/from-table.d.ts.map +1 -0
- package/dist/src/database/query/from-table.js +14 -0
- package/dist/src/database/query/index.d.ts +219 -0
- package/dist/src/database/query/index.d.ts.map +1 -0
- package/dist/src/database/query/index.js +437 -0
- package/dist/src/database/query/insert-base.d.ts +41 -0
- package/dist/src/database/query/insert-base.d.ts.map +1 -0
- package/dist/src/database/query/insert-base.js +135 -0
- package/dist/src/database/query/join-base.d.ts +22 -0
- package/dist/src/database/query/join-base.d.ts.map +1 -0
- package/dist/src/database/query/join-base.js +33 -0
- package/dist/src/database/query/join-object.d.ts +24 -0
- package/dist/src/database/query/join-object.d.ts.map +1 -0
- package/dist/src/database/query/join-object.js +58 -0
- package/dist/src/database/query/join-plain.d.ts +10 -0
- package/dist/src/database/query/join-plain.d.ts.map +1 -0
- package/dist/src/database/query/join-plain.js +14 -0
- package/dist/src/database/query/order-base.d.ts +19 -0
- package/dist/src/database/query/order-base.d.ts.map +1 -0
- package/dist/src/database/query/order-base.js +26 -0
- package/dist/src/database/query/order-plain.d.ts +13 -0
- package/dist/src/database/query/order-plain.d.ts.map +1 -0
- package/dist/src/database/query/order-plain.js +22 -0
- package/dist/src/database/query/preloader/belongs-to.d.ts +15 -0
- package/dist/src/database/query/preloader/belongs-to.d.ts.map +1 -0
- package/dist/src/database/query/preloader/belongs-to.js +48 -0
- package/dist/src/database/query/preloader/has-many.d.ts +15 -0
- package/dist/src/database/query/preloader/has-many.d.ts.map +1 -0
- package/dist/src/database/query/preloader/has-many.js +63 -0
- package/dist/src/database/query/preloader/has-one.d.ts +15 -0
- package/dist/src/database/query/preloader/has-one.d.ts.map +1 -0
- package/dist/src/database/query/preloader/has-one.js +55 -0
- package/dist/src/database/query/preloader.d.ts +18 -0
- package/dist/src/database/query/preloader.d.ts.map +1 -0
- package/dist/src/database/query/preloader.js +52 -0
- package/dist/src/database/query/select-base.d.ts +17 -0
- package/dist/src/database/query/select-base.d.ts.map +1 -0
- package/dist/src/database/query/select-base.js +24 -0
- package/dist/src/database/query/select-plain.d.ts +9 -0
- package/dist/src/database/query/select-plain.d.ts.map +1 -0
- package/dist/src/database/query/select-plain.js +14 -0
- package/dist/src/database/query/select-table-and-column.d.ts +13 -0
- package/dist/src/database/query/select-table-and-column.d.ts.map +1 -0
- package/dist/src/database/query/select-table-and-column.js +22 -0
- package/dist/src/database/query/update-base.d.ts +25 -0
- package/dist/src/database/query/update-base.d.ts.map +1 -0
- package/dist/src/database/query/update-base.js +25 -0
- package/dist/src/database/query/where-base.d.ts +21 -0
- package/dist/src/database/query/where-base.d.ts.map +1 -0
- package/dist/src/database/query/where-base.js +30 -0
- package/dist/src/database/query/where-hash.d.ts +22 -0
- package/dist/src/database/query/where-hash.d.ts.map +1 -0
- package/dist/src/database/query/where-hash.js +56 -0
- package/dist/src/database/query/where-plain.d.ts +10 -0
- package/dist/src/database/query/where-plain.d.ts.map +1 -0
- package/dist/src/database/query/where-plain.js +16 -0
- package/dist/src/database/query-parser/base-query-parser.d.ts +15 -0
- package/dist/src/database/query-parser/base-query-parser.d.ts.map +1 -0
- package/dist/src/database/query-parser/base-query-parser.js +33 -0
- package/dist/src/database/query-parser/from-parser.d.ts +16 -0
- package/dist/src/database/query-parser/from-parser.d.ts.map +1 -0
- package/dist/src/database/query-parser/from-parser.js +35 -0
- package/dist/src/database/query-parser/group-parser.d.ts +18 -0
- package/dist/src/database/query-parser/group-parser.d.ts.map +1 -0
- package/dist/src/database/query-parser/group-parser.js +44 -0
- package/dist/src/database/query-parser/joins-parser.d.ts +16 -0
- package/dist/src/database/query-parser/joins-parser.d.ts.map +1 -0
- package/dist/src/database/query-parser/joins-parser.js +30 -0
- package/dist/src/database/query-parser/limit-parser.d.ts +15 -0
- package/dist/src/database/query-parser/limit-parser.d.ts.map +1 -0
- package/dist/src/database/query-parser/limit-parser.js +56 -0
- package/dist/src/database/query-parser/options.d.ts +58 -0
- package/dist/src/database/query-parser/options.d.ts.map +1 -0
- package/dist/src/database/query-parser/options.js +78 -0
- package/dist/src/database/query-parser/order-parser.d.ts +15 -0
- package/dist/src/database/query-parser/order-parser.d.ts.map +1 -0
- package/dist/src/database/query-parser/order-parser.js +39 -0
- package/dist/src/database/query-parser/select-parser.d.ts +15 -0
- package/dist/src/database/query-parser/select-parser.d.ts.map +1 -0
- package/dist/src/database/query-parser/select-parser.js +49 -0
- package/dist/src/database/query-parser/where-parser.d.ts +15 -0
- package/dist/src/database/query-parser/where-parser.d.ts.map +1 -0
- package/dist/src/database/query-parser/where-parser.js +39 -0
- package/dist/src/database/record/index.d.ts +495 -0
- package/dist/src/database/record/index.d.ts.map +1 -0
- package/dist/src/database/record/index.js +1408 -0
- package/dist/src/database/record/instance-relationships/base.d.ts +74 -0
- package/dist/src/database/record/instance-relationships/base.d.ts.map +1 -0
- package/dist/src/database/record/instance-relationships/base.js +81 -0
- package/dist/src/database/record/instance-relationships/belongs-to.d.ts +4 -0
- package/dist/src/database/record/instance-relationships/belongs-to.d.ts.map +1 -0
- package/dist/src/database/record/instance-relationships/belongs-to.js +28 -0
- package/dist/src/database/record/instance-relationships/has-many.d.ts +8 -0
- package/dist/src/database/record/instance-relationships/has-many.d.ts.map +1 -0
- package/dist/src/database/record/instance-relationships/has-many.js +103 -0
- package/dist/src/database/record/instance-relationships/has-one.d.ts +7 -0
- package/dist/src/database/record/instance-relationships/has-one.d.ts.map +1 -0
- package/dist/src/database/record/instance-relationships/has-one.js +50 -0
- package/dist/src/database/record/record-not-found-error.d.ts +3 -0
- package/dist/src/database/record/record-not-found-error.d.ts.map +1 -0
- package/dist/src/database/record/record-not-found-error.js +3 -0
- package/dist/src/database/record/relationships/base.d.ts +68 -0
- package/dist/src/database/record/relationships/base.d.ts.map +1 -0
- package/dist/src/database/record/relationships/base.js +79 -0
- package/dist/src/database/record/relationships/belongs-to.d.ts +5 -0
- package/dist/src/database/record/relationships/belongs-to.d.ts.map +1 -0
- package/dist/src/database/record/relationships/belongs-to.js +37 -0
- package/dist/src/database/record/relationships/has-many.d.ts +5 -0
- package/dist/src/database/record/relationships/has-many.d.ts.map +1 -0
- package/dist/src/database/record/relationships/has-many.js +30 -0
- package/dist/src/database/record/relationships/has-one.d.ts +5 -0
- package/dist/src/database/record/relationships/has-one.d.ts.map +1 -0
- package/dist/src/database/record/relationships/has-one.js +30 -0
- package/dist/src/database/record/user-module.d.ts +15 -0
- package/dist/src/database/record/user-module.d.ts.map +1 -0
- package/dist/src/database/record/user-module.js +34 -0
- package/dist/src/database/record/validators/base.d.ts +25 -0
- package/dist/src/database/record/validators/base.d.ts.map +1 -0
- package/dist/src/database/record/validators/base.js +22 -0
- package/dist/src/database/record/validators/presence.d.ts +4 -0
- package/dist/src/database/record/validators/presence.d.ts.map +1 -0
- package/dist/src/database/record/validators/presence.js +17 -0
- package/dist/src/database/record/validators/uniqueness.d.ts +4 -0
- package/dist/src/database/record/validators/uniqueness.d.ts.map +1 -0
- package/dist/src/database/record/validators/uniqueness.js +33 -0
- package/dist/src/database/table-data/index.d.ts +141 -0
- package/dist/src/database/table-data/index.d.ts.map +1 -0
- package/dist/src/database/table-data/index.js +167 -0
- package/dist/src/database/table-data/table-column.d.ts +153 -0
- package/dist/src/database/table-data/table-column.d.ts.map +1 -0
- package/dist/src/database/table-data/table-column.js +246 -0
- package/dist/src/database/table-data/table-foreign-key.d.ts +55 -0
- package/dist/src/database/table-data/table-foreign-key.d.ts.map +1 -0
- package/dist/src/database/table-data/table-foreign-key.js +51 -0
- package/dist/src/database/table-data/table-index.d.ts +31 -0
- package/dist/src/database/table-data/table-index.d.ts.map +1 -0
- package/dist/src/database/table-data/table-index.js +33 -0
- package/dist/src/database/table-data/table-reference.d.ts +10 -0
- package/dist/src/database/table-data/table-reference.d.ts.map +1 -0
- package/dist/src/database/table-data/table-reference.js +11 -0
- package/dist/src/database/use-database.d.ts +11 -0
- package/dist/src/database/use-database.d.ts.map +1 -0
- package/dist/src/database/use-database.js +39 -0
- package/dist/src/environment-handlers/base.d.ts +128 -0
- package/dist/src/environment-handlers/base.d.ts.map +1 -0
- package/dist/src/environment-handlers/base.js +136 -0
- package/dist/src/environment-handlers/browser.d.ts +65 -0
- package/dist/src/environment-handlers/browser.d.ts.map +1 -0
- package/dist/src/environment-handlers/browser.js +160 -0
- package/dist/src/environment-handlers/node/cli/commands/destroy/migration.d.ts +14 -0
- package/dist/src/environment-handlers/node/cli/commands/destroy/migration.d.ts.map +1 -0
- package/dist/src/environment-handlers/node/cli/commands/destroy/migration.js +34 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/base-models.d.ts +10 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/base-models.d.ts.map +1 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/base-models.js +219 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/migration.d.ts +19 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/migration.d.ts.map +1 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/migration.js +36 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/model.d.ts +18 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/model.d.ts.map +1 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/model.js +36 -0
- package/dist/src/environment-handlers/node/cli/commands/init.d.ts +18 -0
- package/dist/src/environment-handlers/node/cli/commands/init.d.ts.map +1 -0
- package/dist/src/environment-handlers/node/cli/commands/init.js +60 -0
- package/dist/src/environment-handlers/node/cli/commands/server.d.ts +11 -0
- package/dist/src/environment-handlers/node/cli/commands/server.d.ts.map +1 -0
- package/dist/src/environment-handlers/node/cli/commands/server.js +26 -0
- package/dist/src/environment-handlers/node/cli/commands/test.d.ts +5 -0
- package/dist/src/environment-handlers/node/cli/commands/test.d.ts.map +1 -0
- package/dist/src/environment-handlers/node/cli/commands/test.js +41 -0
- package/dist/src/environment-handlers/node.d.ts +47 -0
- package/dist/src/environment-handlers/node.d.ts.map +1 -0
- package/dist/src/environment-handlers/node.js +188 -0
- package/dist/src/error-logger.d.ts +5 -0
- package/dist/src/error-logger.d.ts.map +1 -0
- package/dist/src/error-logger.js +32 -0
- package/dist/src/http-client/header.d.ts +13 -0
- package/dist/src/http-client/header.d.ts.map +1 -0
- package/dist/src/http-client/header.js +14 -0
- package/dist/src/http-client/index.d.ts +57 -0
- package/dist/src/http-client/index.d.ts.map +1 -0
- package/dist/src/http-client/index.js +118 -0
- package/dist/src/http-client/request.d.ts +39 -0
- package/dist/src/http-client/request.d.ts.map +1 -0
- package/dist/src/http-client/request.js +66 -0
- package/dist/src/http-client/response.d.ts +31 -0
- package/dist/src/http-client/response.d.ts.map +1 -0
- package/dist/src/http-client/response.js +119 -0
- package/dist/src/http-server/client/index.d.ts +37 -0
- package/dist/src/http-server/client/index.d.ts.map +1 -0
- package/dist/src/http-server/client/index.js +116 -0
- package/dist/src/http-server/client/params-to-object.d.ts +21 -0
- package/dist/src/http-server/client/params-to-object.d.ts.map +1 -0
- package/dist/src/http-server/client/params-to-object.js +80 -0
- package/dist/src/http-server/client/request-buffer/form-data-part.d.ts +21 -0
- package/dist/src/http-server/client/request-buffer/form-data-part.d.ts.map +1 -0
- package/dist/src/http-server/client/request-buffer/form-data-part.js +45 -0
- package/dist/src/http-server/client/request-buffer/header.d.ts +15 -0
- package/dist/src/http-server/client/request-buffer/header.d.ts.map +1 -0
- package/dist/src/http-server/client/request-buffer/header.js +16 -0
- package/dist/src/http-server/client/request-buffer/index.d.ts +95 -0
- package/dist/src/http-server/client/request-buffer/index.d.ts.map +1 -0
- package/dist/src/http-server/client/request-buffer/index.js +305 -0
- package/dist/src/http-server/client/request-parser.d.ts +52 -0
- package/dist/src/http-server/client/request-parser.d.ts.map +1 -0
- package/dist/src/http-server/client/request-parser.js +98 -0
- package/dist/src/http-server/client/request-runner.d.ts +24 -0
- package/dist/src/http-server/client/request-runner.d.ts.map +1 -0
- package/dist/src/http-server/client/request-runner.js +58 -0
- package/dist/src/http-server/client/request.d.ts +39 -0
- package/dist/src/http-server/client/request.d.ts.map +1 -0
- package/dist/src/http-server/client/request.js +54 -0
- package/dist/src/http-server/client/response.d.ts +56 -0
- package/dist/src/http-server/client/response.d.ts.map +1 -0
- package/dist/src/http-server/client/response.js +90 -0
- package/dist/src/http-server/index.d.ts +58 -0
- package/dist/src/http-server/index.d.ts.map +1 -0
- package/dist/src/http-server/index.js +147 -0
- package/dist/src/http-server/server-client.d.ts +43 -0
- package/dist/src/http-server/server-client.d.ts.map +1 -0
- package/dist/src/http-server/server-client.js +70 -0
- package/dist/src/http-server/worker-handler/index.d.ts +49 -0
- package/dist/src/http-server/worker-handler/index.d.ts.map +1 -0
- package/dist/src/http-server/worker-handler/index.js +104 -0
- package/dist/src/http-server/worker-handler/worker-script.d.ts +2 -0
- package/dist/src/http-server/worker-handler/worker-script.d.ts.map +1 -0
- package/dist/src/http-server/worker-handler/worker-script.js +4 -0
- package/dist/src/http-server/worker-handler/worker-thread.d.ts +47 -0
- package/dist/src/http-server/worker-handler/worker-thread.d.ts.map +1 -0
- package/dist/src/http-server/worker-handler/worker-thread.js +88 -0
- package/dist/src/initializer.d.ts +27 -0
- package/dist/src/initializer.d.ts.map +1 -0
- package/dist/src/initializer.js +29 -0
- package/dist/src/logger.d.ts +39 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/logger.js +154 -0
- package/dist/src/routes/app-routes.d.ts +8 -0
- package/dist/src/routes/app-routes.d.ts.map +1 -0
- package/dist/src/routes/app-routes.js +13 -0
- package/dist/src/routes/base-route.d.ts +60 -0
- package/dist/src/routes/base-route.d.ts.map +1 -0
- package/dist/src/routes/base-route.js +67 -0
- package/dist/src/routes/basic-route.d.ts +10 -0
- package/dist/src/routes/basic-route.d.ts.map +1 -0
- package/dist/src/routes/basic-route.js +61 -0
- package/dist/src/routes/built-in/errors/controller.d.ts +5 -0
- package/dist/src/routes/built-in/errors/controller.d.ts.map +1 -0
- package/dist/src/routes/built-in/errors/controller.js +6 -0
- package/dist/src/routes/get-route.d.ts +14 -0
- package/dist/src/routes/get-route.d.ts.map +1 -0
- package/dist/src/routes/get-route.js +33 -0
- package/dist/src/routes/index.d.ts +10 -0
- package/dist/src/routes/index.d.ts.map +1 -0
- package/dist/src/routes/index.js +16 -0
- package/dist/src/routes/namespace-route.d.ts +14 -0
- package/dist/src/routes/namespace-route.d.ts.map +1 -0
- package/dist/src/routes/namespace-route.js +34 -0
- package/dist/src/routes/post-route.d.ts +14 -0
- package/dist/src/routes/post-route.d.ts.map +1 -0
- package/dist/src/routes/post-route.js +33 -0
- package/dist/src/routes/resolver.d.ts +27 -0
- package/dist/src/routes/resolver.d.ts.map +1 -0
- package/dist/src/routes/resolver.js +92 -0
- package/dist/src/routes/resource-route.d.ts +14 -0
- package/dist/src/routes/resource-route.d.ts.map +1 -0
- package/dist/src/routes/resource-route.js +51 -0
- package/dist/src/routes/root-route.d.ts +4 -0
- package/dist/src/routes/root-route.d.ts.map +1 -0
- package/dist/src/routes/root-route.js +4 -0
- package/dist/src/testing/request-client.d.ts +35 -0
- package/dist/src/testing/request-client.d.ts.map +1 -0
- package/dist/src/testing/request-client.js +61 -0
- package/dist/src/testing/test-files-finder.d.ts +64 -0
- package/dist/src/testing/test-files-finder.d.ts.map +1 -0
- package/dist/src/testing/test-files-finder.js +159 -0
- package/dist/src/testing/test-runner.d.ts +163 -0
- package/dist/src/testing/test-runner.d.ts.map +1 -0
- package/dist/src/testing/test-runner.js +257 -0
- package/dist/src/testing/test.d.ts +157 -0
- package/dist/src/testing/test.d.ts.map +1 -0
- package/dist/src/testing/test.js +408 -0
- package/dist/src/utils/backtrace-cleaner.d.ts +17 -0
- package/dist/src/utils/backtrace-cleaner.d.ts.map +1 -0
- package/dist/src/utils/backtrace-cleaner.js +23 -0
- package/dist/src/utils/ensure-error.d.ts +6 -0
- package/dist/src/utils/ensure-error.d.ts.map +1 -0
- package/dist/src/utils/ensure-error.js +13 -0
- package/dist/src/utils/file-exists.d.ts +6 -0
- package/dist/src/utils/file-exists.d.ts.map +1 -0
- package/dist/src/utils/file-exists.js +15 -0
- package/dist/src/utils/nest-callbacks.d.ts +2 -0
- package/dist/src/utils/nest-callbacks.d.ts.map +1 -0
- package/dist/src/utils/nest-callbacks.js +11 -0
- package/dist/src/utils/rest-args-error.d.ts +6 -0
- package/dist/src/utils/rest-args-error.d.ts.map +1 -0
- package/dist/src/utils/rest-args-error.js +11 -0
- package/dist/src/utils/with-tracked-stack-async-hooks.d.ts +10 -0
- package/dist/src/utils/with-tracked-stack-async-hooks.d.ts.map +1 -0
- package/dist/src/utils/with-tracked-stack-async-hooks.js +69 -0
- package/dist/src/utils/with-tracked-stack.d.ts +8 -0
- package/dist/src/utils/with-tracked-stack.d.ts.map +1 -0
- package/dist/src/utils/with-tracked-stack.js +26 -0
- package/package.json +7 -3
- package/.github/dependabot.yml +0 -9
- package/bin/velocious.js +0 -34
- package/eslint.config.js +0 -34
- package/index.js +0 -1
- package/peak_flow.yml +0 -89
- package/run-tests.sh +0 -4
- package/spec/cli/commands/db/create-spec.js +0 -58
- package/spec/cli/commands/db/migrate-spec.js +0 -160
- package/spec/cli/commands/db/rollback-spec.js +0 -179
- package/spec/cli/commands/destroy/migration-spec.js +0 -19
- package/spec/cli/commands/generate/migration-spec.js +0 -22
- package/spec/cli/commands/init-spec.js +0 -23
- package/spec/cli/commands/test/test-files-finder-spec.js +0 -15
- package/spec/database/connection/drivers/mysql/query-parser-spec.js +0 -41
- package/spec/database/drivers/columns-spec.js +0 -27
- package/spec/database/drivers/create-sql/create-index-sql-spec.js +0 -24
- package/spec/database/drivers/mysql/connection-spec.js +0 -22
- package/spec/database/migration/column-exists-spec.js +0 -28
- package/spec/database/record/create-spec.js +0 -140
- package/spec/database/record/destroy-spec.js +0 -35
- package/spec/database/record/find-or-create-spec.js +0 -59
- package/spec/database/record/find-spec.js +0 -32
- package/spec/database/record/instance-relationships/belongs-to-relationship-spec.js +0 -21
- package/spec/database/record/instance-relationships/has-many-relationship-spec.js +0 -24
- package/spec/database/record/instance-relationships/has-one-relationship-spec.js +0 -24
- package/spec/database/record/last-spec.js +0 -29
- package/spec/database/record/preloader/belongs-to-spec.js +0 -15
- package/spec/database/record/preloader/has-many-spec.js +0 -29
- package/spec/database/record/preloader/has-one-spec.js +0 -15
- package/spec/database/record/query-spec.js +0 -120
- package/spec/database/record/translation-fallbacks-spec.js +0 -24
- package/spec/database/record/translations-spec.js +0 -10
- package/spec/database/record/update-spec.js +0 -31
- package/spec/database/record/validations-spec.js +0 -42
- package/spec/database/transactions-spec.js +0 -47
- package/spec/dummy/db/.keep +0 -0
- package/spec/dummy/dummy-directory.js +0 -13
- package/spec/dummy/index.js +0 -83
- package/spec/dummy/src/config/configuration.example.js +0 -70
- package/spec/dummy/src/config/configuration.peakflow.mariadb.js +0 -65
- package/spec/dummy/src/config/configuration.peakflow.mssql.js +0 -71
- package/spec/dummy/src/config/configuration.peakflow.pgsql.js +0 -65
- package/spec/dummy/src/config/configuration.peakflow.sqlite.js +0 -62
- package/spec/dummy/src/config/routes.js +0 -15
- package/spec/dummy/src/config/testing.js +0 -34
- package/spec/dummy/src/database/migrations/20230728075328-create-projects.js +0 -10
- package/spec/dummy/src/database/migrations/20230728075329-create-tasks.js +0 -12
- package/spec/dummy/src/database/migrations/20250605133926-create-project-translations.js +0 -16
- package/spec/dummy/src/database/migrations/20250903112845-create-accounts.js +0 -18
- package/spec/dummy/src/database/migrations/20250912183605-create-users.js +0 -16
- package/spec/dummy/src/database/migrations/20250912183606-create-authentication-tokens.js +0 -15
- package/spec/dummy/src/database/migrations/20250915085450-change-authentication-tokens-user-id-nullable.js +0 -11
- package/spec/dummy/src/database/migrations/20250916111330-rename_authentication_tokens_token_to_user_token.js +0 -11
- package/spec/dummy/src/database/migrations/20250921121002-create-project-details.js +0 -17
- package/spec/dummy/src/model-bases/account.js +0 -67
- package/spec/dummy/src/model-bases/authentication-token.js +0 -108
- package/spec/dummy/src/model-bases/project-detail.js +0 -101
- package/spec/dummy/src/model-bases/project-translation.js +0 -124
- package/spec/dummy/src/model-bases/project.js +0 -196
- package/spec/dummy/src/model-bases/task.js +0 -117
- package/spec/dummy/src/model-bases/user.js +0 -170
- package/spec/dummy/src/models/account.js +0 -8
- package/spec/dummy/src/models/authentication-token.js +0 -8
- package/spec/dummy/src/models/project-detail.js +0 -8
- package/spec/dummy/src/models/project.js +0 -11
- package/spec/dummy/src/models/task.js +0 -9
- package/spec/dummy/src/models/user.js +0 -18
- package/spec/dummy/src/routes/_root/controller.js +0 -11
- package/spec/dummy/src/routes/projects/controller.js +0 -33
- package/spec/dummy/src/routes/tasks/controller.js +0 -25
- package/spec/dummy/src/routes/tasks/index.ejs +0 -1
- package/spec/dummy/src/routes/tasks/show.ejs +0 -0
- package/spec/http-server/client-spec.js +0 -37
- package/spec/http-server/get-spec.js +0 -86
- package/spec/http-server/post-spec.js +0 -93
- package/spec/http-server/root-get-spec.js +0 -31
- package/src/application.js +0 -123
- package/src/cli/base-command.js +0 -40
- package/src/cli/browser-cli.js +0 -37
- package/src/cli/commands/db/create.js +0 -72
- package/src/cli/commands/db/drop.js +0 -18
- package/src/cli/commands/db/migrate.js +0 -17
- package/src/cli/commands/db/reset.js +0 -22
- package/src/cli/commands/db/rollback.js +0 -15
- package/src/cli/commands/destroy/migration.js +0 -7
- package/src/cli/commands/generate/base-models.js +0 -7
- package/src/cli/commands/generate/migration.js +0 -7
- package/src/cli/commands/generate/model.js +0 -7
- package/src/cli/commands/init.js +0 -11
- package/src/cli/commands/server.js +0 -7
- package/src/cli/commands/test.js +0 -7
- package/src/cli/index.js +0 -39
- package/src/cli/use-browser-cli.js +0 -27
- package/src/configuration-resolver.js +0 -61
- package/src/configuration-types.js +0 -61
- package/src/configuration.js +0 -395
- package/src/controller.js +0 -166
- package/src/database/drivers/base-column.js +0 -141
- package/src/database/drivers/base-columns-index.js +0 -72
- package/src/database/drivers/base-foreign-key.js +0 -91
- package/src/database/drivers/base-table.js +0 -129
- package/src/database/drivers/base.js +0 -751
- package/src/database/drivers/mssql/column.js +0 -72
- package/src/database/drivers/mssql/columns-index.js +0 -6
- package/src/database/drivers/mssql/connect-connection.js +0 -12
- package/src/database/drivers/mssql/foreign-key.js +0 -12
- package/src/database/drivers/mssql/index.js +0 -357
- package/src/database/drivers/mssql/options.js +0 -72
- package/src/database/drivers/mssql/query-parser.js +0 -6
- package/src/database/drivers/mssql/sql/alter-table.js +0 -4
- package/src/database/drivers/mssql/sql/create-database.js +0 -35
- package/src/database/drivers/mssql/sql/create-index.js +0 -4
- package/src/database/drivers/mssql/sql/create-table.js +0 -4
- package/src/database/drivers/mssql/sql/delete.js +0 -19
- package/src/database/drivers/mssql/sql/drop-table.js +0 -4
- package/src/database/drivers/mssql/sql/insert.js +0 -4
- package/src/database/drivers/mssql/sql/update.js +0 -31
- package/src/database/drivers/mssql/table.js +0 -132
- package/src/database/drivers/mysql/column.js +0 -105
- package/src/database/drivers/mysql/columns-index.js +0 -6
- package/src/database/drivers/mysql/foreign-key.js +0 -12
- package/src/database/drivers/mysql/index.js +0 -275
- package/src/database/drivers/mysql/options.js +0 -31
- package/src/database/drivers/mysql/query-parser.js +0 -6
- package/src/database/drivers/mysql/query.js +0 -31
- package/src/database/drivers/mysql/sql/alter-table.js +0 -6
- package/src/database/drivers/mysql/sql/create-database.js +0 -6
- package/src/database/drivers/mysql/sql/create-index.js +0 -6
- package/src/database/drivers/mysql/sql/create-table.js +0 -6
- package/src/database/drivers/mysql/sql/delete.js +0 -21
- package/src/database/drivers/mysql/sql/drop-table.js +0 -6
- package/src/database/drivers/mysql/sql/insert.js +0 -6
- package/src/database/drivers/mysql/sql/update.js +0 -33
- package/src/database/drivers/mysql/table.js +0 -96
- package/src/database/drivers/pgsql/column.js +0 -81
- package/src/database/drivers/pgsql/columns-index.js +0 -6
- package/src/database/drivers/pgsql/foreign-key.js +0 -12
- package/src/database/drivers/pgsql/index.js +0 -250
- package/src/database/drivers/pgsql/options.js +0 -30
- package/src/database/drivers/pgsql/query-parser.js +0 -6
- package/src/database/drivers/pgsql/sql/alter-table.js +0 -6
- package/src/database/drivers/pgsql/sql/create-database.js +0 -38
- package/src/database/drivers/pgsql/sql/create-index.js +0 -6
- package/src/database/drivers/pgsql/sql/create-table.js +0 -6
- package/src/database/drivers/pgsql/sql/delete.js +0 -21
- package/src/database/drivers/pgsql/sql/drop-table.js +0 -6
- package/src/database/drivers/pgsql/sql/insert.js +0 -6
- package/src/database/drivers/pgsql/sql/update.js +0 -33
- package/src/database/drivers/pgsql/table.js +0 -123
- package/src/database/drivers/sqlite/base.js +0 -303
- package/src/database/drivers/sqlite/column.js +0 -70
- package/src/database/drivers/sqlite/columns-index.js +0 -30
- package/src/database/drivers/sqlite/connection-remote.js +0 -12
- package/src/database/drivers/sqlite/connection-sql-js.js +0 -49
- package/src/database/drivers/sqlite/foreign-key.js +0 -22
- package/src/database/drivers/sqlite/index.js +0 -52
- package/src/database/drivers/sqlite/index.native.js +0 -68
- package/src/database/drivers/sqlite/index.web.js +0 -63
- package/src/database/drivers/sqlite/options.js +0 -30
- package/src/database/drivers/sqlite/query-parser.js +0 -6
- package/src/database/drivers/sqlite/query.js +0 -32
- package/src/database/drivers/sqlite/query.native.js +0 -25
- package/src/database/drivers/sqlite/query.web.js +0 -46
- package/src/database/drivers/sqlite/sql/alter-table.js +0 -153
- package/src/database/drivers/sqlite/sql/create-index.js +0 -6
- package/src/database/drivers/sqlite/sql/create-table.js +0 -6
- package/src/database/drivers/sqlite/sql/delete.js +0 -26
- package/src/database/drivers/sqlite/sql/drop-table.js +0 -6
- package/src/database/drivers/sqlite/sql/insert.js +0 -6
- package/src/database/drivers/sqlite/sql/update.js +0 -33
- package/src/database/drivers/sqlite/table.js +0 -97
- package/src/database/handler.js +0 -12
- package/src/database/initializer-from-require-context.js +0 -50
- package/src/database/migration/index.js +0 -345
- package/src/database/migrator/files-finder.js +0 -51
- package/src/database/migrator/types.js +0 -31
- package/src/database/migrator.js +0 -434
- package/src/database/pool/async-tracked-multi-connection.js +0 -103
- package/src/database/pool/base-methods-forward.js +0 -40
- package/src/database/pool/base.js +0 -133
- package/src/database/pool/single-multi-use.js +0 -43
- package/src/database/query/alter-table-base.js +0 -62
- package/src/database/query/base.js +0 -46
- package/src/database/query/create-database-base.js +0 -35
- package/src/database/query/create-index-base.js +0 -114
- package/src/database/query/create-table-base.js +0 -169
- package/src/database/query/delete-base.js +0 -17
- package/src/database/query/drop-table-base.js +0 -56
- package/src/database/query/from-base.js +0 -31
- package/src/database/query/from-plain.js +0 -15
- package/src/database/query/from-table.js +0 -17
- package/src/database/query/index.js +0 -530
- package/src/database/query/insert-base.js +0 -156
- package/src/database/query/join-base.js +0 -39
- package/src/database/query/join-object.js +0 -67
- package/src/database/query/join-plain.js +0 -17
- package/src/database/query/order-base.js +0 -30
- package/src/database/query/order-plain.js +0 -27
- package/src/database/query/preloader/belongs-to.js +0 -63
- package/src/database/query/preloader/has-many.js +0 -83
- package/src/database/query/preloader/has-one.js +0 -74
- package/src/database/query/preloader.js +0 -61
- package/src/database/query/select-base.js +0 -27
- package/src/database/query/select-plain.js +0 -17
- package/src/database/query/select-table-and-column.js +0 -27
- package/src/database/query/update-base.js +0 -28
- package/src/database/query/where-base.js +0 -34
- package/src/database/query/where-hash.js +0 -66
- package/src/database/query/where-plain.js +0 -19
- package/src/database/query-parser/base-query-parser.js +0 -39
- package/src/database/query-parser/from-parser.js +0 -45
- package/src/database/query-parser/group-parser.js +0 -53
- package/src/database/query-parser/joins-parser.js +0 -36
- package/src/database/query-parser/limit-parser.js +0 -61
- package/src/database/query-parser/options.js +0 -85
- package/src/database/query-parser/order-parser.js +0 -44
- package/src/database/query-parser/select-parser.js +0 -60
- package/src/database/query-parser/where-parser.js +0 -45
- package/src/database/record/index.js +0 -1682
- package/src/database/record/instance-relationships/base.js +0 -103
- package/src/database/record/instance-relationships/belongs-to.js +0 -37
- package/src/database/record/instance-relationships/has-many.js +0 -116
- package/src/database/record/instance-relationships/has-one.js +0 -66
- package/src/database/record/record-not-found-error.js +0 -3
- package/src/database/record/relationships/base.js +0 -91
- package/src/database/record/relationships/belongs-to.js +0 -46
- package/src/database/record/relationships/has-many.js +0 -39
- package/src/database/record/relationships/has-one.js +0 -39
- package/src/database/record/user-module.js +0 -41
- package/src/database/record/validators/base.js +0 -24
- package/src/database/record/validators/presence.js +0 -20
- package/src/database/record/validators/uniqueness.js +0 -42
- package/src/database/table-data/index.js +0 -199
- package/src/database/table-data/table-column.js +0 -283
- package/src/database/table-data/table-foreign-key.js +0 -61
- package/src/database/table-data/table-index.js +0 -41
- package/src/database/table-data/table-reference.js +0 -12
- package/src/database/use-database.js +0 -48
- package/src/environment-handlers/base.js +0 -158
- package/src/environment-handlers/browser.js +0 -193
- package/src/environment-handlers/node/cli/commands/destroy/migration.js +0 -42
- package/src/environment-handlers/node/cli/commands/generate/base-models.js +0 -258
- package/src/environment-handlers/node/cli/commands/generate/migration.js +0 -40
- package/src/environment-handlers/node/cli/commands/generate/model.js +0 -40
- package/src/environment-handlers/node/cli/commands/init.js +0 -66
- package/src/environment-handlers/node/cli/commands/server.js +0 -30
- package/src/environment-handlers/node/cli/commands/test.js +0 -47
- package/src/environment-handlers/node.js +0 -227
- package/src/error-logger.js +0 -32
- package/src/http-client/header.js +0 -16
- package/src/http-client/index.js +0 -135
- package/src/http-client/request.js +0 -83
- package/src/http-client/response.js +0 -136
- package/src/http-server/client/index.js +0 -137
- package/src/http-server/client/params-to-object.js +0 -88
- package/src/http-server/client/request-buffer/form-data-part.js +0 -53
- package/src/http-server/client/request-buffer/header.js +0 -18
- package/src/http-server/client/request-buffer/index.js +0 -345
- package/src/http-server/client/request-parser.js +0 -118
- package/src/http-server/client/request-runner.js +0 -68
- package/src/http-server/client/request.js +0 -63
- package/src/http-server/client/response.js +0 -100
- package/src/http-server/index.js +0 -180
- package/src/http-server/server-client.js +0 -81
- package/src/http-server/worker-handler/index.js +0 -120
- package/src/http-server/worker-handler/worker-script.js +0 -6
- package/src/http-server/worker-handler/worker-thread.js +0 -106
- package/src/initializer.js +0 -35
- package/src/logger.js +0 -174
- package/src/routes/app-routes.js +0 -16
- package/src/routes/base-route.js +0 -82
- package/src/routes/basic-route.js +0 -76
- package/src/routes/built-in/errors/controller.js +0 -7
- package/src/routes/built-in/errors/not-found.ejs +0 -1
- package/src/routes/get-route.js +0 -42
- package/src/routes/index.js +0 -19
- package/src/routes/namespace-route.js +0 -42
- package/src/routes/post-route.js +0 -41
- package/src/routes/resolver.js +0 -102
- package/src/routes/resource-route.js +0 -61
- package/src/routes/root-route.js +0 -6
- package/src/templates/configuration.js +0 -60
- package/src/templates/generate-migration.js +0 -11
- package/src/templates/generate-model.js +0 -6
- package/src/templates/routes.js +0 -11
- package/src/testing/request-client.js +0 -77
- package/src/testing/test-files-finder.js +0 -191
- package/src/testing/test-runner.js +0 -301
- package/src/testing/test.js +0 -462
- package/src/utils/backtrace-cleaner.js +0 -27
- package/src/utils/ensure-error.js +0 -13
- package/src/utils/file-exists.js +0 -17
- package/src/utils/nest-callbacks.js +0 -15
- package/src/utils/rest-args-error.js +0 -13
- package/src/utils/with-tracked-stack-async-hooks.js +0 -85
- package/src/utils/with-tracked-stack.js +0 -30
- package/tsconfig.json +0 -15
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export default class VelociousDatabaseRecordBaseInstanceRelationship {
|
|
2
|
+
/**
|
|
3
|
+
* @param {object} args
|
|
4
|
+
* @param {import("../index.js").default} args.model
|
|
5
|
+
* @param {import("../relationships/base.js").default} args.relationship
|
|
6
|
+
*/
|
|
7
|
+
constructor({ model, relationship }: {
|
|
8
|
+
model: import("../index.js").default;
|
|
9
|
+
relationship: import("../relationships/base.js").default;
|
|
10
|
+
});
|
|
11
|
+
/** @type {boolean | undefined} */
|
|
12
|
+
_autoSave: boolean | undefined;
|
|
13
|
+
_dirty: boolean;
|
|
14
|
+
model: import("../index.js").default;
|
|
15
|
+
relationship: import("../relationships/base.js").default;
|
|
16
|
+
/**
|
|
17
|
+
* @abstract
|
|
18
|
+
* @param {import("../index.js").default[] | import("../index.js").default} models
|
|
19
|
+
* @returns {void}
|
|
20
|
+
*/
|
|
21
|
+
addToLoaded(models: import("../index.js").default[] | import("../index.js").default): void;
|
|
22
|
+
/**
|
|
23
|
+
* @abstract
|
|
24
|
+
* @param {Record<string, any>} attributes
|
|
25
|
+
* @returns {import("../index.js").default}
|
|
26
|
+
*/
|
|
27
|
+
build(attributes: Record<string, any>): import("../index.js").default;
|
|
28
|
+
/** @returns {boolean | undefined} Whether the relationship should be auto-saved before saving the parent model */
|
|
29
|
+
getAutoSave(): boolean | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* @param {boolean} newAutoSaveValue Whether the relationship should be auto-saved before saving the parent model
|
|
32
|
+
* @returns {void}
|
|
33
|
+
*/
|
|
34
|
+
setAutoSave(newAutoSaveValue: boolean): void;
|
|
35
|
+
/**
|
|
36
|
+
* @param {boolean} newValue Whether the relationship is dirty (has been modified)
|
|
37
|
+
* @returns {void}
|
|
38
|
+
*/
|
|
39
|
+
setDirty(newValue: boolean): void;
|
|
40
|
+
/** @returns {boolean} Whether the relationship is dirty (has been modified) */
|
|
41
|
+
getDirty(): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* @abstract
|
|
44
|
+
* @returns {Promise<void>}
|
|
45
|
+
*/
|
|
46
|
+
load(): Promise<void>;
|
|
47
|
+
/** @returns {boolean} Whether the relationship has been preloaded */
|
|
48
|
+
isLoaded(): boolean;
|
|
49
|
+
/** @returns {import("../index.js").default | Array<import("../index.js").default> | undefined} The loaded model or models (depending on relationship type) */
|
|
50
|
+
loaded(): import("../index.js").default | Array<import("../index.js").default> | undefined;
|
|
51
|
+
/** @param {import("../index.js").default|Array<import("../index.js").default>|undefined} model */
|
|
52
|
+
setLoaded(model: import("../index.js").default | Array<import("../index.js").default> | undefined): void;
|
|
53
|
+
_loaded: import("../index.js").default | import("../index.js").default[];
|
|
54
|
+
/** @returns {import("../index.js").default | import("../index.js").default[] | undefined} */
|
|
55
|
+
getLoadedOrUndefined(): import("../index.js").default | import("../index.js").default[] | undefined;
|
|
56
|
+
/** @returns {boolean} The loaded model or models (depending on relationship type) */
|
|
57
|
+
getPreloaded(): boolean;
|
|
58
|
+
/** @param {boolean} isPreloaded */
|
|
59
|
+
setPreloaded(isPreloaded: boolean): void;
|
|
60
|
+
_preloaded: boolean;
|
|
61
|
+
/** @returns {string} The foreign key for this relationship */
|
|
62
|
+
getForeignKey(): string;
|
|
63
|
+
/** @returns {import("../index.js").default} model */
|
|
64
|
+
getModel(): import("../index.js").default;
|
|
65
|
+
/** @returns {string} The primary key for this relationship's model */
|
|
66
|
+
getPrimaryKey(): string;
|
|
67
|
+
/** @returns {import("../relationships/base.js").default} The relationship object that this instance relationship is based on */
|
|
68
|
+
getRelationship(): import("../relationships/base.js").default;
|
|
69
|
+
/** @returns {typeof import("../index.js").default | undefined} The model class that this instance relationship */
|
|
70
|
+
getTargetModelClass(): typeof import("../index.js").default | undefined;
|
|
71
|
+
/** @returns {string} The type of relationship (e.g. "has_many", "belongs_to", etc.) */
|
|
72
|
+
getType(): string;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/instance-relationships/base.js"],"names":[],"mappings":"AAEA;IAIE;;;;OAIG;IACH,qCAHG;QAA4C,KAAK,EAAzC,OAAO,aAAa,EAAE,OAAO;QACoB,YAAY,EAA7D,OAAO,0BAA0B,EAAE,OAAO;KACpD,EAKA;IAZD,kCAAkC;IAClC,WADW,OAAO,GAAG,SAAS,CACT;IAQnB,gBAAmB;IACnB,qCAAkB;IAClB,yDAAgC;IAGlC;;;;OAIG;IACH,oBAHW,OAAO,aAAa,EAAE,OAAO,EAAE,GAAG,OAAO,aAAa,EAAE,OAAO,GAC7D,IAAI,CAIhB;IAED;;;;OAIG;IACH,kBAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,OAAO,aAAa,EAAE,OAAO,CAIzC;IAED,kHAAkH;IAClH,eADc,OAAO,GAAG,SAAS,CACM;IAEvC;;;OAGG;IACH,8BAHW,OAAO,GACL,IAAI,CAEkD;IAEnE;;;OAGG;IACH,mBAHW,OAAO,GACL,IAAI,CAE4B;IAE7C,+EAA+E;IAC/E,YADc,OAAO,CACY;IAEjC;;;OAGG;IACH,QAFa,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED,sEAAsE;IACtE,YADe,OAAO,CACqB;IAE3C,8JAA8J;IAC9J,UADc,OAAO,aAAa,EAAE,OAAO,GAAG,KAAK,CAAC,OAAO,aAAa,EAAE,OAAO,CAAC,GAAG,SAAS,CAO7F;IAED,kGAAkG;IAClG,iBADY,OAAO,aAAa,EAAE,OAAO,GAAC,KAAK,CAAC,OAAO,aAAa,EAAE,OAAO,CAAC,GAAC,SAAS,QAC/C;IAAtB,yEAAoB;IAEvC,6FAA6F;IAC7F,wBADc,OAAO,aAAa,EAAE,OAAO,GAAG,OAAO,aAAa,EAAE,OAAO,EAAE,GAAG,SAAS,CAC3C;IAE9C,qFAAqF;IACrF,gBADc,OAAO,CAC6B;IAElD,mCAAmC;IACnC,0BADY,OAAO,QACwC;IAA/B,oBAA6B;IAEzD,8DAA8D;IAC9D,iBADc,MAAM,CAC6C;IAEjE,qDAAqD;IACrD,YADc,OAAO,aAAa,EAAE,OAAO,CACX;IAEhC,sEAAsE;IACtE,iBADc,MAAM,CAC6C;IAEjE,gIAAgI;IAChI,mBADc,OAAO,0BAA0B,EAAE,OAAO,CACV;IAE9C,kHAAkH;IAClH,uBADc,cAAc,aAAa,EAAE,OAAO,GAAG,SAAS,CACe;IAE7E,uFAAuF;IACvF,WADc,MAAM,CACiC;CACtD"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
export default class VelociousDatabaseRecordBaseInstanceRelationship {
|
|
3
|
+
/** @type {boolean | undefined} */
|
|
4
|
+
_autoSave = undefined;
|
|
5
|
+
/**
|
|
6
|
+
* @param {object} args
|
|
7
|
+
* @param {import("../index.js").default} args.model
|
|
8
|
+
* @param {import("../relationships/base.js").default} args.relationship
|
|
9
|
+
*/
|
|
10
|
+
constructor({ model, relationship }) {
|
|
11
|
+
this._dirty = false;
|
|
12
|
+
this.model = model;
|
|
13
|
+
this.relationship = relationship;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @abstract
|
|
17
|
+
* @param {import("../index.js").default[] | import("../index.js").default} models
|
|
18
|
+
* @returns {void}
|
|
19
|
+
*/
|
|
20
|
+
addToLoaded(models) {
|
|
21
|
+
throw new Error("addToLoaded not implemented");
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @abstract
|
|
25
|
+
* @param {Record<string, any>} attributes
|
|
26
|
+
* @returns {import("../index.js").default}
|
|
27
|
+
*/
|
|
28
|
+
build(attributes) {
|
|
29
|
+
throw new Error("'build' not implemented");
|
|
30
|
+
}
|
|
31
|
+
/** @returns {boolean | undefined} Whether the relationship should be auto-saved before saving the parent model */
|
|
32
|
+
getAutoSave() { return this._autoSave; }
|
|
33
|
+
/**
|
|
34
|
+
* @param {boolean} newAutoSaveValue Whether the relationship should be auto-saved before saving the parent model
|
|
35
|
+
* @returns {void}
|
|
36
|
+
*/
|
|
37
|
+
setAutoSave(newAutoSaveValue) { this._autoSave = newAutoSaveValue; }
|
|
38
|
+
/**
|
|
39
|
+
* @param {boolean} newValue Whether the relationship is dirty (has been modified)
|
|
40
|
+
* @returns {void}
|
|
41
|
+
*/
|
|
42
|
+
setDirty(newValue) { this._dirty = newValue; }
|
|
43
|
+
/** @returns {boolean} Whether the relationship is dirty (has been modified) */
|
|
44
|
+
getDirty() { return this._dirty; }
|
|
45
|
+
/**
|
|
46
|
+
* @abstract
|
|
47
|
+
* @returns {Promise<void>}
|
|
48
|
+
*/
|
|
49
|
+
load() {
|
|
50
|
+
throw new Error("'load' not implemented");
|
|
51
|
+
}
|
|
52
|
+
/** @returns {boolean} Whether the relationship has been preloaded */
|
|
53
|
+
isLoaded() { return Boolean(this._loaded); }
|
|
54
|
+
/** @returns {import("../index.js").default | Array<import("../index.js").default> | undefined} The loaded model or models (depending on relationship type) */
|
|
55
|
+
loaded() {
|
|
56
|
+
if (!this._preloaded && this.model.isPersisted()) {
|
|
57
|
+
throw new Error(`${this.model.constructor.name}#${this.relationship.getRelationshipName()} hasn't been preloaded`);
|
|
58
|
+
}
|
|
59
|
+
return this._loaded;
|
|
60
|
+
}
|
|
61
|
+
/** @param {import("../index.js").default|Array<import("../index.js").default>|undefined} model */
|
|
62
|
+
setLoaded(model) { this._loaded = model; }
|
|
63
|
+
/** @returns {import("../index.js").default | import("../index.js").default[] | undefined} */
|
|
64
|
+
getLoadedOrUndefined() { return this._loaded; }
|
|
65
|
+
/** @returns {boolean} The loaded model or models (depending on relationship type) */
|
|
66
|
+
getPreloaded() { return this._preloaded || false; }
|
|
67
|
+
/** @param {boolean} isPreloaded */
|
|
68
|
+
setPreloaded(isPreloaded) { this._preloaded = isPreloaded; }
|
|
69
|
+
/** @returns {string} The foreign key for this relationship */
|
|
70
|
+
getForeignKey() { return this.getRelationship().getForeignKey(); }
|
|
71
|
+
/** @returns {import("../index.js").default} model */
|
|
72
|
+
getModel() { return this.model; }
|
|
73
|
+
/** @returns {string} The primary key for this relationship's model */
|
|
74
|
+
getPrimaryKey() { return this.getRelationship().getPrimaryKey(); }
|
|
75
|
+
/** @returns {import("../relationships/base.js").default} The relationship object that this instance relationship is based on */
|
|
76
|
+
getRelationship() { return this.relationship; }
|
|
77
|
+
/** @returns {typeof import("../index.js").default | undefined} The model class that this instance relationship */
|
|
78
|
+
getTargetModelClass() { return this.getRelationship().getTargetModelClass(); }
|
|
79
|
+
/** @returns {string} The type of relationship (e.g. "has_many", "belongs_to", etc.) */
|
|
80
|
+
getType() { return this.getRelationship().getType(); }
|
|
81
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"belongs-to.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/instance-relationships/belongs-to.js"],"names":[],"mappings":"AAIA;CAgCC;qCAlCoC,WAAW"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import BaseInstanceRelationship from "./base.js";
|
|
3
|
+
export default class VelociousDatabaseRecordBelongsToInstanceRelationship extends BaseInstanceRelationship {
|
|
4
|
+
/**
|
|
5
|
+
* @param {Record<string, any>} data
|
|
6
|
+
* @returns {import("../index.js").default}
|
|
7
|
+
*/
|
|
8
|
+
build(data) {
|
|
9
|
+
const TargetModelClass = this.getTargetModelClass();
|
|
10
|
+
if (!TargetModelClass)
|
|
11
|
+
throw new Error("Can't build a new record without a target model");
|
|
12
|
+
const newInstance = new TargetModelClass(data);
|
|
13
|
+
this._loaded = newInstance;
|
|
14
|
+
return newInstance;
|
|
15
|
+
}
|
|
16
|
+
getLoadedOrUndefined() { return this._loaded; }
|
|
17
|
+
async load() {
|
|
18
|
+
const foreignKey = this.getForeignKey();
|
|
19
|
+
const foreignModelID = this.getModel().readColumn(foreignKey);
|
|
20
|
+
const TargetModelClass = this.getTargetModelClass();
|
|
21
|
+
if (!TargetModelClass)
|
|
22
|
+
throw new Error("Can't load without a target model");
|
|
23
|
+
const foreignModel = await TargetModelClass.find(foreignModelID);
|
|
24
|
+
this.setLoaded(foreignModel);
|
|
25
|
+
this.setDirty(false);
|
|
26
|
+
this.setPreloaded(true);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export default class VelociousDatabaseRecordHasManyInstanceRelationship extends BaseInstanceRelationship {
|
|
2
|
+
/**
|
|
3
|
+
* @param {import("../index.js").default[]} models
|
|
4
|
+
*/
|
|
5
|
+
setLoaded(models: import("../index.js").default[]): void;
|
|
6
|
+
}
|
|
7
|
+
import BaseInstanceRelationship from "./base.js";
|
|
8
|
+
//# sourceMappingURL=has-many.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"has-many.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/instance-relationships/has-many.js"],"names":[],"mappings":"AAIA;IAuGE;;OAEG;IACH,kBAFW,OAAO,aAAa,EAAE,OAAO,EAAE,QAMzC;CACF;qCAjHoC,WAAW"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import BaseInstanceRelationship from "./base.js";
|
|
3
|
+
export default class VelociousDatabaseRecordHasManyInstanceRelationship extends BaseInstanceRelationship {
|
|
4
|
+
/**
|
|
5
|
+
* @param {Record<string, any>} data
|
|
6
|
+
* @returns {import("../index.js").default}
|
|
7
|
+
*/
|
|
8
|
+
build(data) {
|
|
9
|
+
// Spawn new model of the targeted class
|
|
10
|
+
const targetModelClass = this.getTargetModelClass();
|
|
11
|
+
if (!targetModelClass)
|
|
12
|
+
throw new Error("Can't build a new record without a taget model class");
|
|
13
|
+
const newInstance = new targetModelClass(data);
|
|
14
|
+
// Add it to the loaded models of this relationship
|
|
15
|
+
if (this._loaded === undefined) {
|
|
16
|
+
/** @type {import("../index.js").default[]} */
|
|
17
|
+
this._loaded = [newInstance];
|
|
18
|
+
}
|
|
19
|
+
else if (Array.isArray(this._loaded)) {
|
|
20
|
+
this._loaded.push(newInstance);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
throw new Error(`Loaded had an unexpected type: ${typeof this._loaded}`);
|
|
24
|
+
}
|
|
25
|
+
// Set loaded on the models inversed relationship
|
|
26
|
+
const inverseOf = this.getRelationship().getInverseOf();
|
|
27
|
+
if (inverseOf) {
|
|
28
|
+
const inverseInstanceRelationship = newInstance.getRelationshipByName(inverseOf);
|
|
29
|
+
inverseInstanceRelationship.setAutoSave(false);
|
|
30
|
+
inverseInstanceRelationship.setLoaded(this.getModel());
|
|
31
|
+
}
|
|
32
|
+
// Return the new contructed model
|
|
33
|
+
return newInstance;
|
|
34
|
+
}
|
|
35
|
+
async load() {
|
|
36
|
+
const foreignKey = this.getForeignKey();
|
|
37
|
+
const primaryKey = this.getPrimaryKey();
|
|
38
|
+
const primaryModelID = this.getModel().readColumn(primaryKey);
|
|
39
|
+
const TargetModelClass = this.getTargetModelClass();
|
|
40
|
+
if (!TargetModelClass)
|
|
41
|
+
throw new Error("Cannot load without a target model class");
|
|
42
|
+
/** @type {Record<string, any>} */
|
|
43
|
+
const whereArgs = {};
|
|
44
|
+
whereArgs[foreignKey] = primaryModelID;
|
|
45
|
+
const foreignModels = await TargetModelClass.where(whereArgs).toArray();
|
|
46
|
+
this.setLoaded(foreignModels);
|
|
47
|
+
this.setDirty(false);
|
|
48
|
+
this.setPreloaded(true);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @returns {import("../index.js").default | Array<import("../index.js").default> | undefined} The loaded model or models (depending on relationship type)
|
|
52
|
+
*/
|
|
53
|
+
loaded() {
|
|
54
|
+
if (!this._preloaded && this.model.isPersisted()) {
|
|
55
|
+
throw new Error(`${this.model.constructor.name}#${this.relationship.getRelationshipName()} hasn't been preloaded`);
|
|
56
|
+
}
|
|
57
|
+
if (this._loaded === undefined && this.model.isNewRecord()) {
|
|
58
|
+
return [];
|
|
59
|
+
}
|
|
60
|
+
return this._loaded;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* @param {import("../index.js").default[] | import("../index.js").default} models
|
|
64
|
+
* @returns {void}
|
|
65
|
+
*/
|
|
66
|
+
addToLoaded(models) {
|
|
67
|
+
if (!models) {
|
|
68
|
+
throw new Error("Need to give something");
|
|
69
|
+
}
|
|
70
|
+
else if (Array.isArray(models)) {
|
|
71
|
+
for (const model of models) {
|
|
72
|
+
if (this._loaded === undefined) {
|
|
73
|
+
this._loaded = [model];
|
|
74
|
+
}
|
|
75
|
+
else if (Array.isArray(this._loaded)) {
|
|
76
|
+
this._loaded.push(model);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
throw new Error(`Unexpected loaded type: ${typeof this._loaded}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
if (this._loaded === undefined) {
|
|
85
|
+
this._loaded = [models];
|
|
86
|
+
}
|
|
87
|
+
else if (Array.isArray(this._loaded)) {
|
|
88
|
+
this._loaded.push(models);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
throw new Error(`Unexpected loaded type: ${typeof this._loaded}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* @param {import("../index.js").default[]} models
|
|
97
|
+
*/
|
|
98
|
+
setLoaded(models) {
|
|
99
|
+
if (!Array.isArray(models))
|
|
100
|
+
throw new Error(`Argument given to setLoaded wasn't an array: ${typeof models}`);
|
|
101
|
+
this._loaded = models;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export default class VelociousDatabaseRecordHasOneInstanceRelationship extends BaseInstanceRelationship {
|
|
2
|
+
/** @type {import("../index.js").default | undefined} */
|
|
3
|
+
_loaded: import("../index.js").default | undefined;
|
|
4
|
+
getLoadedOrUndefined(): import("../index.js").default;
|
|
5
|
+
}
|
|
6
|
+
import BaseInstanceRelationship from "./base.js";
|
|
7
|
+
//# sourceMappingURL=has-one.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"has-one.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/instance-relationships/has-one.js"],"names":[],"mappings":"AAIA;IACE,wDAAwD;IACxD,SADW,OAAO,aAAa,EAAE,OAAO,GAAG,SAAS,CACjC;IAiDnB,sDAA8C;CAU/C;qCA/DoC,WAAW"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import BaseInstanceRelationship from "./base.js";
|
|
3
|
+
export default class VelociousDatabaseRecordHasOneInstanceRelationship extends BaseInstanceRelationship {
|
|
4
|
+
/** @type {import("../index.js").default | undefined} */
|
|
5
|
+
_loaded = undefined;
|
|
6
|
+
/**
|
|
7
|
+
* @param {Record<string, any>} data
|
|
8
|
+
* @returns {import("../index.js").default}
|
|
9
|
+
*/
|
|
10
|
+
build(data) {
|
|
11
|
+
const TargetModelClass = this.getTargetModelClass();
|
|
12
|
+
if (!TargetModelClass)
|
|
13
|
+
throw new Error("Can't build a new record without a target model class");
|
|
14
|
+
const newInstance = new TargetModelClass(data);
|
|
15
|
+
this._loaded = newInstance;
|
|
16
|
+
return newInstance;
|
|
17
|
+
}
|
|
18
|
+
async load() {
|
|
19
|
+
const foreignKey = this.getForeignKey();
|
|
20
|
+
const primaryKey = this.getPrimaryKey();
|
|
21
|
+
const primaryModelID = this.getModel().readColumn(primaryKey);
|
|
22
|
+
const TargetModelClass = this.getTargetModelClass();
|
|
23
|
+
if (!TargetModelClass)
|
|
24
|
+
throw new Error("Can't load without a target model class");
|
|
25
|
+
/** @type {Record<string, any>} */
|
|
26
|
+
const whereArgs = {};
|
|
27
|
+
whereArgs[foreignKey] = primaryModelID;
|
|
28
|
+
const foreignModel = await TargetModelClass.where(whereArgs).first();
|
|
29
|
+
this.setLoaded(foreignModel);
|
|
30
|
+
this.setDirty(false);
|
|
31
|
+
this.setPreloaded(true);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* @returns {import("../index.js").default | Array<import("../index.js").default> | undefined} The loaded model or models (depending on relationship type)
|
|
35
|
+
*/
|
|
36
|
+
loaded() {
|
|
37
|
+
if (!this._preloaded && this.model.isPersisted()) {
|
|
38
|
+
throw new Error(`${this.model.constructor.name}#${this.relationship.getRelationshipName()} hasn't been preloaded`);
|
|
39
|
+
}
|
|
40
|
+
return this._loaded;
|
|
41
|
+
}
|
|
42
|
+
getLoadedOrUndefined() { return this._loaded; }
|
|
43
|
+
/** @param {import("../index.js").default|Array<import("../index.js").default>} model */
|
|
44
|
+
setLoaded(model) {
|
|
45
|
+
if (Array.isArray(model))
|
|
46
|
+
throw new Error(`Argument given to setLoaded was an array: ${typeof model}`);
|
|
47
|
+
this._loaded = model;
|
|
48
|
+
}
|
|
49
|
+
getTargetModelClass() { return this.relationship.getTargetModelClass(); }
|
|
50
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-not-found-error.d.ts","sourceRoot":"","sources":["../../../../src/database/record/record-not-found-error.js"],"names":[],"mappings":"AAEA;CAAyD"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {object} RelationshipBaseArgsType
|
|
3
|
+
* @property {string} [className]
|
|
4
|
+
* @property {string} [dependent]
|
|
5
|
+
* @property {string | undefined} [foreignKey]
|
|
6
|
+
* @property {string} [inverseOf]
|
|
7
|
+
* @property {typeof import("../index.js").default} [klass]
|
|
8
|
+
* @property {typeof import("../index.js").default} modelClass
|
|
9
|
+
* @property {string} [primaryKey]
|
|
10
|
+
* @property {boolean} [polymorphic]
|
|
11
|
+
* @property {string} relationshipName
|
|
12
|
+
* @property {string} [through]
|
|
13
|
+
* @property {string} type
|
|
14
|
+
*/
|
|
15
|
+
export default class VelociousDatabaseRecordBaseRelationship {
|
|
16
|
+
/** @param {RelationshipBaseArgsType} args */
|
|
17
|
+
constructor({ className, dependent, foreignKey, inverseOf, klass, modelClass, primaryKey, polymorphic, relationshipName, through, type, ...restArgs }: RelationshipBaseArgsType);
|
|
18
|
+
className: string;
|
|
19
|
+
_dependent: string;
|
|
20
|
+
foreignKey: string;
|
|
21
|
+
_inverseOf: string;
|
|
22
|
+
klass: typeof import("../index.js").default;
|
|
23
|
+
modelClass: typeof import("../index.js").default;
|
|
24
|
+
_polymorphic: boolean;
|
|
25
|
+
_primaryKey: string;
|
|
26
|
+
relationshipName: string;
|
|
27
|
+
through: string;
|
|
28
|
+
type: string;
|
|
29
|
+
getConfiguration(): import("../../../configuration.js").default;
|
|
30
|
+
/** @returns {string | undefined} What will be done when the parent record is destroyed. E.g. "destroy", "nullify", "restrict" etc. */
|
|
31
|
+
getDependent(): string | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* @abstract
|
|
34
|
+
* @returns {string} The name of the foreign key, e.g. "user_id", "post_id" etc.
|
|
35
|
+
*/
|
|
36
|
+
getForeignKey(): string;
|
|
37
|
+
/**
|
|
38
|
+
* @abstract
|
|
39
|
+
* @returns {string | undefined} The name of the inverse relationship, e.g. "posts", "comments" etc.
|
|
40
|
+
*/
|
|
41
|
+
getInverseOf(): string | undefined;
|
|
42
|
+
/** @returns {typeof import("../index.js").default} */
|
|
43
|
+
getModelClass(): typeof import("../index.js").default;
|
|
44
|
+
/** @returns {string} The name of the relationship, e.g. "posts", "user", "comments" etc. */
|
|
45
|
+
getRelationshipName(): string;
|
|
46
|
+
/** @returns {boolean} */
|
|
47
|
+
getPolymorphic(): boolean;
|
|
48
|
+
/** @returns {string} The name of the foreign key, e.g. "id" etc. */
|
|
49
|
+
getPrimaryKey(): string;
|
|
50
|
+
/** @returns {string} The type of the relationship, e.g. "has_many", "belongs_to", "has_one", "has_and_belongs_to_many" etc. */
|
|
51
|
+
getType(): string;
|
|
52
|
+
/** @returns {typeof import("../index.js").default | undefined} The target model class for this relationship, e.g. if the relationship is "posts" then the target model class is the Post class. */
|
|
53
|
+
getTargetModelClass(): typeof import("../index.js").default | undefined;
|
|
54
|
+
}
|
|
55
|
+
export type RelationshipBaseArgsType = {
|
|
56
|
+
className?: string;
|
|
57
|
+
dependent?: string;
|
|
58
|
+
foreignKey?: string | undefined;
|
|
59
|
+
inverseOf?: string;
|
|
60
|
+
klass?: typeof import("../index.js").default;
|
|
61
|
+
modelClass: typeof import("../index.js").default;
|
|
62
|
+
primaryKey?: string;
|
|
63
|
+
polymorphic?: boolean;
|
|
64
|
+
relationshipName: string;
|
|
65
|
+
through?: string;
|
|
66
|
+
type: string;
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/relationships/base.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH;IACE,6CAA6C;IAC7C,uJADY,wBAAwB,EAkBnC;IAXC,kBAA0B;IAC1B,mBAA2B;IAC3B,mBAA4B;IAC5B,mBAA2B;IAC3B,4CAAkB;IAClB,iDAA4B;IAC5B,sBAA+B;IAC/B,oBAA6B;IAC7B,yBAAwC;IACxC,gBAAsB;IACtB,aAAgB;IAGlB,gEAAiE;IAEjE,sIAAsI;IACtI,gBADc,MAAM,GAAG,SAAS,CACS;IAEzC;;;OAGG;IACH,iBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,gBAFa,MAAM,GAAG,SAAS,CAI9B;IAED,sDAAsD;IACtD,iBADc,cAAc,aAAa,EAAE,OAAO,CACR;IAE1C,4FAA4F;IAC5F,uBADc,MAAM,CACkC;IAEtD,yBAAyB;IACzB,kBADc,OAAO,CAGpB;IAED,oEAAoE;IACpE,iBADc,MAAM,CACuB;IAE3C,+HAA+H;IAC/H,WADc,MAAM,CACU;IAE9B,mMAAmM;IACnM,uBADc,cAAc,aAAa,EAAE,OAAO,GAAG,SAAS,CAW7D;CACF;;gBApFa,MAAM;gBACN,MAAM;iBACN,MAAM,GAAG,SAAS;gBAClB,MAAM;YACN,cAAc,aAAa,EAAE,OAAO;gBACpC,cAAc,aAAa,EAAE,OAAO;iBACpC,MAAM;kBACN,OAAO;sBACP,MAAM;cACN,MAAM;UACN,MAAM"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import restArgsError from "../../../utils/rest-args-error.js";
|
|
3
|
+
/**
|
|
4
|
+
* @typedef {object} RelationshipBaseArgsType
|
|
5
|
+
* @property {string} [className]
|
|
6
|
+
* @property {string} [dependent]
|
|
7
|
+
* @property {string | undefined} [foreignKey]
|
|
8
|
+
* @property {string} [inverseOf]
|
|
9
|
+
* @property {typeof import("../index.js").default} [klass]
|
|
10
|
+
* @property {typeof import("../index.js").default} modelClass
|
|
11
|
+
* @property {string} [primaryKey]
|
|
12
|
+
* @property {boolean} [polymorphic]
|
|
13
|
+
* @property {string} relationshipName
|
|
14
|
+
* @property {string} [through]
|
|
15
|
+
* @property {string} type
|
|
16
|
+
*/
|
|
17
|
+
export default class VelociousDatabaseRecordBaseRelationship {
|
|
18
|
+
/** @param {RelationshipBaseArgsType} args */
|
|
19
|
+
constructor({ className, dependent, foreignKey, inverseOf, klass, modelClass, primaryKey = "id", polymorphic, relationshipName, through, type, ...restArgs }) {
|
|
20
|
+
restArgsError(restArgs);
|
|
21
|
+
if (!modelClass)
|
|
22
|
+
throw new Error(`'modelClass' wasn't given for ${relationshipName}`);
|
|
23
|
+
if (!className && !klass)
|
|
24
|
+
throw new Error(`Neither 'className' or 'klass' was given for ${modelClass.name}#${relationshipName}`);
|
|
25
|
+
this.className = className;
|
|
26
|
+
this._dependent = dependent;
|
|
27
|
+
this.foreignKey = foreignKey;
|
|
28
|
+
this._inverseOf = inverseOf;
|
|
29
|
+
this.klass = klass;
|
|
30
|
+
this.modelClass = modelClass;
|
|
31
|
+
this._polymorphic = polymorphic;
|
|
32
|
+
this._primaryKey = primaryKey;
|
|
33
|
+
this.relationshipName = relationshipName;
|
|
34
|
+
this.through = through;
|
|
35
|
+
this.type = type;
|
|
36
|
+
}
|
|
37
|
+
getConfiguration() { return this.modelClass._getConfiguration(); }
|
|
38
|
+
/** @returns {string | undefined} What will be done when the parent record is destroyed. E.g. "destroy", "nullify", "restrict" etc. */
|
|
39
|
+
getDependent() { return this._dependent; }
|
|
40
|
+
/**
|
|
41
|
+
* @abstract
|
|
42
|
+
* @returns {string} The name of the foreign key, e.g. "user_id", "post_id" etc.
|
|
43
|
+
*/
|
|
44
|
+
getForeignKey() {
|
|
45
|
+
throw new Error("getForeignKey not implemented");
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @abstract
|
|
49
|
+
* @returns {string | undefined} The name of the inverse relationship, e.g. "posts", "comments" etc.
|
|
50
|
+
*/
|
|
51
|
+
getInverseOf() {
|
|
52
|
+
throw new Error("getInverseOf not implemented");
|
|
53
|
+
}
|
|
54
|
+
/** @returns {typeof import("../index.js").default} */
|
|
55
|
+
getModelClass() { return this.modelClass; }
|
|
56
|
+
/** @returns {string} The name of the relationship, e.g. "posts", "user", "comments" etc. */
|
|
57
|
+
getRelationshipName() { return this.relationshipName; }
|
|
58
|
+
/** @returns {boolean} */
|
|
59
|
+
getPolymorphic() {
|
|
60
|
+
return this._polymorphic || false;
|
|
61
|
+
}
|
|
62
|
+
/** @returns {string} The name of the foreign key, e.g. "id" etc. */
|
|
63
|
+
getPrimaryKey() { return this._primaryKey; }
|
|
64
|
+
/** @returns {string} The type of the relationship, e.g. "has_many", "belongs_to", "has_one", "has_and_belongs_to_many" etc. */
|
|
65
|
+
getType() { return this.type; }
|
|
66
|
+
/** @returns {typeof import("../index.js").default | undefined} The target model class for this relationship, e.g. if the relationship is "posts" then the target model class is the Post class. */
|
|
67
|
+
getTargetModelClass() {
|
|
68
|
+
if (this.getPolymorphic()) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
else if (this.className) {
|
|
72
|
+
return this.getConfiguration().getModelClass(this.className);
|
|
73
|
+
}
|
|
74
|
+
else if (this.klass) {
|
|
75
|
+
return this.klass;
|
|
76
|
+
}
|
|
77
|
+
throw new Error("Couldn't figure out the target model class");
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"belongs-to.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/relationships/belongs-to.js"],"names":[],"mappings":"AAKA;IAiBM,yCAA2C;CAuBhD;6BA3C4B,WAAW"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import BaseRelationship from "./base.js";
|
|
3
|
+
import * as inflection from "inflection";
|
|
4
|
+
export default class VelociousDatabaseRecordBelongsToRelationship extends BaseRelationship {
|
|
5
|
+
/** @returns {string} */
|
|
6
|
+
getForeignKey() {
|
|
7
|
+
if (!this.foreignKey) {
|
|
8
|
+
const targetModelClass = this.getTargetModelClass();
|
|
9
|
+
if (!targetModelClass)
|
|
10
|
+
throw new Error("Can't calculate foreign key without a target model class");
|
|
11
|
+
this.foreignKey = `${inflection.underscore(targetModelClass.name)}_id`;
|
|
12
|
+
}
|
|
13
|
+
return this.foreignKey;
|
|
14
|
+
}
|
|
15
|
+
/** @returns {string | undefined} */
|
|
16
|
+
getInverseOf() {
|
|
17
|
+
if (!this._inverseOf && !this._autoGenerateInverseOfAttempted) {
|
|
18
|
+
this._autoGenerateInverseOfAttempted = true;
|
|
19
|
+
// Only make auto-inverse-of if the relationships name matches the target model class's name
|
|
20
|
+
const targetClassSimpleName = `${this.getRelationshipName().substring(0, 1).toUpperCase()}${this.getRelationshipName().substring(1, this.getRelationshipName().length)}`;
|
|
21
|
+
const targetModelClass = this.getTargetModelClass();
|
|
22
|
+
if (targetModelClass && targetClassSimpleName == targetModelClass.name) {
|
|
23
|
+
// Only make auto-inverse-of if the expected relationship exist in a has-one or has-many form
|
|
24
|
+
const targetClassRelationshipNames = targetModelClass.getRelationshipNames();
|
|
25
|
+
const autoGeneratedHasOneInverseOfName = `${this.modelClass.name.substring(0, 1).toLowerCase()}${this.modelClass.name.substring(1, this.modelClass.name.length)}`;
|
|
26
|
+
const autoGeneratedHasManyInverseOfName = inflection.pluralize(autoGeneratedHasOneInverseOfName);
|
|
27
|
+
if (targetClassRelationshipNames.includes(autoGeneratedHasOneInverseOfName)) {
|
|
28
|
+
this._inverseOf = autoGeneratedHasOneInverseOfName;
|
|
29
|
+
}
|
|
30
|
+
else if (targetClassRelationshipNames.includes(autoGeneratedHasManyInverseOfName)) {
|
|
31
|
+
this._inverseOf = autoGeneratedHasManyInverseOfName;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return this._inverseOf;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"has-many.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/relationships/has-many.js"],"names":[],"mappings":"AAKA;IAaM,yCAA2C;CAoBhD;6BApC4B,WAAW"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import BaseRelationship from "./base.js";
|
|
3
|
+
import * as inflection from "inflection";
|
|
4
|
+
export default class VelociousDatabaseRecordHasManyRelationship extends BaseRelationship {
|
|
5
|
+
/** @returns {string} */
|
|
6
|
+
getForeignKey() {
|
|
7
|
+
if (!this.foreignKey) {
|
|
8
|
+
this.foreignKey = `${inflection.underscore(this.modelClass.name)}_id`;
|
|
9
|
+
}
|
|
10
|
+
return this.foreignKey;
|
|
11
|
+
}
|
|
12
|
+
/** @returns {string | undefined} */
|
|
13
|
+
getInverseOf() {
|
|
14
|
+
if (!this._inverseOf && !this._autoGenerateInverseOfAttempted) {
|
|
15
|
+
this._autoGenerateInverseOfAttempted = true;
|
|
16
|
+
// Only make auto-inverse-of if the relationships name matches the target model class's name
|
|
17
|
+
const targetClassSimpleName = inflection.singularize(`${this.getRelationshipName().substring(0, 1).toUpperCase()}${this.getRelationshipName().substring(1, this.getRelationshipName().length)}`);
|
|
18
|
+
const targetModelClass = this.getTargetModelClass();
|
|
19
|
+
if (targetModelClass && targetClassSimpleName == targetModelClass.name) {
|
|
20
|
+
// Only make auto-inverse-of if the expected relationship exist in a has-one or has-many form
|
|
21
|
+
const targetClassRelationshipNames = targetModelClass.getRelationshipNames();
|
|
22
|
+
const autoGeneratedBelongsToInverseOfName = `${this.modelClass.name.substring(0, 1).toLowerCase()}${this.modelClass.name.substring(1, this.modelClass.name.length)}`;
|
|
23
|
+
if (targetClassRelationshipNames.includes(autoGeneratedBelongsToInverseOfName)) {
|
|
24
|
+
this._inverseOf = autoGeneratedBelongsToInverseOfName;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return this._inverseOf;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"has-one.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/relationships/has-one.js"],"names":[],"mappings":"AAKA;IAaM,yCAA2C;CAoBhD;6BApC4B,WAAW"}
|