@uql/core 1.0.12 → 3.1.0
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/CHANGELOG.md +254 -0
- package/LICENSE.md +2 -2
- package/dist/browser/http/bus.d.ts +3 -0
- package/dist/browser/http/bus.js +14 -0
- package/dist/browser/http/http.d.ts +6 -0
- package/dist/browser/http/http.js +45 -0
- package/dist/browser/http/index.d.ts +2 -0
- package/dist/browser/http/index.js +3 -0
- package/dist/browser/index.d.ts +4 -0
- package/dist/browser/index.js +5 -0
- package/dist/browser/options.d.ts +4 -0
- package/dist/browser/options.js +14 -0
- package/dist/browser/querier/genericClientRepository.d.ts +17 -0
- package/dist/browser/querier/genericClientRepository.js +39 -0
- package/dist/browser/querier/httpQuerier.d.ts +20 -0
- package/dist/browser/querier/httpQuerier.js +71 -0
- package/dist/browser/querier/index.d.ts +3 -0
- package/dist/browser/querier/index.js +4 -0
- package/dist/browser/querier/querier.util.d.ts +2 -0
- package/dist/browser/querier/querier.util.js +17 -0
- package/dist/browser/type/clientQuerier.d.ts +16 -0
- package/dist/browser/type/clientQuerier.js +2 -0
- package/dist/browser/type/clientQuerierPool.d.ts +4 -0
- package/dist/browser/type/clientQuerierPool.js +2 -0
- package/dist/browser/type/clientRepository.d.ts +13 -0
- package/dist/browser/type/clientRepository.js +2 -0
- package/dist/browser/type/index.d.ts +4 -0
- package/dist/browser/type/index.js +5 -0
- package/dist/browser/type/request.d.ts +28 -0
- package/dist/browser/type/request.js +2 -0
- package/dist/browser/uql-browser.min.js +2150 -0
- package/dist/browser/uql-browser.min.js.map +1 -0
- package/dist/dialect/abstractDialect.d.ts +16 -0
- package/dist/dialect/abstractDialect.js +28 -0
- package/dist/dialect/abstractSqlDialect.d.ts +47 -0
- package/dist/dialect/abstractSqlDialect.js +650 -0
- package/dist/dialect/index.d.ts +3 -0
- package/dist/dialect/index.js +4 -0
- package/dist/dialect/queryContext.d.ts +48 -0
- package/dist/dialect/queryContext.js +65 -0
- package/{entity → dist/entity}/decorator/definition.d.ts +3 -3
- package/dist/entity/decorator/definition.js +214 -0
- package/{entity → dist/entity}/decorator/entity.d.ts +1 -1
- package/dist/entity/decorator/entity.js +7 -0
- package/{entity → dist/entity}/decorator/field.d.ts +1 -1
- package/dist/entity/decorator/field.js +8 -0
- package/{entity → dist/entity}/decorator/id.d.ts +1 -1
- package/dist/entity/decorator/id.js +8 -0
- package/dist/entity/decorator/index.d.ts +5 -0
- package/dist/entity/decorator/index.js +6 -0
- package/{entity → dist/entity}/decorator/relation.d.ts +1 -1
- package/dist/entity/decorator/relation.js +20 -0
- package/dist/entity/index.d.ts +1 -0
- package/dist/entity/index.js +2 -0
- package/dist/express/index.d.ts +2 -0
- package/dist/express/index.js +3 -0
- package/dist/express/querierMiddleware.d.ts +26 -0
- package/dist/express/querierMiddleware.js +190 -0
- package/dist/express/query.util.d.ts +2 -0
- package/dist/express/query.util.js +19 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +10 -0
- package/dist/maria/index.d.ts +3 -0
- package/dist/maria/index.js +4 -0
- package/dist/maria/mariaDialect.d.ts +8 -0
- package/dist/maria/mariaDialect.js +38 -0
- package/dist/maria/mariaQuerierPool.test.d.ts +5 -0
- package/dist/maria/mariaQuerierPool.test.js +19 -0
- package/dist/maria/mariadbQuerier.d.ts +17 -0
- package/dist/maria/mariadbQuerier.js +39 -0
- package/dist/maria/mariadbQuerier.test.d.ts +4 -0
- package/dist/maria/mariadbQuerier.test.js +19 -0
- package/dist/maria/mariadbQuerierPool.d.ts +10 -0
- package/dist/maria/mariadbQuerierPool.js +17 -0
- package/dist/migrate/cli.d.ts +2 -0
- package/dist/migrate/cli.js +254 -0
- package/dist/migrate/generator/index.d.ts +4 -0
- package/dist/migrate/generator/index.js +5 -0
- package/dist/migrate/generator/mongoSchemaGenerator.d.ts +12 -0
- package/dist/migrate/generator/mongoSchemaGenerator.js +100 -0
- package/dist/migrate/generator/mysqlSchemaGenerator.d.ts +14 -0
- package/dist/migrate/generator/mysqlSchemaGenerator.js +81 -0
- package/dist/migrate/generator/postgresSchemaGenerator.d.ts +18 -0
- package/dist/migrate/generator/postgresSchemaGenerator.js +111 -0
- package/dist/migrate/generator/sqliteSchemaGenerator.d.ts +14 -0
- package/dist/migrate/generator/sqliteSchemaGenerator.js +68 -0
- package/dist/migrate/index.d.ts +12 -0
- package/dist/migrate/index.js +17 -0
- package/dist/migrate/introspection/index.d.ts +4 -0
- package/dist/migrate/introspection/index.js +5 -0
- package/dist/migrate/introspection/mongoIntrospector.d.ts +8 -0
- package/dist/migrate/introspection/mongoIntrospector.js +46 -0
- package/dist/migrate/introspection/mysqlIntrospector.d.ts +25 -0
- package/dist/migrate/introspection/mysqlIntrospector.js +220 -0
- package/dist/migrate/introspection/postgresIntrospector.d.ts +21 -0
- package/dist/migrate/introspection/postgresIntrospector.js +269 -0
- package/dist/migrate/introspection/sqliteIntrospector.d.ts +23 -0
- package/dist/migrate/introspection/sqliteIntrospector.js +212 -0
- package/dist/migrate/migrator-mongo.test.d.ts +1 -0
- package/dist/migrate/migrator-mongo.test.js +54 -0
- package/dist/migrate/migrator.d.ts +133 -0
- package/dist/migrate/migrator.js +600 -0
- package/dist/migrate/migrator.test.d.ts +1 -0
- package/dist/migrate/migrator.test.js +106 -0
- package/dist/migrate/schemaGenerator.d.ts +78 -0
- package/dist/migrate/schemaGenerator.js +363 -0
- package/dist/migrate/storage/databaseStorage.d.ts +24 -0
- package/dist/migrate/storage/databaseStorage.js +77 -0
- package/dist/migrate/storage/index.d.ts +2 -0
- package/dist/migrate/storage/index.js +3 -0
- package/dist/migrate/storage/jsonStorage.d.ts +15 -0
- package/dist/migrate/storage/jsonStorage.js +51 -0
- package/dist/migrate/type.d.ts +1 -0
- package/dist/migrate/type.js +2 -0
- package/dist/mongo/index.d.ts +3 -0
- package/dist/mongo/index.js +4 -0
- package/dist/mongo/mongoDialect.d.ts +34 -0
- package/dist/mongo/mongoDialect.js +163 -0
- package/dist/mongo/mongodbQuerier.d.ts +28 -0
- package/dist/mongo/mongodbQuerier.js +204 -0
- package/dist/mongo/mongodbQuerier.test.d.ts +1 -0
- package/dist/mongo/mongodbQuerier.test.js +36 -0
- package/dist/mongo/mongodbQuerierPool.d.ts +10 -0
- package/dist/mongo/mongodbQuerierPool.js +20 -0
- package/dist/mongo/mongodbQuerierPool.test.d.ts +1 -0
- package/dist/mongo/mongodbQuerierPool.test.js +21 -0
- package/dist/mysql/index.d.ts +3 -0
- package/dist/mysql/index.js +4 -0
- package/dist/mysql/mysql2Querier.d.ts +17 -0
- package/dist/mysql/mysql2Querier.js +43 -0
- package/dist/mysql/mysql2Querier.test.d.ts +4 -0
- package/dist/mysql/mysql2Querier.test.js +16 -0
- package/dist/mysql/mysql2QuerierPool.d.ts +10 -0
- package/dist/mysql/mysql2QuerierPool.js +17 -0
- package/dist/mysql/mysql2QuerierPool.test.d.ts +5 -0
- package/dist/mysql/mysql2QuerierPool.test.js +16 -0
- package/dist/mysql/mysqlDialect.d.ts +5 -0
- package/dist/mysql/mysqlDialect.js +15 -0
- package/dist/namingStrategy/defaultNamingStrategy.d.ts +9 -0
- package/dist/namingStrategy/defaultNamingStrategy.js +15 -0
- package/dist/namingStrategy/index.d.ts +2 -0
- package/dist/namingStrategy/index.js +3 -0
- package/dist/namingStrategy/snakeCaseNamingStrategy.d.ts +8 -0
- package/dist/namingStrategy/snakeCaseNamingStrategy.js +14 -0
- package/{options.d.ts → dist/options.d.ts} +1 -1
- package/dist/options.js +14 -0
- package/dist/package.json +131 -0
- package/dist/postgres/index.d.ts +3 -0
- package/dist/postgres/index.js +4 -0
- package/dist/postgres/pgQuerier.d.ts +17 -0
- package/dist/postgres/pgQuerier.js +39 -0
- package/dist/postgres/pgQuerier.test.d.ts +4 -0
- package/dist/postgres/pgQuerier.test.js +20 -0
- package/dist/postgres/pgQuerierPool.d.ts +10 -0
- package/dist/postgres/pgQuerierPool.js +17 -0
- package/dist/postgres/pgQuerierPool.test.d.ts +5 -0
- package/dist/postgres/pgQuerierPool.test.js +23 -0
- package/dist/postgres/postgresDialect.d.ts +13 -0
- package/dist/postgres/postgresDialect.js +110 -0
- package/dist/querier/abstractQuerier-test.d.ts +45 -0
- package/dist/querier/abstractQuerier-test.js +461 -0
- package/dist/querier/abstractQuerier.d.ts +50 -0
- package/dist/querier/abstractQuerier.js +278 -0
- package/dist/querier/abstractQuerierPool-test.d.ts +9 -0
- package/dist/querier/abstractQuerierPool-test.js +18 -0
- package/dist/querier/abstractQuerierPool.d.ts +14 -0
- package/dist/querier/abstractQuerierPool.js +9 -0
- package/dist/querier/abstractSqlQuerier-test.d.ts +9 -0
- package/dist/querier/abstractSqlQuerier-test.js +16 -0
- package/dist/querier/abstractSqlQuerier.d.ts +28 -0
- package/dist/querier/abstractSqlQuerier.js +133 -0
- package/dist/querier/decorator/index.d.ts +3 -0
- package/dist/querier/decorator/index.js +4 -0
- package/dist/querier/decorator/injectQuerier.d.ts +3 -0
- package/dist/querier/decorator/injectQuerier.js +33 -0
- package/dist/querier/decorator/serialized.d.ts +6 -0
- package/dist/querier/decorator/serialized.js +14 -0
- package/{querier → dist/querier}/decorator/transactional.d.ts +1 -1
- package/dist/querier/decorator/transactional.js +48 -0
- package/dist/querier/index.d.ts +4 -0
- package/dist/querier/index.js +5 -0
- package/dist/repository/genericRepository.d.ts +20 -0
- package/dist/repository/genericRepository.js +51 -0
- package/dist/repository/index.d.ts +1 -0
- package/dist/repository/index.js +2 -0
- package/dist/sqlite/index.d.ts +3 -0
- package/dist/sqlite/index.js +4 -0
- package/dist/sqlite/sqliteDialect.d.ts +10 -0
- package/dist/sqlite/sqliteDialect.js +48 -0
- package/dist/sqlite/sqliteQuerier.d.ts +15 -0
- package/dist/sqlite/sqliteQuerier.js +33 -0
- package/dist/sqlite/sqliteQuerier.test.d.ts +5 -0
- package/dist/sqlite/sqliteQuerier.test.js +19 -0
- package/dist/sqlite/sqliteQuerierPool.d.ts +14 -0
- package/dist/sqlite/sqliteQuerierPool.js +34 -0
- package/dist/sqlite/sqliteQuerierPool.test.d.ts +5 -0
- package/dist/sqlite/sqliteQuerierPool.test.js +10 -0
- package/dist/test/entityMock.d.ts +164 -0
- package/dist/test/entityMock.js +554 -0
- package/dist/test/index.d.ts +3 -0
- package/dist/test/index.js +4 -0
- package/dist/test/it.util.d.ts +4 -0
- package/dist/test/it.util.js +55 -0
- package/dist/test/spec.util.d.ts +14 -0
- package/dist/test/spec.util.js +50 -0
- package/{type → dist/type}/entity.d.ts +97 -4
- package/dist/type/entity.js +5 -0
- package/dist/type/index.d.ts +9 -0
- package/dist/type/index.js +10 -0
- package/dist/type/migration.d.ts +213 -0
- package/dist/type/migration.js +2 -0
- package/dist/type/namingStrategy.d.ts +17 -0
- package/dist/type/namingStrategy.js +2 -0
- package/dist/type/querier.d.ts +96 -0
- package/dist/type/querier.js +11 -0
- package/{type → dist/type}/querierPool.d.ts +7 -3
- package/dist/type/querierPool.js +2 -0
- package/{type → dist/type}/query.d.ts +170 -108
- package/dist/type/query.js +9 -0
- package/{type → dist/type}/repository.d.ts +42 -35
- package/dist/type/repository.js +2 -0
- package/{type → dist/type}/universalQuerier.d.ts +50 -28
- package/dist/type/universalQuerier.js +2 -0
- package/dist/type/utility.d.ts +13 -0
- package/dist/type/utility.js +2 -0
- package/dist/util/dialect.util.d.ts +12 -0
- package/dist/util/dialect.util.js +93 -0
- package/dist/util/index.d.ts +5 -0
- package/dist/util/index.js +6 -0
- package/dist/util/object.util.d.ts +7 -0
- package/dist/util/object.util.js +19 -0
- package/dist/util/raw.d.ts +8 -0
- package/dist/util/raw.js +11 -0
- package/dist/util/sql.util.d.ts +13 -0
- package/dist/util/sql.util.js +78 -0
- package/{util → dist/util}/string.util.d.ts +1 -0
- package/dist/util/string.util.js +34 -0
- package/package.json +85 -17
- package/src/@types/index.d.ts +1 -0
- package/src/@types/jest.d.ts +6 -0
- package/src/browser/http/bus.spec.ts +22 -0
- package/src/browser/http/bus.ts +17 -0
- package/src/browser/http/http.spec.ts +70 -0
- package/src/browser/http/http.ts +55 -0
- package/src/browser/http/index.ts +2 -0
- package/src/browser/index.ts +4 -0
- package/src/browser/options.spec.ts +37 -0
- package/src/browser/options.ts +18 -0
- package/src/browser/querier/genericClientRepository.spec.ts +105 -0
- package/src/browser/querier/genericClientRepository.ts +49 -0
- package/src/browser/querier/httpQuerier.ts +82 -0
- package/src/browser/querier/index.ts +3 -0
- package/src/browser/querier/querier.util.spec.ts +35 -0
- package/src/browser/querier/querier.util.ts +18 -0
- package/src/browser/type/clientQuerier.ts +45 -0
- package/src/browser/type/clientQuerierPool.ts +5 -0
- package/src/browser/type/clientRepository.ts +22 -0
- package/src/browser/type/index.ts +4 -0
- package/src/browser/type/request.ts +25 -0
- package/src/dialect/abstractDialect.ts +28 -0
- package/src/dialect/abstractSqlDialect-spec.ts +1309 -0
- package/src/dialect/abstractSqlDialect.ts +805 -0
- package/src/dialect/index.ts +3 -0
- package/src/dialect/namingStrategy.spec.ts +52 -0
- package/src/dialect/queryContext.ts +69 -0
- package/src/entity/decorator/definition.spec.ts +736 -0
- package/src/entity/decorator/definition.ts +265 -0
- package/src/entity/decorator/entity.ts +8 -0
- package/src/entity/decorator/field.ts +9 -0
- package/src/entity/decorator/id.ts +9 -0
- package/src/entity/decorator/index.ts +5 -0
- package/src/entity/decorator/relation.spec.ts +41 -0
- package/src/entity/decorator/relation.ts +34 -0
- package/src/entity/index.ts +1 -0
- package/src/express/@types/express.d.ts +8 -0
- package/src/express/@types/index.d.ts +1 -0
- package/src/express/index.ts +2 -0
- package/src/express/querierMiddleware.ts +217 -0
- package/src/express/query.util.spec.ts +40 -0
- package/src/express/query.util.ts +21 -0
- package/src/index.ts +9 -0
- package/src/maria/index.ts +3 -0
- package/src/maria/mariaDialect.spec.ts +207 -0
- package/src/maria/mariaDialect.ts +42 -0
- package/src/maria/mariaQuerierPool.test.ts +23 -0
- package/src/maria/mariadbQuerier.test.ts +23 -0
- package/src/maria/mariadbQuerier.ts +45 -0
- package/src/maria/mariadbQuerierPool.ts +21 -0
- package/src/migrate/cli.ts +301 -0
- package/src/migrate/generator/index.ts +4 -0
- package/src/migrate/generator/mongoSchemaGenerator.spec.ts +112 -0
- package/src/migrate/generator/mongoSchemaGenerator.ts +115 -0
- package/src/migrate/generator/mysqlSchemaGenerator.spec.ts +34 -0
- package/src/migrate/generator/mysqlSchemaGenerator.ts +92 -0
- package/src/migrate/generator/postgresSchemaGenerator.spec.ts +44 -0
- package/src/migrate/generator/postgresSchemaGenerator.ts +127 -0
- package/src/migrate/generator/sqliteSchemaGenerator.spec.ts +33 -0
- package/src/migrate/generator/sqliteSchemaGenerator.ts +81 -0
- package/src/migrate/index.ts +41 -0
- package/src/migrate/introspection/index.ts +4 -0
- package/src/migrate/introspection/mongoIntrospector.spec.ts +75 -0
- package/src/migrate/introspection/mongoIntrospector.ts +47 -0
- package/src/migrate/introspection/mysqlIntrospector.spec.ts +113 -0
- package/src/migrate/introspection/mysqlIntrospector.ts +278 -0
- package/src/migrate/introspection/postgresIntrospector.spec.ts +112 -0
- package/src/migrate/introspection/postgresIntrospector.ts +329 -0
- package/src/migrate/introspection/sqliteIntrospector.spec.ts +112 -0
- package/src/migrate/introspection/sqliteIntrospector.ts +296 -0
- package/src/migrate/migrator-mongo.test.ts +54 -0
- package/src/migrate/migrator.spec.ts +255 -0
- package/src/migrate/migrator.test.ts +94 -0
- package/src/migrate/migrator.ts +719 -0
- package/src/migrate/namingStrategy.spec.ts +22 -0
- package/src/migrate/schemaGenerator-advanced.spec.ts +138 -0
- package/src/migrate/schemaGenerator.spec.ts +190 -0
- package/src/migrate/schemaGenerator.ts +478 -0
- package/src/migrate/storage/databaseStorage.spec.ts +69 -0
- package/src/migrate/storage/databaseStorage.ts +100 -0
- package/src/migrate/storage/index.ts +2 -0
- package/src/migrate/storage/jsonStorage.ts +58 -0
- package/src/migrate/type.ts +1 -0
- package/src/mongo/index.ts +3 -0
- package/src/mongo/mongoDialect.spec.ts +251 -0
- package/src/mongo/mongoDialect.ts +238 -0
- package/src/mongo/mongodbQuerier.test.ts +45 -0
- package/src/mongo/mongodbQuerier.ts +256 -0
- package/src/mongo/mongodbQuerierPool.test.ts +25 -0
- package/src/mongo/mongodbQuerierPool.ts +24 -0
- package/src/mysql/index.ts +3 -0
- package/src/mysql/mysql2Querier.test.ts +20 -0
- package/src/mysql/mysql2Querier.ts +49 -0
- package/src/mysql/mysql2QuerierPool.test.ts +20 -0
- package/src/mysql/mysql2QuerierPool.ts +21 -0
- package/src/mysql/mysqlDialect.spec.ts +20 -0
- package/src/mysql/mysqlDialect.ts +16 -0
- package/src/namingStrategy/defaultNamingStrategy.ts +18 -0
- package/src/namingStrategy/index.spec.ts +36 -0
- package/src/namingStrategy/index.ts +2 -0
- package/src/namingStrategy/snakeCaseNamingStrategy.ts +15 -0
- package/src/options.spec.ts +41 -0
- package/src/options.ts +18 -0
- package/src/postgres/index.ts +3 -0
- package/src/postgres/manual-types.d.ts +4 -0
- package/src/postgres/pgQuerier.test.ts +25 -0
- package/src/postgres/pgQuerier.ts +45 -0
- package/src/postgres/pgQuerierPool.test.ts +28 -0
- package/src/postgres/pgQuerierPool.ts +21 -0
- package/src/postgres/postgresDialect.spec.ts +428 -0
- package/src/postgres/postgresDialect.ts +144 -0
- package/src/querier/abstractQuerier-test.ts +584 -0
- package/src/querier/abstractQuerier.ts +353 -0
- package/src/querier/abstractQuerierPool-test.ts +20 -0
- package/src/querier/abstractQuerierPool.ts +18 -0
- package/src/querier/abstractSqlQuerier-spec.ts +979 -0
- package/src/querier/abstractSqlQuerier-test.ts +21 -0
- package/src/querier/abstractSqlQuerier.ts +138 -0
- package/src/querier/decorator/index.ts +3 -0
- package/src/querier/decorator/injectQuerier.spec.ts +74 -0
- package/src/querier/decorator/injectQuerier.ts +45 -0
- package/src/querier/decorator/serialized.spec.ts +98 -0
- package/src/querier/decorator/serialized.ts +13 -0
- package/src/querier/decorator/transactional.spec.ts +240 -0
- package/src/querier/decorator/transactional.ts +56 -0
- package/src/querier/index.ts +4 -0
- package/src/repository/genericRepository.spec.ts +111 -0
- package/src/repository/genericRepository.ts +74 -0
- package/src/repository/index.ts +1 -0
- package/src/sqlite/index.ts +3 -0
- package/src/sqlite/manual-types.d.ts +4 -0
- package/src/sqlite/sqliteDialect.spec.ts +155 -0
- package/src/sqlite/sqliteDialect.ts +76 -0
- package/src/sqlite/sqliteQuerier.spec.ts +36 -0
- package/src/sqlite/sqliteQuerier.test.ts +21 -0
- package/src/sqlite/sqliteQuerier.ts +37 -0
- package/src/sqlite/sqliteQuerierPool.test.ts +12 -0
- package/src/sqlite/sqliteQuerierPool.ts +38 -0
- package/src/test/entityMock.ts +375 -0
- package/src/test/index.ts +3 -0
- package/src/test/it.util.ts +69 -0
- package/src/test/spec.util.ts +57 -0
- package/src/type/entity.ts +218 -0
- package/src/type/index.ts +9 -0
- package/src/type/migration.ts +241 -0
- package/src/type/namingStrategy.ts +17 -0
- package/src/type/querier.ts +143 -0
- package/src/type/querierPool.ts +26 -0
- package/src/type/query.ts +506 -0
- package/src/type/repository.ts +142 -0
- package/src/type/universalQuerier.ts +133 -0
- package/src/type/utility.ts +21 -0
- package/src/util/dialect.util-extra.spec.ts +96 -0
- package/src/util/dialect.util.spec.ts +23 -0
- package/src/util/dialect.util.ts +134 -0
- package/src/util/index.ts +5 -0
- package/src/util/object.util.spec.ts +29 -0
- package/src/util/object.util.ts +27 -0
- package/src/util/raw.ts +11 -0
- package/src/util/sql.util-extra.spec.ts +17 -0
- package/src/util/sql.util.spec.ts +208 -0
- package/src/util/sql.util.ts +104 -0
- package/src/util/string.util.spec.ts +46 -0
- package/src/util/string.util.ts +35 -0
- package/tsconfig.build.json +5 -0
- package/tsconfig.json +8 -0
- package/README.md +0 -177
- package/dialect/abstractSqlDialect.d.ts +0 -30
- package/dialect/abstractSqlDialect.js +0 -365
- package/dialect/index.d.ts +0 -4
- package/dialect/index.js +0 -8
- package/dialect/mysqlDialect.d.ts +0 -6
- package/dialect/mysqlDialect.js +0 -21
- package/dialect/postgresDialect.d.ts +0 -8
- package/dialect/postgresDialect.js +0 -44
- package/dialect/sqliteDialect.d.ts +0 -4
- package/dialect/sqliteDialect.js +0 -11
- package/entity/decorator/definition.js +0 -223
- package/entity/decorator/entity.js +0 -11
- package/entity/decorator/field.js +0 -12
- package/entity/decorator/id.js +0 -12
- package/entity/decorator/index.d.ts +0 -5
- package/entity/decorator/index.js +0 -12
- package/entity/decorator/relation.js +0 -27
- package/entity/index.d.ts +0 -1
- package/entity/index.js +0 -5
- package/index.d.ts +0 -1
- package/index.js +0 -5
- package/options.js +0 -20
- package/querier/abstractQuerier.d.ts +0 -30
- package/querier/abstractQuerier.js +0 -230
- package/querier/abstractSqlQuerier.d.ts +0 -27
- package/querier/abstractSqlQuerier.js +0 -88
- package/querier/decorator/index.d.ts +0 -2
- package/querier/decorator/index.js +0 -6
- package/querier/decorator/injectQuerier.d.ts +0 -3
- package/querier/decorator/injectQuerier.js +0 -39
- package/querier/decorator/transactional.js +0 -52
- package/querier/index.d.ts +0 -3
- package/querier/index.js +0 -7
- package/repository/genericRepository.d.ts +0 -19
- package/repository/genericRepository.js +0 -52
- package/repository/index.d.ts +0 -1
- package/repository/index.js +0 -5
- package/type/entity.js +0 -5
- package/type/index.d.ts +0 -7
- package/type/index.js +0 -11
- package/type/querier.d.ts +0 -53
- package/type/querier.js +0 -3
- package/type/querierPool.js +0 -3
- package/type/query.js +0 -13
- package/type/repository.js +0 -3
- package/type/universalQuerier.js +0 -3
- package/type/utility.d.ts +0 -12
- package/type/utility.js +0 -3
- package/util/dialect.util.d.ts +0 -17
- package/util/dialect.util.js +0 -114
- package/util/index.d.ts +0 -5
- package/util/index.js +0 -9
- package/util/object.util.d.ts +0 -3
- package/util/object.util.js +0 -22
- package/util/raw.d.ts +0 -2
- package/util/raw.js +0 -9
- package/util/sql.util.d.ts +0 -2
- package/util/sql.util.js +0 -55
- package/util/string.util.js +0 -20
|
@@ -1,105 +1,112 @@
|
|
|
1
|
-
import { IdValue } from './entity';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { Type } from './utility';
|
|
1
|
+
import type { IdValue } from './entity.js';
|
|
2
|
+
import type { Query, QueryConflictPaths, QueryOne, QueryOptions, QuerySearch, QueryUpdateResult } from './query.js';
|
|
3
|
+
import type { UniversalQuerier } from './universalQuerier.js';
|
|
4
|
+
import type { Type } from './utility.js';
|
|
5
5
|
/**
|
|
6
6
|
* A `repository` allows to interact with the datasource to perform persistence operations on a specific entity.
|
|
7
7
|
*/
|
|
8
8
|
export type UniversalRepository<E> = {
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
11
|
-
|
|
10
|
+
* the `entity` class to which this `repository` is linked to.
|
|
11
|
+
*/
|
|
12
|
+
readonly entity: Type<E>;
|
|
13
|
+
/**
|
|
14
|
+
* the `querier` instance to which this `repository` is linked to.
|
|
12
15
|
*/
|
|
13
|
-
|
|
16
|
+
readonly querier: UniversalQuerier;
|
|
14
17
|
/**
|
|
15
18
|
* obtains the record with the given primary key.
|
|
16
19
|
* @param id the primary key value
|
|
17
|
-
* @param
|
|
20
|
+
* @param q the criteria options
|
|
18
21
|
*/
|
|
19
|
-
findOneById(id: IdValue<E>,
|
|
22
|
+
findOneById(id: IdValue<E>, q?: QueryOne<E>): Promise<unknown>;
|
|
20
23
|
/**
|
|
21
24
|
* obtains the first record matching the given search parameters.
|
|
22
|
-
* @param
|
|
25
|
+
* @param q the criteria options
|
|
23
26
|
*/
|
|
24
|
-
findOne(
|
|
27
|
+
findOne(q: QueryOne<E>): Promise<unknown>;
|
|
25
28
|
/**
|
|
26
29
|
* obtains the records matching the given search parameters.
|
|
27
|
-
* @param
|
|
30
|
+
* @param q the criteria options
|
|
28
31
|
*/
|
|
29
|
-
findMany(
|
|
32
|
+
findMany(q: Query<E>): Promise<unknown>;
|
|
30
33
|
/**
|
|
31
34
|
* obtains the records matching the given search parameters,
|
|
32
35
|
* also counts the number of matches ignoring pagination.
|
|
33
|
-
* @param
|
|
36
|
+
* @param q the criteria options
|
|
37
|
+
*/
|
|
38
|
+
findManyAndCount(q: Query<E>): Promise<unknown>;
|
|
39
|
+
/**
|
|
40
|
+
* counts the number of records matching the given search parameters.
|
|
41
|
+
* @param q the search options
|
|
34
42
|
*/
|
|
35
|
-
|
|
43
|
+
count(q: QuerySearch<E>): Promise<unknown>;
|
|
36
44
|
/**
|
|
37
45
|
* inserts a record.
|
|
38
46
|
* @param payload the data to be persisted
|
|
39
47
|
*/
|
|
40
|
-
insertOne(payload: E): Promise<
|
|
48
|
+
insertOne(payload: E): Promise<unknown>;
|
|
41
49
|
/**
|
|
42
50
|
* Inserts many records.
|
|
43
51
|
* @param entity the entity to persist on
|
|
44
52
|
* @param payload the data to be persisted
|
|
45
53
|
*/
|
|
46
|
-
insertMany?(payload: E[]): Promise<
|
|
54
|
+
insertMany?(payload: E[]): Promise<unknown>;
|
|
47
55
|
/**
|
|
48
56
|
* updates a record partially.
|
|
49
57
|
* @param id the primary key of the record to be updated
|
|
50
58
|
* @param payload the data to be persisted
|
|
51
59
|
*/
|
|
52
|
-
updateOneById(id: IdValue<E>, payload: E): Promise<
|
|
60
|
+
updateOneById(id: IdValue<E>, payload: E): Promise<unknown>;
|
|
53
61
|
/**
|
|
54
62
|
* updates many records partially.
|
|
55
63
|
* @param qm the criteria to look for the records
|
|
56
64
|
* @param payload the data to be persisted
|
|
57
65
|
*/
|
|
58
|
-
updateMany?(qm:
|
|
66
|
+
updateMany?(qm: QuerySearch<E>, payload: E): Promise<unknown>;
|
|
67
|
+
/**
|
|
68
|
+
* Insert or update a record given a search criteria.
|
|
69
|
+
* @param conflictPaths the keys to use for the unique search.
|
|
70
|
+
* @param payload the data to insert or update.
|
|
71
|
+
*/
|
|
72
|
+
upsertOne?(conflictPaths: QueryConflictPaths<E>, payload: E): Promise<unknown>;
|
|
59
73
|
/**
|
|
60
74
|
* Insert or update a record.
|
|
61
75
|
* @param payload the data to be persisted
|
|
62
76
|
*/
|
|
63
|
-
saveOne(payload: E): Promise<
|
|
77
|
+
saveOne(payload: E): Promise<unknown>;
|
|
64
78
|
/**
|
|
65
79
|
* insert or update records.
|
|
66
80
|
* @param payload the data to be persisted
|
|
67
81
|
*/
|
|
68
|
-
saveMany?(payload: E[]): Promise<
|
|
82
|
+
saveMany?(payload: E[]): Promise<unknown>;
|
|
69
83
|
/**
|
|
70
84
|
* delete or SoftDelete a record.
|
|
71
85
|
* @param id the primary key of the record
|
|
72
86
|
*/
|
|
73
|
-
deleteOneById(id: IdValue<E>, opts?: QueryOptions): Promise<
|
|
87
|
+
deleteOneById(id: IdValue<E>, opts?: QueryOptions): Promise<unknown>;
|
|
74
88
|
/**
|
|
75
89
|
* delete or SoftDelete records.
|
|
76
90
|
* @param qm the criteria to look for the records
|
|
77
91
|
*/
|
|
78
|
-
deleteMany(qm:
|
|
92
|
+
deleteMany(qm: QuerySearch<E>, opts?: QueryOptions): Promise<unknown>;
|
|
79
93
|
};
|
|
80
94
|
/**
|
|
81
95
|
* base contract for the backend repositories.
|
|
82
96
|
*/
|
|
83
97
|
export interface Repository<E> extends UniversalRepository<E> {
|
|
84
|
-
|
|
85
|
-
* the `entity` type to which this `repository` is linked to.
|
|
86
|
-
*/
|
|
87
|
-
readonly entity: Type<E>;
|
|
88
|
-
/**
|
|
89
|
-
* the `querier` instance to which this `repository` is linked to.
|
|
90
|
-
*/
|
|
91
|
-
readonly querier: Querier;
|
|
92
|
-
count(qm: QueryCriteria<E>): Promise<number>;
|
|
93
|
-
findOneById(id: IdValue<E>, qm?: QueryUnique<E>): Promise<E>;
|
|
98
|
+
findOneById(id: IdValue<E>, q?: QueryOne<E>): Promise<E>;
|
|
94
99
|
findOne(qm: QueryOne<E>): Promise<E>;
|
|
95
100
|
findMany(qm: Query<E>): Promise<E[]>;
|
|
96
101
|
findManyAndCount(qm: Query<E>): Promise<[E[], number]>;
|
|
102
|
+
count(q?: QuerySearch<E>): Promise<number>;
|
|
97
103
|
insertOne(payload: E): Promise<IdValue<E>>;
|
|
98
104
|
insertMany(payload: E[]): Promise<IdValue<E>[]>;
|
|
99
105
|
updateOneById(id: IdValue<E>, payload: E): Promise<number>;
|
|
100
|
-
updateMany(qm:
|
|
106
|
+
updateMany(qm: QuerySearch<E>, payload: E): Promise<number>;
|
|
107
|
+
upsertOne(conflictPaths: QueryConflictPaths<E>, payload: E): Promise<QueryUpdateResult>;
|
|
101
108
|
saveOne(payload: E): Promise<IdValue<E>>;
|
|
102
109
|
saveMany?(payload: E[]): Promise<IdValue<E>[]>;
|
|
103
110
|
deleteOneById(id: IdValue<E>, opts?: QueryOptions): Promise<number>;
|
|
104
|
-
deleteMany(qm:
|
|
111
|
+
deleteMany(qm: QuerySearch<E>, opts?: QueryOptions): Promise<number>;
|
|
105
112
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlL3JlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSWRWYWx1ZSB9IGZyb20gJy4vZW50aXR5LmpzJztcbmltcG9ydCB0eXBlIHsgUXVlcnksIFF1ZXJ5Q29uZmxpY3RQYXRocywgUXVlcnlPbmUsIFF1ZXJ5T3B0aW9ucywgUXVlcnlTZWFyY2gsIFF1ZXJ5VXBkYXRlUmVzdWx0IH0gZnJvbSAnLi9xdWVyeS5qcyc7XG5pbXBvcnQgdHlwZSB7IFVuaXZlcnNhbFF1ZXJpZXIgfSBmcm9tICcuL3VuaXZlcnNhbFF1ZXJpZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBUeXBlIH0gZnJvbSAnLi91dGlsaXR5LmpzJztcblxuLyoqXG4gKiBBIGByZXBvc2l0b3J5YCBhbGxvd3MgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgZGF0YXNvdXJjZSB0byBwZXJmb3JtIHBlcnNpc3RlbmNlIG9wZXJhdGlvbnMgb24gYSBzcGVjaWZpYyBlbnRpdHkuXG4gKi9cbmV4cG9ydCB0eXBlIFVuaXZlcnNhbFJlcG9zaXRvcnk8RT4gPSB7XG4gIC8qKlxuICAgKiB0aGUgYGVudGl0eWAgY2xhc3MgdG8gd2hpY2ggdGhpcyBgcmVwb3NpdG9yeWAgaXMgbGlua2VkIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgZW50aXR5OiBUeXBlPEU+O1xuXG4gIC8qKlxuICAgKiB0aGUgYHF1ZXJpZXJgIGluc3RhbmNlIHRvIHdoaWNoIHRoaXMgYHJlcG9zaXRvcnlgIGlzIGxpbmtlZCB0by5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJpZXI6IFVuaXZlcnNhbFF1ZXJpZXI7XG5cbiAgLyoqXG4gICAqIG9idGFpbnMgdGhlIHJlY29yZCB3aXRoIHRoZSBnaXZlbiBwcmltYXJ5IGtleS5cbiAgICogQHBhcmFtIGlkIHRoZSBwcmltYXJ5IGtleSB2YWx1ZVxuICAgKiBAcGFyYW0gcSB0aGUgY3JpdGVyaWEgb3B0aW9uc1xuICAgKi9cbiAgZmluZE9uZUJ5SWQoaWQ6IElkVmFsdWU8RT4sIHE/OiBRdWVyeU9uZTxFPik6IFByb21pc2U8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIG9idGFpbnMgdGhlIGZpcnN0IHJlY29yZCBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VhcmNoIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSBxIHRoZSBjcml0ZXJpYSBvcHRpb25zXG4gICAqL1xuICBmaW5kT25lKHE6IFF1ZXJ5T25lPEU+KTogUHJvbWlzZTx1bmtub3duPjtcblxuICAvKipcbiAgICogb2J0YWlucyB0aGUgcmVjb3JkcyBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VhcmNoIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSBxIHRoZSBjcml0ZXJpYSBvcHRpb25zXG4gICAqL1xuICBmaW5kTWFueShxOiBRdWVyeTxFPik6IFByb21pc2U8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIG9idGFpbnMgdGhlIHJlY29yZHMgbWF0Y2hpbmcgdGhlIGdpdmVuIHNlYXJjaCBwYXJhbWV0ZXJzLFxuICAgKiBhbHNvIGNvdW50cyB0aGUgbnVtYmVyIG9mIG1hdGNoZXMgaWdub3JpbmcgcGFnaW5hdGlvbi5cbiAgICogQHBhcmFtIHEgdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICovXG4gIGZpbmRNYW55QW5kQ291bnQocTogUXVlcnk8RT4pOiBQcm9taXNlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBjb3VudHMgdGhlIG51bWJlciBvZiByZWNvcmRzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2ggcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIHEgdGhlIHNlYXJjaCBvcHRpb25zXG4gICAqL1xuICBjb3VudChxOiBRdWVyeVNlYXJjaDxFPik6IFByb21pc2U8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIGluc2VydHMgYSByZWNvcmQuXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKi9cbiAgaW5zZXJ0T25lKHBheWxvYWQ6IEUpOiBQcm9taXNlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBJbnNlcnRzIG1hbnkgcmVjb3Jkcy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgZW50aXR5IHRvIHBlcnNpc3Qgb25cbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqL1xuICBpbnNlcnRNYW55PyhwYXlsb2FkOiBFW10pOiBQcm9taXNlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiB1cGRhdGVzIGEgcmVjb3JkIHBhcnRpYWxseS5cbiAgICogQHBhcmFtIGlkIHRoZSBwcmltYXJ5IGtleSBvZiB0aGUgcmVjb3JkIHRvIGJlIHVwZGF0ZWRcbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqL1xuICB1cGRhdGVPbmVCeUlkKGlkOiBJZFZhbHVlPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTx1bmtub3duPjtcblxuICAvKipcbiAgICogdXBkYXRlcyBtYW55IHJlY29yZHMgcGFydGlhbGx5LlxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIHRvIGxvb2sgZm9yIHRoZSByZWNvcmRzXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKi9cbiAgdXBkYXRlTWFueT8ocW06IFF1ZXJ5U2VhcmNoPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTx1bmtub3duPjtcblxuICAvKipcbiAgICogSW5zZXJ0IG9yIHVwZGF0ZSBhIHJlY29yZCBnaXZlbiBhIHNlYXJjaCBjcml0ZXJpYS5cbiAgICogQHBhcmFtIGNvbmZsaWN0UGF0aHMgdGhlIGtleXMgdG8gdXNlIGZvciB0aGUgdW5pcXVlIHNlYXJjaC5cbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gaW5zZXJ0IG9yIHVwZGF0ZS5cbiAgICovXG4gIHVwc2VydE9uZT8oY29uZmxpY3RQYXRoczogUXVlcnlDb25mbGljdFBhdGhzPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTx1bmtub3duPjtcblxuICAvKipcbiAgICogSW5zZXJ0IG9yIHVwZGF0ZSBhIHJlY29yZC5cbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqL1xuICBzYXZlT25lKHBheWxvYWQ6IEUpOiBQcm9taXNlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBpbnNlcnQgb3IgdXBkYXRlIHJlY29yZHMuXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKi9cbiAgc2F2ZU1hbnk/KHBheWxvYWQ6IEVbXSk6IFByb21pc2U8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSBvciBTb2Z0RGVsZXRlIGEgcmVjb3JkLlxuICAgKiBAcGFyYW0gaWQgdGhlIHByaW1hcnkga2V5IG9mIHRoZSByZWNvcmRcbiAgICovXG4gIGRlbGV0ZU9uZUJ5SWQoaWQ6IElkVmFsdWU8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBQcm9taXNlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBkZWxldGUgb3IgU29mdERlbGV0ZSByZWNvcmRzLlxuICAgKiBAcGFyYW0gcW0gdGhlIGNyaXRlcmlhIHRvIGxvb2sgZm9yIHRoZSByZWNvcmRzXG4gICAqL1xuICBkZWxldGVNYW55KHFtOiBRdWVyeVNlYXJjaDxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8dW5rbm93bj47XG59O1xuXG4vKipcbiAqIGJhc2UgY29udHJhY3QgZm9yIHRoZSBiYWNrZW5kIHJlcG9zaXRvcmllcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvc2l0b3J5PEU+IGV4dGVuZHMgVW5pdmVyc2FsUmVwb3NpdG9yeTxFPiB7XG4gIGZpbmRPbmVCeUlkKGlkOiBJZFZhbHVlPEU+LCBxPzogUXVlcnlPbmU8RT4pOiBQcm9taXNlPEU+O1xuXG4gIGZpbmRPbmUocW06IFF1ZXJ5T25lPEU+KTogUHJvbWlzZTxFPjtcblxuICBmaW5kTWFueShxbTogUXVlcnk8RT4pOiBQcm9taXNlPEVbXT47XG5cbiAgZmluZE1hbnlBbmRDb3VudChxbTogUXVlcnk8RT4pOiBQcm9taXNlPFtFW10sIG51bWJlcl0+O1xuXG4gIGNvdW50KHE/OiBRdWVyeVNlYXJjaDxFPik6IFByb21pc2U8bnVtYmVyPjtcblxuICBpbnNlcnRPbmUocGF5bG9hZDogRSk6IFByb21pc2U8SWRWYWx1ZTxFPj47XG5cbiAgaW5zZXJ0TWFueShwYXlsb2FkOiBFW10pOiBQcm9taXNlPElkVmFsdWU8RT5bXT47XG5cbiAgdXBkYXRlT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgcGF5bG9hZDogRSk6IFByb21pc2U8bnVtYmVyPjtcblxuICB1cGRhdGVNYW55KHFtOiBRdWVyeVNlYXJjaDxFPiwgcGF5bG9hZDogRSk6IFByb21pc2U8bnVtYmVyPjtcblxuICB1cHNlcnRPbmUoY29uZmxpY3RQYXRoczogUXVlcnlDb25mbGljdFBhdGhzPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTxRdWVyeVVwZGF0ZVJlc3VsdD47XG5cbiAgc2F2ZU9uZShwYXlsb2FkOiBFKTogUHJvbWlzZTxJZFZhbHVlPEU+PjtcblxuICBzYXZlTWFueT8ocGF5bG9hZDogRVtdKTogUHJvbWlzZTxJZFZhbHVlPEU+W10+O1xuXG4gIGRlbGV0ZU9uZUJ5SWQoaWQ6IElkVmFsdWU8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBQcm9taXNlPG51bWJlcj47XG5cbiAgZGVsZXRlTWFueShxbTogUXVlcnlTZWFyY2g8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBQcm9taXNlPG51bWJlcj47XG59XG4iXX0=
|
|
@@ -1,96 +1,118 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Query,
|
|
3
|
-
import { UniversalRepository } from './repository';
|
|
4
|
-
import {
|
|
1
|
+
import type { IdValue } from './entity.js';
|
|
2
|
+
import type { Query, QueryConflictPaths, QueryOne, QueryOptions, QuerySearch } from './query.js';
|
|
3
|
+
import type { UniversalRepository } from './repository.js';
|
|
4
|
+
import type { Type } from './utility.js';
|
|
5
5
|
/**
|
|
6
6
|
* A `querier` allows to interact with the datasource to perform persistence operations on any entity.
|
|
7
7
|
*/
|
|
8
8
|
export interface UniversalQuerier {
|
|
9
|
-
/**
|
|
10
|
-
* counts the number of records matching the given search parameters.
|
|
11
|
-
* @param entity the target entity
|
|
12
|
-
* @param qm the search options
|
|
13
|
-
*/
|
|
14
|
-
count<E>(entity: Type<E>, qm?: QuerySearch<E>): Promise<any>;
|
|
15
9
|
/**
|
|
16
10
|
* obtains the record with the given primary key.
|
|
17
11
|
* @param entity the target entity
|
|
18
12
|
* @param id the primary key value
|
|
19
|
-
* @param
|
|
13
|
+
* @param q the additional criteria options
|
|
14
|
+
* @return the record
|
|
20
15
|
*/
|
|
21
|
-
findOneById<E>(entity: Type<E>, id: IdValue<E>,
|
|
16
|
+
findOneById<E>(entity: Type<E>, id: IdValue<E>, q?: QueryOne<E>): Promise<unknown>;
|
|
22
17
|
/**
|
|
23
18
|
* obtains the first record matching the given search parameters.
|
|
24
19
|
* @param entity the target entity
|
|
25
|
-
* @param
|
|
20
|
+
* @param q the criteria options
|
|
21
|
+
* @return the record
|
|
26
22
|
*/
|
|
27
|
-
findOne<E>(entity: Type<E>,
|
|
23
|
+
findOne<E>(entity: Type<E>, q: QueryOne<E>): Promise<unknown>;
|
|
28
24
|
/**
|
|
29
25
|
* obtains the records matching the given search parameters.
|
|
30
26
|
* @param entity the target entity
|
|
31
|
-
* @param
|
|
27
|
+
* @param q the criteria options
|
|
28
|
+
* @return the records
|
|
32
29
|
*/
|
|
33
|
-
findMany<E>(entity: Type<E>,
|
|
30
|
+
findMany<E>(entity: Type<E>, q: Query<E>): Promise<unknown>;
|
|
34
31
|
/**
|
|
35
32
|
* obtains the records matching the given search parameters,
|
|
36
33
|
* also counts the number of matches ignoring pagination.
|
|
37
34
|
* @param entity the target entity
|
|
38
|
-
* @param
|
|
35
|
+
* @param q the criteria options
|
|
36
|
+
* @return the records and the count
|
|
37
|
+
*/
|
|
38
|
+
findManyAndCount<E>(entity: Type<E>, q: Query<E>): Promise<unknown>;
|
|
39
|
+
/**
|
|
40
|
+
* counts the number of records matching the given search parameters.
|
|
41
|
+
* @param entity the target entity
|
|
42
|
+
* @param q the search options
|
|
43
|
+
* @return the count
|
|
39
44
|
*/
|
|
40
|
-
|
|
45
|
+
count<E>(entity: Type<E>, q: QuerySearch<E>): Promise<unknown>;
|
|
41
46
|
/**
|
|
42
47
|
* inserts a record.
|
|
43
48
|
* @param entity the entity to persist on
|
|
44
49
|
* @param payload the data to be persisted
|
|
50
|
+
* @return the ID
|
|
45
51
|
*/
|
|
46
|
-
insertOne<E>(entity: Type<E>, payload: E): Promise<
|
|
52
|
+
insertOne<E>(entity: Type<E>, payload: E): Promise<unknown>;
|
|
47
53
|
/**
|
|
48
54
|
* Inserts many records.
|
|
49
55
|
* @param entity the entity to persist on
|
|
50
56
|
* @param payload the data to be persisted
|
|
57
|
+
* @return the IDs
|
|
51
58
|
*/
|
|
52
|
-
insertMany?<E>(entity: Type<E>, payload: E[]): Promise<
|
|
59
|
+
insertMany?<E>(entity: Type<E>, payload: E[]): Promise<unknown>;
|
|
53
60
|
/**
|
|
54
61
|
* updates a record partially.
|
|
55
62
|
* @param entity the entity to persist on
|
|
56
63
|
* @param id the primary key of the record to be updated
|
|
57
64
|
* @param payload the data to be persisted
|
|
65
|
+
* @return the number of affected records
|
|
58
66
|
*/
|
|
59
|
-
updateOneById<E>(entity: Type<E>, id: IdValue<E>, payload: E): Promise<
|
|
67
|
+
updateOneById<E>(entity: Type<E>, id: IdValue<E>, payload: E): Promise<unknown>;
|
|
60
68
|
/**
|
|
61
69
|
* updates many records partially.
|
|
62
70
|
* @param entity the entity to persist on
|
|
63
|
-
* @param
|
|
71
|
+
* @param q the criteria to look for the records
|
|
72
|
+
* @param payload the data to be persisted
|
|
73
|
+
* @return the number of affected records
|
|
74
|
+
*/
|
|
75
|
+
updateMany?<E>(entity: Type<E>, q: QuerySearch<E>, payload: E): Promise<unknown>;
|
|
76
|
+
/**
|
|
77
|
+
* Insert or update a record given a search criteria.
|
|
78
|
+
* @param entity the entity to persist on
|
|
79
|
+
* @param conflictPaths the keys to use for the unique search
|
|
64
80
|
* @param payload the data to be persisted
|
|
81
|
+
* @return void
|
|
65
82
|
*/
|
|
66
|
-
|
|
83
|
+
upsertOne?<E>(entity: Type<E>, conflictPaths: QueryConflictPaths<E>, payload: E): Promise<unknown>;
|
|
67
84
|
/**
|
|
68
85
|
* insert or update a record.
|
|
69
86
|
* @param entity the entity to persist on
|
|
70
87
|
* @param payload the data to be persisted
|
|
88
|
+
* @return the ID
|
|
71
89
|
*/
|
|
72
|
-
saveOne<E>(entity: Type<E>, payload: E): Promise<
|
|
90
|
+
saveOne<E>(entity: Type<E>, payload: E): Promise<unknown>;
|
|
73
91
|
/**
|
|
74
92
|
* Insert or update records.
|
|
75
93
|
* @param entity the entity to persist on
|
|
76
94
|
* @param payload the data to be persisted
|
|
95
|
+
* @return the IDs
|
|
77
96
|
*/
|
|
78
|
-
saveMany?<E>(entity: Type<E>, payload: E[]): Promise<
|
|
97
|
+
saveMany?<E>(entity: Type<E>, payload: E[]): Promise<unknown>;
|
|
79
98
|
/**
|
|
80
99
|
* delete or SoftDelete a record.
|
|
81
100
|
* @param entity the entity to persist on
|
|
82
101
|
* @param id the primary key of the record
|
|
102
|
+
* @return the number of affected records
|
|
83
103
|
*/
|
|
84
|
-
deleteOneById<E>(entity: Type<E>, id: IdValue<E>, opts?: QueryOptions): Promise<
|
|
104
|
+
deleteOneById<E>(entity: Type<E>, id: IdValue<E>, opts?: QueryOptions): Promise<unknown>;
|
|
85
105
|
/**
|
|
86
106
|
* delete or SoftDelete records.
|
|
87
107
|
* @param entity the entity to persist on
|
|
88
|
-
* @param
|
|
108
|
+
* @param q the criteria to look for the records
|
|
109
|
+
* @return the number of affected records
|
|
89
110
|
*/
|
|
90
|
-
deleteMany<E>(entity: Type<E>,
|
|
111
|
+
deleteMany<E>(entity: Type<E>, q: QuerySearch<E>, opts?: QueryOptions): Promise<unknown>;
|
|
91
112
|
/**
|
|
92
113
|
* get a repository for the given entity.
|
|
93
114
|
* @param entity the entity to get the repository for
|
|
115
|
+
* @return the repository
|
|
94
116
|
*/
|
|
95
117
|
getRepository<E>(entity: Type<E>): UniversalRepository<E>;
|
|
96
118
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdmVyc2FsUXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlL3VuaXZlcnNhbFF1ZXJpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSWRWYWx1ZSB9IGZyb20gJy4vZW50aXR5LmpzJztcbmltcG9ydCB0eXBlIHsgUXVlcnksIFF1ZXJ5Q29uZmxpY3RQYXRocywgUXVlcnlPbmUsIFF1ZXJ5T3B0aW9ucywgUXVlcnlTZWFyY2ggfSBmcm9tICcuL3F1ZXJ5LmpzJztcbmltcG9ydCB0eXBlIHsgVW5pdmVyc2FsUmVwb3NpdG9yeSB9IGZyb20gJy4vcmVwb3NpdG9yeS5qcyc7XG5pbXBvcnQgdHlwZSB7IFR5cGUgfSBmcm9tICcuL3V0aWxpdHkuanMnO1xuXG4vKipcbiAqIEEgYHF1ZXJpZXJgIGFsbG93cyB0byBpbnRlcmFjdCB3aXRoIHRoZSBkYXRhc291cmNlIHRvIHBlcmZvcm0gcGVyc2lzdGVuY2Ugb3BlcmF0aW9ucyBvbiBhbnkgZW50aXR5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVuaXZlcnNhbFF1ZXJpZXIge1xuICAvKipcbiAgICogb2J0YWlucyB0aGUgcmVjb3JkIHdpdGggdGhlIGdpdmVuIHByaW1hcnkga2V5LlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSB0YXJnZXQgZW50aXR5XG4gICAqIEBwYXJhbSBpZCB0aGUgcHJpbWFyeSBrZXkgdmFsdWVcbiAgICogQHBhcmFtIHEgdGhlIGFkZGl0aW9uYWwgY3JpdGVyaWEgb3B0aW9uc1xuICAgKiBAcmV0dXJuIHRoZSByZWNvcmRcbiAgICovXG4gIGZpbmRPbmVCeUlkPEU+KGVudGl0eTogVHlwZTxFPiwgaWQ6IElkVmFsdWU8RT4sIHE/OiBRdWVyeU9uZTxFPik6IFByb21pc2U8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIG9idGFpbnMgdGhlIGZpcnN0IHJlY29yZCBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VhcmNoIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIHRhcmdldCBlbnRpdHlcbiAgICogQHBhcmFtIHEgdGhlIGNyaXRlcmlhIG9wdGlvbnNcbiAgICogQHJldHVybiB0aGUgcmVjb3JkXG4gICAqL1xuICBmaW5kT25lPEU+KGVudGl0eTogVHlwZTxFPiwgcTogUXVlcnlPbmU8RT4pOiBQcm9taXNlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBvYnRhaW5zIHRoZSByZWNvcmRzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2ggcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgdGFyZ2V0IGVudGl0eVxuICAgKiBAcGFyYW0gcSB0aGUgY3JpdGVyaWEgb3B0aW9uc1xuICAgKiBAcmV0dXJuIHRoZSByZWNvcmRzXG4gICAqL1xuICBmaW5kTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHE6IFF1ZXJ5PEU+KTogUHJvbWlzZTx1bmtub3duPjtcblxuICAvKipcbiAgICogb2J0YWlucyB0aGUgcmVjb3JkcyBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VhcmNoIHBhcmFtZXRlcnMsXG4gICAqIGFsc28gY291bnRzIHRoZSBudW1iZXIgb2YgbWF0Y2hlcyBpZ25vcmluZyBwYWdpbmF0aW9uLlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSB0YXJnZXQgZW50aXR5XG4gICAqIEBwYXJhbSBxIHRoZSBjcml0ZXJpYSBvcHRpb25zXG4gICAqIEByZXR1cm4gdGhlIHJlY29yZHMgYW5kIHRoZSBjb3VudFxuICAgKi9cbiAgZmluZE1hbnlBbmRDb3VudDxFPihlbnRpdHk6IFR5cGU8RT4sIHE6IFF1ZXJ5PEU+KTogUHJvbWlzZTx1bmtub3duPjtcblxuICAvKipcbiAgICogY291bnRzIHRoZSBudW1iZXIgb2YgcmVjb3JkcyBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VhcmNoIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIHRhcmdldCBlbnRpdHlcbiAgICogQHBhcmFtIHEgdGhlIHNlYXJjaCBvcHRpb25zXG4gICAqIEByZXR1cm4gdGhlIGNvdW50XG4gICAqL1xuICBjb3VudDxFPihlbnRpdHk6IFR5cGU8RT4sIHE6IFF1ZXJ5U2VhcmNoPEU+KTogUHJvbWlzZTx1bmtub3duPjtcblxuICAvKipcbiAgICogaW5zZXJ0cyBhIHJlY29yZC5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgZW50aXR5IHRvIHBlcnNpc3Qgb25cbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqIEByZXR1cm4gdGhlIElEXG4gICAqL1xuICBpbnNlcnRPbmU8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTx1bmtub3duPjtcblxuICAvKipcbiAgICogSW5zZXJ0cyBtYW55IHJlY29yZHMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIGVudGl0eSB0byBwZXJzaXN0IG9uXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKiBAcmV0dXJuIHRoZSBJRHNcbiAgICovXG4gIGluc2VydE1hbnk/PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKTogUHJvbWlzZTx1bmtub3duPjtcblxuICAvKipcbiAgICogdXBkYXRlcyBhIHJlY29yZCBwYXJ0aWFsbHkuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIGVudGl0eSB0byBwZXJzaXN0IG9uXG4gICAqIEBwYXJhbSBpZCB0aGUgcHJpbWFyeSBrZXkgb2YgdGhlIHJlY29yZCB0byBiZSB1cGRhdGVkXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgYWZmZWN0ZWQgcmVjb3Jkc1xuICAgKi9cbiAgdXBkYXRlT25lQnlJZDxFPihlbnRpdHk6IFR5cGU8RT4sIGlkOiBJZFZhbHVlPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTx1bmtub3duPjtcblxuICAvKipcbiAgICogdXBkYXRlcyBtYW55IHJlY29yZHMgcGFydGlhbGx5LlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSBlbnRpdHkgdG8gcGVyc2lzdCBvblxuICAgKiBAcGFyYW0gcSB0aGUgY3JpdGVyaWEgdG8gbG9vayBmb3IgdGhlIHJlY29yZHNcbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBhZmZlY3RlZCByZWNvcmRzXG4gICAqL1xuICB1cGRhdGVNYW55PzxFPihlbnRpdHk6IFR5cGU8RT4sIHE6IFF1ZXJ5U2VhcmNoPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTx1bmtub3duPjtcblxuICAvKipcbiAgICogSW5zZXJ0IG9yIHVwZGF0ZSBhIHJlY29yZCBnaXZlbiBhIHNlYXJjaCBjcml0ZXJpYS5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgZW50aXR5IHRvIHBlcnNpc3Qgb25cbiAgICogQHBhcmFtIGNvbmZsaWN0UGF0aHMgIHRoZSBrZXlzIHRvIHVzZSBmb3IgdGhlIHVuaXF1ZSBzZWFyY2hcbiAgICogQHBhcmFtIHBheWxvYWQgdGhlIGRhdGEgdG8gYmUgcGVyc2lzdGVkXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgdXBzZXJ0T25lPzxFPihlbnRpdHk6IFR5cGU8RT4sIGNvbmZsaWN0UGF0aHM6IFF1ZXJ5Q29uZmxpY3RQYXRoczxFPiwgcGF5bG9hZDogRSk6IFByb21pc2U8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIGluc2VydCBvciB1cGRhdGUgYSByZWNvcmQuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIGVudGl0eSB0byBwZXJzaXN0IG9uXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKiBAcmV0dXJuIHRoZSBJRFxuICAgKi9cbiAgc2F2ZU9uZTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUpOiBQcm9taXNlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBJbnNlcnQgb3IgdXBkYXRlIHJlY29yZHMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIGVudGl0eSB0byBwZXJzaXN0IG9uXG4gICAqIEBwYXJhbSBwYXlsb2FkIHRoZSBkYXRhIHRvIGJlIHBlcnNpc3RlZFxuICAgKiBAcmV0dXJuIHRoZSBJRHNcbiAgICovXG4gIHNhdmVNYW55PzxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSk6IFByb21pc2U8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSBvciBTb2Z0RGVsZXRlIGEgcmVjb3JkLlxuICAgKiBAcGFyYW0gZW50aXR5IHRoZSBlbnRpdHkgdG8gcGVyc2lzdCBvblxuICAgKiBAcGFyYW0gaWQgdGhlIHByaW1hcnkga2V5IG9mIHRoZSByZWNvcmRcbiAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGFmZmVjdGVkIHJlY29yZHNcbiAgICovXG4gIGRlbGV0ZU9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSBvciBTb2Z0RGVsZXRlIHJlY29yZHMuXG4gICAqIEBwYXJhbSBlbnRpdHkgdGhlIGVudGl0eSB0byBwZXJzaXN0IG9uXG4gICAqIEBwYXJhbSBxIHRoZSBjcml0ZXJpYSB0byBsb29rIGZvciB0aGUgcmVjb3Jkc1xuICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgYWZmZWN0ZWQgcmVjb3Jkc1xuICAgKi9cbiAgZGVsZXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHE6IFF1ZXJ5U2VhcmNoPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogUHJvbWlzZTx1bmtub3duPjtcblxuICAvKipcbiAgICogZ2V0IGEgcmVwb3NpdG9yeSBmb3IgdGhlIGdpdmVuIGVudGl0eS5cbiAgICogQHBhcmFtIGVudGl0eSB0aGUgZW50aXR5IHRvIGdldCB0aGUgcmVwb3NpdG9yeSBmb3JcbiAgICogQHJldHVybiB0aGUgcmVwb3NpdG9yeVxuICAgKi9cbiAgZ2V0UmVwb3NpdG9yeTxFPihlbnRpdHk6IFR5cGU8RT4pOiBVbml2ZXJzYWxSZXBvc2l0b3J5PEU+O1xufVxuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
export type Type<T> = new (...args: unknown[]) => T;
|
|
4
|
+
export type BooleanLike = boolean | 0 | 1;
|
|
5
|
+
export type MongoId = {
|
|
6
|
+
toHexString: () => string;
|
|
7
|
+
};
|
|
8
|
+
export type Scalar = string | number | boolean | bigint | Date | RegExp | Buffer | MongoId;
|
|
9
|
+
export type ExpandScalar<T> = null | (T extends Date ? Date | string : T);
|
|
10
|
+
export type Writable<T> = {
|
|
11
|
+
-readonly [K in keyof T]: T[K];
|
|
12
|
+
};
|
|
13
|
+
export type Unpacked<T> = T extends (infer U)[] ? U : T extends (...args: unknown[]) => infer U ? U : T extends Promise<infer U> ? U : T;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlL3V0aWxpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFR5cGU8VD4gPSBuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gVDtcblxuZXhwb3J0IHR5cGUgQm9vbGVhbkxpa2UgPSBib29sZWFuIHwgMCB8IDE7XG5cbmV4cG9ydCB0eXBlIE1vbmdvSWQgPSB7XG4gIHRvSGV4U3RyaW5nOiAoKSA9PiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBTY2FsYXIgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgYmlnaW50IHwgRGF0ZSB8IFJlZ0V4cCB8IEJ1ZmZlciB8IE1vbmdvSWQ7XG5cbmV4cG9ydCB0eXBlIEV4cGFuZFNjYWxhcjxUPiA9IG51bGwgfCAoVCBleHRlbmRzIERhdGUgPyBEYXRlIHwgc3RyaW5nIDogVCk7XG5cbmV4cG9ydCB0eXBlIFdyaXRhYmxlPFQ+ID0geyAtcmVhZG9ubHkgW0sgaW4ga2V5b2YgVF06IFRbS10gfTtcblxuZXhwb3J0IHR5cGUgVW5wYWNrZWQ8VD4gPSBUIGV4dGVuZHMgKGluZmVyIFUpW11cbiAgPyBVXG4gIDogVCBleHRlbmRzICguLi5hcmdzOiB1bmtub3duW10pID0+IGluZmVyIFVcbiAgICA/IFVcbiAgICA6IFQgZXh0ZW5kcyBQcm9taXNlPGluZmVyIFU+XG4gICAgICA/IFVcbiAgICAgIDogVDtcbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type CascadeType, type EntityMeta, type FieldKey, type FieldOptions, type OnFieldCallback, QueryRaw, type QuerySelect, type QuerySort, type QuerySortMap, type QueryWhere, type QueryWhereMap, type RelationKey } from '../type/index.js';
|
|
2
|
+
export type CallbackKey = keyof Pick<FieldOptions, 'onInsert' | 'onUpdate' | 'onDelete'>;
|
|
3
|
+
export declare function filterFieldKeys<E>(meta: EntityMeta<E>, payload: E, callbackKey: CallbackKey): FieldKey<E>[];
|
|
4
|
+
export declare function getFieldCallbackValue(val: OnFieldCallback): import("../type/utility.js").Scalar | QueryRaw;
|
|
5
|
+
export declare function fillOnFields<E>(meta: EntityMeta<E>, payload: E | E[], callbackKey: CallbackKey): E[];
|
|
6
|
+
export declare function filterPersistableRelationKeys<E>(meta: EntityMeta<E>, payload: E, action: CascadeType): RelationKey<E>[];
|
|
7
|
+
export declare function isCascadable(action: CascadeType, configuration?: boolean | CascadeType): boolean;
|
|
8
|
+
export declare function filterRelationKeys<E>(meta: EntityMeta<E>, select: QuerySelect<E>): RelationKey<E>[];
|
|
9
|
+
export declare function isSelectingRelations<E>(meta: EntityMeta<E>, select: QuerySelect<E>): boolean;
|
|
10
|
+
export declare function buildSortMap<E>(sort: QuerySort<E>): QuerySortMap<E>;
|
|
11
|
+
export declare function augmentWhere<E>(meta: EntityMeta<E>, target?: QueryWhere<E>, source?: QueryWhere<E>): QueryWhere<E>;
|
|
12
|
+
export declare function buldQueryWhereAsMap<E>(meta: EntityMeta<E>, filter?: QueryWhere<E>): QueryWhereMap<E>;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { QueryRaw, } from '../type/index.js';
|
|
2
|
+
import { getKeys } from './object.util.js';
|
|
3
|
+
export function filterFieldKeys(meta, payload, callbackKey) {
|
|
4
|
+
const persistableKeys = getKeys(payload).filter((key) => {
|
|
5
|
+
const fieldOpts = meta.fields[key];
|
|
6
|
+
return fieldOpts && !fieldOpts.virtual && (callbackKey !== 'onUpdate' || (fieldOpts.updatable ?? true));
|
|
7
|
+
});
|
|
8
|
+
return persistableKeys;
|
|
9
|
+
}
|
|
10
|
+
export function getFieldCallbackValue(val) {
|
|
11
|
+
return typeof val === 'function' ? val() : val;
|
|
12
|
+
}
|
|
13
|
+
export function fillOnFields(meta, payload, callbackKey) {
|
|
14
|
+
const payloads = Array.isArray(payload) ? payload : [payload];
|
|
15
|
+
const keys = getKeys(meta.fields).filter((key) => meta.fields[key][callbackKey]);
|
|
16
|
+
return payloads.map((it) => {
|
|
17
|
+
for (const key of keys) {
|
|
18
|
+
if (it[key] === undefined) {
|
|
19
|
+
it[key] = getFieldCallbackValue(meta.fields[key][callbackKey]);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return it;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export function filterPersistableRelationKeys(meta, payload, action) {
|
|
26
|
+
const keys = getKeys(payload);
|
|
27
|
+
return keys.filter((key) => {
|
|
28
|
+
const relOpts = meta.relations[key];
|
|
29
|
+
return relOpts && isCascadable(action, relOpts.cascade);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
export function isCascadable(action, configuration) {
|
|
33
|
+
if (typeof configuration === 'boolean') {
|
|
34
|
+
return configuration;
|
|
35
|
+
}
|
|
36
|
+
return configuration === action;
|
|
37
|
+
}
|
|
38
|
+
export function filterRelationKeys(meta, select) {
|
|
39
|
+
const keys = filterPositiveKeys(select);
|
|
40
|
+
return keys.filter((key) => key in meta.relations);
|
|
41
|
+
}
|
|
42
|
+
export function isSelectingRelations(meta, select) {
|
|
43
|
+
const keys = filterPositiveKeys(select);
|
|
44
|
+
return keys.some((key) => key in meta.relations);
|
|
45
|
+
}
|
|
46
|
+
function filterPositiveKeys(select) {
|
|
47
|
+
if (Array.isArray(select)) {
|
|
48
|
+
return select;
|
|
49
|
+
}
|
|
50
|
+
return getKeys(select).filter((key) => select[key]);
|
|
51
|
+
}
|
|
52
|
+
export function buildSortMap(sort) {
|
|
53
|
+
if (Array.isArray(sort)) {
|
|
54
|
+
return sort.reduce((acc, it) => {
|
|
55
|
+
if (Array.isArray(it)) {
|
|
56
|
+
acc[it[0]] = it[1];
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
acc[it.field] = it.sort;
|
|
60
|
+
}
|
|
61
|
+
return acc;
|
|
62
|
+
}, {});
|
|
63
|
+
}
|
|
64
|
+
return sort;
|
|
65
|
+
}
|
|
66
|
+
export function augmentWhere(meta, target = {}, source = {}) {
|
|
67
|
+
const targetComparison = buldQueryWhereAsMap(meta, target);
|
|
68
|
+
const sourceComparison = buldQueryWhereAsMap(meta, source);
|
|
69
|
+
return {
|
|
70
|
+
...targetComparison,
|
|
71
|
+
...sourceComparison,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export function buldQueryWhereAsMap(meta, filter = {}) {
|
|
75
|
+
if (filter instanceof QueryRaw) {
|
|
76
|
+
return { $and: [filter] };
|
|
77
|
+
}
|
|
78
|
+
if (isIdValue(filter)) {
|
|
79
|
+
return {
|
|
80
|
+
[meta.id]: filter,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
return filter;
|
|
84
|
+
}
|
|
85
|
+
function isIdValue(filter) {
|
|
86
|
+
const type = typeof filter;
|
|
87
|
+
return (type === 'string' ||
|
|
88
|
+
type === 'number' ||
|
|
89
|
+
type === 'bigint' ||
|
|
90
|
+
typeof filter.toHexString === 'function' ||
|
|
91
|
+
Array.isArray(filter));
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbGVjdC51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvZGlhbGVjdC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFTTCxRQUFRLEdBT1QsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJM0MsTUFBTSxVQUFVLGVBQWUsQ0FBSSxJQUFtQixFQUFFLE9BQVUsRUFBRSxXQUF3QjtJQUMxRixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDdEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFrQixDQUFDLENBQUM7UUFDbEQsT0FBTyxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLFVBQVUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxRyxDQUFDLENBQWtCLENBQUM7SUFDcEIsT0FBTyxlQUFlLENBQUM7QUFDekIsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxHQUFvQjtJQUN4RCxPQUFPLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUNqRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBSSxJQUFtQixFQUFFLE9BQWdCLEVBQUUsV0FBd0I7SUFDN0YsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENB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O0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgQ2FzY2FkZVR5cGUsXG4gIHR5cGUgRW50aXR5TWV0YSxcbiAgdHlwZSBGaWVsZEtleSxcbiAgdHlwZSBGaWVsZE9wdGlvbnMsXG4gIHR5cGUgSWRWYWx1ZSxcbiAgdHlwZSBLZXksXG4gIHR5cGUgTW9uZ29JZCxcbiAgdHlwZSBPbkZpZWxkQ2FsbGJhY2ssXG4gIFF1ZXJ5UmF3LFxuICB0eXBlIFF1ZXJ5U2VsZWN0LFxuICB0eXBlIFF1ZXJ5U29ydCxcbiAgdHlwZSBRdWVyeVNvcnRNYXAsXG4gIHR5cGUgUXVlcnlXaGVyZSxcbiAgdHlwZSBRdWVyeVdoZXJlTWFwLFxuICB0eXBlIFJlbGF0aW9uS2V5LFxufSBmcm9tICcuLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IGdldEtleXMgfSBmcm9tICcuL29iamVjdC51dGlsLmpzJztcblxuZXhwb3J0IHR5cGUgQ2FsbGJhY2tLZXkgPSBrZXlvZiBQaWNrPEZpZWxkT3B0aW9ucywgJ29uSW5zZXJ0JyB8ICdvblVwZGF0ZScgfCAnb25EZWxldGUnPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckZpZWxkS2V5czxFPihtZXRhOiBFbnRpdHlNZXRhPEU+LCBwYXlsb2FkOiBFLCBjYWxsYmFja0tleTogQ2FsbGJhY2tLZXkpOiBGaWVsZEtleTxFPltdIHtcbiAgY29uc3QgcGVyc2lzdGFibGVLZXlzID0gZ2V0S2V5cyhwYXlsb2FkKS5maWx0ZXIoKGtleSkgPT4ge1xuICAgIGNvbnN0IGZpZWxkT3B0cyA9IG1ldGEuZmllbGRzW2tleSBhcyBGaWVsZEtleTxFPl07XG4gICAgcmV0dXJuIGZpZWxkT3B0cyAmJiAhZmllbGRPcHRzLnZpcnR1YWwgJiYgKGNhbGxiYWNrS2V5ICE9PSAnb25VcGRhdGUnIHx8IChmaWVsZE9wdHMudXBkYXRhYmxlID8/IHRydWUpKTtcbiAgfSkgYXMgRmllbGRLZXk8RT5bXTtcbiAgcmV0dXJuIHBlcnNpc3RhYmxlS2V5cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpZWxkQ2FsbGJhY2tWYWx1ZSh2YWw6IE9uRmllbGRDYWxsYmFjaykge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ2Z1bmN0aW9uJyA/IHZhbCgpIDogdmFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsbE9uRmllbGRzPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4sIHBheWxvYWQ6IEUgfCBFW10sIGNhbGxiYWNrS2V5OiBDYWxsYmFja0tleSk6IEVbXSB7XG4gIGNvbnN0IHBheWxvYWRzID0gQXJyYXkuaXNBcnJheShwYXlsb2FkKSA/IHBheWxvYWQgOiBbcGF5bG9hZF07XG4gIGNvbnN0IGtleXMgPSBnZXRLZXlzKG1ldGEuZmllbGRzKS5maWx0ZXIoKGtleSkgPT4gbWV0YS5maWVsZHNba2V5XVtjYWxsYmFja0tleV0pO1xuICByZXR1cm4gcGF5bG9hZHMubWFwKChpdCkgPT4ge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgIGlmIChpdFtrZXldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaXRba2V5XSA9IGdldEZpZWxkQ2FsbGJhY2tWYWx1ZShtZXRhLmZpZWxkc1trZXldW2NhbGxiYWNrS2V5XSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpdDtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJQZXJzaXN0YWJsZVJlbGF0aW9uS2V5czxFPihcbiAgbWV0YTogRW50aXR5TWV0YTxFPixcbiAgcGF5bG9hZDogRSxcbiAgYWN0aW9uOiBDYXNjYWRlVHlwZSxcbik6IFJlbGF0aW9uS2V5PEU+W10ge1xuICBjb25zdCBrZXlzID0gZ2V0S2V5cyhwYXlsb2FkKTtcbiAgcmV0dXJuIGtleXMuZmlsdGVyKChrZXkpID0+IHtcbiAgICBjb25zdCByZWxPcHRzID0gbWV0YS5yZWxhdGlvbnNba2V5IGFzIFJlbGF0aW9uS2V5PEU+XTtcbiAgICByZXR1cm4gcmVsT3B0cyAmJiBpc0Nhc2NhZGFibGUoYWN0aW9uLCByZWxPcHRzLmNhc2NhZGUpO1xuICB9KSBhcyBSZWxhdGlvbktleTxFPltdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDYXNjYWRhYmxlKGFjdGlvbjogQ2FzY2FkZVR5cGUsIGNvbmZpZ3VyYXRpb24/OiBib29sZWFuIHwgQ2FzY2FkZVR5cGUpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBjb25maWd1cmF0aW9uID09PSAnYm9vbGVhbicpIHtcbiAgICByZXR1cm4gY29uZmlndXJhdGlvbjtcbiAgfVxuICByZXR1cm4gY29uZmlndXJhdGlvbiA9PT0gYWN0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyUmVsYXRpb25LZXlzPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4sIHNlbGVjdDogUXVlcnlTZWxlY3Q8RT4pOiBSZWxhdGlvbktleTxFPltdIHtcbiAgY29uc3Qga2V5cyA9IGZpbHRlclBvc2l0aXZlS2V5cyhzZWxlY3QpO1xuICByZXR1cm4ga2V5cy5maWx0ZXIoKGtleSkgPT4ga2V5IGluIG1ldGEucmVsYXRpb25zKSBhcyBSZWxhdGlvbktleTxFPltdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTZWxlY3RpbmdSZWxhdGlvbnM8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgc2VsZWN0OiBRdWVyeVNlbGVjdDxFPik6IGJvb2xlYW4ge1xuICBjb25zdCBrZXlzID0gZmlsdGVyUG9zaXRpdmVLZXlzKHNlbGVjdCk7XG4gIHJldHVybiBrZXlzLnNvbWUoKGtleSkgPT4ga2V5IGluIG1ldGEucmVsYXRpb25zKTtcbn1cblxuZnVuY3Rpb24gZmlsdGVyUG9zaXRpdmVLZXlzPEU+KHNlbGVjdDogUXVlcnlTZWxlY3Q8RT4pOiBLZXk8RT5bXSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHNlbGVjdCkpIHtcbiAgICByZXR1cm4gc2VsZWN0IGFzIEtleTxFPltdO1xuICB9XG4gIHJldHVybiBnZXRLZXlzKHNlbGVjdCkuZmlsdGVyKChrZXkpID0+IHNlbGVjdFtrZXldKSBhcyBLZXk8RT5bXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkU29ydE1hcDxFPihzb3J0OiBRdWVyeVNvcnQ8RT4pOiBRdWVyeVNvcnRNYXA8RT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheShzb3J0KSkge1xuICAgIHJldHVybiBzb3J0LnJlZHVjZShcbiAgICAgIChhY2MsIGl0KSA9PiB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0KSkge1xuICAgICAgICAgIGFjY1tpdFswXV0gPSBpdFsxXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhY2NbaXQuZmllbGRdID0gaXQuc29ydDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHt9IGFzIFF1ZXJ5U29ydE1hcDxFPixcbiAgICApO1xuICB9XG4gIHJldHVybiBzb3J0IGFzIFF1ZXJ5U29ydE1hcDxFPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF1Z21lbnRXaGVyZTxFPihcbiAgbWV0YTogRW50aXR5TWV0YTxFPixcbiAgdGFyZ2V0OiBRdWVyeVdoZXJlPEU+ID0ge30sXG4gIHNvdXJjZTogUXVlcnlXaGVyZTxFPiA9IHt9LFxuKTogUXVlcnlXaGVyZTxFPiB7XG4gIGNvbnN0IHRhcmdldENvbXBhcmlzb24gPSBidWxkUXVlcnlXaGVyZUFzTWFwKG1ldGEsIHRhcmdldCk7XG4gIGNvbnN0IHNvdXJjZUNvbXBhcmlzb24gPSBidWxkUXVlcnlXaGVyZUFzTWFwKG1ldGEsIHNvdXJjZSk7XG4gIHJldHVybiB7XG4gICAgLi4udGFyZ2V0Q29tcGFyaXNvbixcbiAgICAuLi5zb3VyY2VDb21wYXJpc29uLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVsZFF1ZXJ5V2hlcmVBc01hcDxFPihtZXRhOiBFbnRpdHlNZXRhPEU+LCBmaWx0ZXI6IFF1ZXJ5V2hlcmU8RT4gPSB7fSk6IFF1ZXJ5V2hlcmVNYXA8RT4ge1xuICBpZiAoZmlsdGVyIGluc3RhbmNlb2YgUXVlcnlSYXcpIHtcbiAgICByZXR1cm4geyAkYW5kOiBbZmlsdGVyXSB9IGFzIFF1ZXJ5V2hlcmVNYXA8RT47XG4gIH1cbiAgaWYgKGlzSWRWYWx1ZShmaWx0ZXIpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFttZXRhLmlkXTogZmlsdGVyLFxuICAgIH0gYXMgUXVlcnlXaGVyZU1hcDxFPjtcbiAgfVxuICByZXR1cm4gZmlsdGVyIGFzIFF1ZXJ5V2hlcmVNYXA8RT47XG59XG5cbmZ1bmN0aW9uIGlzSWRWYWx1ZTxFPihmaWx0ZXI6IFF1ZXJ5V2hlcmU8RT4pOiBmaWx0ZXIgaXMgSWRWYWx1ZTxFPiB8IElkVmFsdWU8RT5bXSB7XG4gIGNvbnN0IHR5cGUgPSB0eXBlb2YgZmlsdGVyO1xuICByZXR1cm4gKFxuICAgIHR5cGUgPT09ICdzdHJpbmcnIHx8XG4gICAgdHlwZSA9PT0gJ251bWJlcicgfHxcbiAgICB0eXBlID09PSAnYmlnaW50JyB8fFxuICAgIHR5cGVvZiAoZmlsdGVyIGFzIE1vbmdvSWQpLnRvSGV4U3RyaW5nID09PSAnZnVuY3Rpb24nIHx8XG4gICAgQXJyYXkuaXNBcnJheShmaWx0ZXIpXG4gICk7XG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './dialect.util.js';
|
|
2
|
+
export * from './object.util.js';
|
|
3
|
+
export * from './raw.js';
|
|
4
|
+
export * from './sql.util.js';
|
|
5
|
+
export * from './string.util.js';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGlhbGVjdC51dGlsLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vb2JqZWN0LnV0aWwuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9yYXcuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcWwudXRpbC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmluZy51dGlsLmpzJztcbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FieldKey, FieldOptions } from '../type/index.js';
|
|
2
|
+
export declare function clone<T>(value: T): T;
|
|
3
|
+
export declare function hasKeys<T>(obj: T): boolean;
|
|
4
|
+
export declare function getKeys<T>(obj: T): string[];
|
|
5
|
+
export declare function getFieldKeys<E>(fields: {
|
|
6
|
+
[K in FieldKey<E>]?: FieldOptions;
|
|
7
|
+
}): FieldKey<E>[];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function clone(value) {
|
|
2
|
+
if (typeof value !== 'object' || value === null) {
|
|
3
|
+
return value;
|
|
4
|
+
}
|
|
5
|
+
if (Array.isArray(value)) {
|
|
6
|
+
return value.map((it) => clone(it));
|
|
7
|
+
}
|
|
8
|
+
return { ...value };
|
|
9
|
+
}
|
|
10
|
+
export function hasKeys(obj) {
|
|
11
|
+
return getKeys(obj).length > 0;
|
|
12
|
+
}
|
|
13
|
+
export function getKeys(obj) {
|
|
14
|
+
return obj ? Object.keys(obj) : [];
|
|
15
|
+
}
|
|
16
|
+
export function getFieldKeys(fields) {
|
|
17
|
+
return getKeys(fields).filter((field) => fields[field].eager ?? true);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9vYmplY3QudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsS0FBSyxDQUFJLEtBQVE7SUFDL0IsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2hELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFpQixDQUFDO0lBQ3RELENBQUM7SUFDRCxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztBQUN0QixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBSSxHQUFNO0lBQy9CLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUksR0FBTTtJQUMvQixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3JDLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUMxQixNQUVDO0lBRUQsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBb0IsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQWtCLENBQUM7QUFDeEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmllbGRLZXksIEZpZWxkT3B0aW9ucyB9IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY2xvbmU8VD4odmFsdWU6IFQpOiBUIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLm1hcCgoaXQpID0+IGNsb25lKGl0KSkgYXMgdW5rbm93biBhcyBUO1xuICB9XG4gIHJldHVybiB7IC4uLnZhbHVlIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNLZXlzPFQ+KG9iajogVCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0S2V5cyhvYmopLmxlbmd0aCA+IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRLZXlzPFQ+KG9iajogVCk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIG9iaiA/IE9iamVjdC5rZXlzKG9iaikgOiBbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpZWxkS2V5czxFPihcbiAgZmllbGRzOiB7XG4gICAgW0sgaW4gRmllbGRLZXk8RT5dPzogRmllbGRPcHRpb25zO1xuICB9LFxuKTogRmllbGRLZXk8RT5bXSB7XG4gIHJldHVybiBnZXRLZXlzKGZpZWxkcykuZmlsdGVyKChmaWVsZCkgPT4gZmllbGRzW2ZpZWxkIGFzIEZpZWxkS2V5PEU+XS5lYWdlciA/PyB0cnVlKSBhcyBGaWVsZEtleTxFPltdO1xufVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type QueryRawFn, type Scalar } from '../type/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Allow using any raw value that shouldn't be automatically escaped by the ORM.
|
|
4
|
+
* @param value the raw value
|
|
5
|
+
* @param alias optional alias
|
|
6
|
+
* @returns a QueryRaw instance
|
|
7
|
+
*/
|
|
8
|
+
export declare function raw(value: Scalar | QueryRawFn, alias?: string): any;
|
package/dist/util/raw.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { QueryRaw } from '../type/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Allow using any raw value that shouldn't be automatically escaped by the ORM.
|
|
4
|
+
* @param value the raw value
|
|
5
|
+
* @param alias optional alias
|
|
6
|
+
* @returns a QueryRaw instance
|
|
7
|
+
*/
|
|
8
|
+
export function raw(value, alias) {
|
|
9
|
+
return new QueryRaw(value, alias);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvcmF3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQWdDLE1BQU0sa0JBQWtCLENBQUM7QUFFMUU7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQTBCLEVBQUUsS0FBYztJQUM1RCxPQUFPLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlSYXcsIHR5cGUgUXVlcnlSYXdGbiwgdHlwZSBTY2FsYXIgfSBmcm9tICcuLi90eXBlL2luZGV4LmpzJztcblxuLyoqXG4gKiBBbGxvdyB1c2luZyBhbnkgcmF3IHZhbHVlIHRoYXQgc2hvdWxkbid0IGJlIGF1dG9tYXRpY2FsbHkgZXNjYXBlZCBieSB0aGUgT1JNLlxuICogQHBhcmFtIHZhbHVlIHRoZSByYXcgdmFsdWVcbiAqIEBwYXJhbSBhbGlhcyBvcHRpb25hbCBhbGlhc1xuICogQHJldHVybnMgYSBRdWVyeVJhdyBpbnN0YW5jZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmF3KHZhbHVlOiBTY2FsYXIgfCBRdWVyeVJhd0ZuLCBhbGlhcz86IHN0cmluZyk6IGFueSB7XG4gIHJldHVybiBuZXcgUXVlcnlSYXcodmFsdWUsIGFsaWFzKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare function flatObject<E>(obj: E, pre?: string): E;
|
|
2
|
+
export declare function unflatObjects<T>(objects: T[]): T[];
|
|
3
|
+
export declare function obtainAttrsPaths<T>(row: T): {
|
|
4
|
+
[k: string]: string[];
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Escape a SQL identifier (table name, column name, etc.)
|
|
8
|
+
* @param val the identifier to escape
|
|
9
|
+
* @param escapeIdChar the escape character to use (e.g. ` or ")
|
|
10
|
+
* @param forbidQualified whether to forbid qualified identifiers (containing dots)
|
|
11
|
+
* @param addDot whether to add a dot suffix
|
|
12
|
+
*/
|
|
13
|
+
export declare function escapeSqlId(val: string, escapeIdChar?: '`' | '"', forbidQualified?: boolean, addDot?: boolean): string;
|