@uql/core 3.1.2 → 3.1.3
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 +6 -2
- package/README.md +22 -27
- package/dist/browser/cc-BEf4wTUm.js +535 -0
- package/dist/browser/cc-BEf4wTUm.js.map +1 -0
- package/dist/browser/http/bus.d.ts +1 -0
- package/dist/browser/http/bus.d.ts.map +1 -0
- package/dist/browser/http/bus.js +1 -1
- package/dist/browser/http/bus.js.map +1 -0
- package/dist/browser/http/http.d.ts +1 -0
- package/dist/browser/http/http.d.ts.map +1 -0
- package/dist/browser/http/http.js +1 -1
- package/dist/browser/http/http.js.map +1 -0
- package/dist/browser/http/index.d.ts +1 -0
- package/dist/browser/http/index.d.ts.map +1 -0
- package/dist/browser/http/index.js +1 -1
- package/dist/browser/http/index.js.map +1 -0
- package/dist/browser/index.d.ts +1 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/options.d.ts +1 -0
- package/dist/browser/options.d.ts.map +1 -0
- package/dist/browser/options.js +1 -1
- package/dist/browser/options.js.map +1 -0
- package/dist/browser/querier/genericClientRepository.d.ts +1 -0
- package/dist/browser/querier/genericClientRepository.d.ts.map +1 -0
- package/dist/browser/querier/genericClientRepository.js +1 -1
- package/dist/browser/querier/genericClientRepository.js.map +1 -0
- package/dist/browser/querier/httpQuerier.d.ts +1 -0
- package/dist/browser/querier/httpQuerier.d.ts.map +1 -0
- package/dist/browser/querier/httpQuerier.js +1 -1
- package/dist/browser/querier/httpQuerier.js.map +1 -0
- package/dist/browser/querier/index.d.ts +1 -0
- package/dist/browser/querier/index.d.ts.map +1 -0
- package/dist/browser/querier/index.js +1 -1
- package/dist/browser/querier/index.js.map +1 -0
- package/dist/browser/querier/querier.util.d.ts +1 -0
- package/dist/browser/querier/querier.util.d.ts.map +1 -0
- package/dist/browser/querier/querier.util.js +1 -1
- package/dist/browser/querier/querier.util.js.map +1 -0
- package/dist/browser/type/clientQuerier.d.ts +1 -0
- package/dist/browser/type/clientQuerier.d.ts.map +1 -0
- package/dist/browser/type/clientQuerier.js +1 -1
- package/dist/browser/type/clientQuerier.js.map +1 -0
- package/dist/browser/type/clientQuerierPool.d.ts +1 -0
- package/dist/browser/type/clientQuerierPool.d.ts.map +1 -0
- package/dist/browser/type/clientQuerierPool.js +1 -1
- package/dist/browser/type/clientQuerierPool.js.map +1 -0
- package/dist/browser/type/clientRepository.d.ts +1 -0
- package/dist/browser/type/clientRepository.d.ts.map +1 -0
- package/dist/browser/type/clientRepository.js +1 -1
- package/dist/browser/type/clientRepository.js.map +1 -0
- package/dist/browser/type/index.d.ts +1 -0
- package/dist/browser/type/index.d.ts.map +1 -0
- package/dist/browser/type/index.js +1 -1
- package/dist/browser/type/index.js.map +1 -0
- package/dist/browser/type/request.d.ts +1 -0
- package/dist/browser/type/request.d.ts.map +1 -0
- package/dist/browser/type/request.js +1 -1
- package/dist/browser/type/request.js.map +1 -0
- package/dist/dialect/abstractDialect.d.ts +1 -0
- package/dist/dialect/abstractDialect.d.ts.map +1 -0
- package/dist/dialect/abstractDialect.js +1 -1
- package/dist/dialect/abstractDialect.js.map +1 -0
- package/dist/dialect/abstractSqlDialect.d.ts +1 -0
- package/dist/dialect/abstractSqlDialect.d.ts.map +1 -0
- package/dist/dialect/abstractSqlDialect.js +1 -1
- package/dist/dialect/abstractSqlDialect.js.map +1 -0
- package/dist/dialect/index.d.ts +1 -0
- package/dist/dialect/index.d.ts.map +1 -0
- package/dist/dialect/index.js +1 -1
- package/dist/dialect/index.js.map +1 -0
- package/dist/dialect/queryContext.d.ts +1 -0
- package/dist/dialect/queryContext.d.ts.map +1 -0
- package/dist/dialect/queryContext.js +1 -1
- package/dist/dialect/queryContext.js.map +1 -0
- package/dist/entity/decorator/definition.d.ts +1 -0
- package/dist/entity/decorator/definition.d.ts.map +1 -0
- package/dist/entity/decorator/definition.js +1 -2
- package/dist/entity/decorator/definition.js.map +1 -0
- package/dist/entity/decorator/entity.d.ts +1 -0
- package/dist/entity/decorator/entity.d.ts.map +1 -0
- package/dist/entity/decorator/entity.js +1 -1
- package/dist/entity/decorator/entity.js.map +1 -0
- package/dist/entity/decorator/field.d.ts +1 -0
- package/dist/entity/decorator/field.d.ts.map +1 -0
- package/dist/entity/decorator/field.js +1 -1
- package/dist/entity/decorator/field.js.map +1 -0
- package/dist/entity/decorator/id.d.ts +1 -0
- package/dist/entity/decorator/id.d.ts.map +1 -0
- package/dist/entity/decorator/id.js +1 -1
- package/dist/entity/decorator/id.js.map +1 -0
- package/dist/entity/decorator/index.d.ts +1 -0
- package/dist/entity/decorator/index.d.ts.map +1 -0
- package/dist/entity/decorator/index.js +1 -1
- package/dist/entity/decorator/index.js.map +1 -0
- package/dist/entity/decorator/relation.d.ts +1 -0
- package/dist/entity/decorator/relation.d.ts.map +1 -0
- package/dist/entity/decorator/relation.js +1 -1
- package/dist/entity/decorator/relation.js.map +1 -0
- package/dist/entity/index.d.ts +1 -0
- package/dist/entity/index.d.ts.map +1 -0
- package/dist/entity/index.js +1 -1
- package/dist/entity/index.js.map +1 -0
- package/dist/express/index.d.ts +1 -0
- package/dist/express/index.d.ts.map +1 -0
- package/dist/express/index.js +1 -1
- package/dist/express/index.js.map +1 -0
- package/dist/express/querierMiddleware.d.ts +1 -0
- package/dist/express/querierMiddleware.d.ts.map +1 -0
- package/dist/express/querierMiddleware.js +1 -1
- package/dist/express/querierMiddleware.js.map +1 -0
- package/dist/express/query.util.d.ts +1 -0
- package/dist/express/query.util.d.ts.map +1 -0
- package/dist/express/query.util.js +1 -1
- package/dist/express/query.util.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -0
- package/dist/maria/index.d.ts +1 -0
- package/dist/maria/index.d.ts.map +1 -0
- package/dist/maria/index.js +1 -1
- package/dist/maria/index.js.map +1 -0
- package/dist/maria/mariaDialect.d.ts +1 -0
- package/dist/maria/mariaDialect.d.ts.map +1 -0
- package/dist/maria/mariaDialect.js +1 -1
- package/dist/maria/mariaDialect.js.map +1 -0
- package/dist/maria/mariadbQuerier.d.ts +1 -0
- package/dist/maria/mariadbQuerier.d.ts.map +1 -0
- package/dist/maria/mariadbQuerier.js +1 -1
- package/dist/maria/mariadbQuerier.js.map +1 -0
- package/dist/maria/mariadbQuerierPool.d.ts +1 -0
- package/dist/maria/mariadbQuerierPool.d.ts.map +1 -0
- package/dist/maria/mariadbQuerierPool.js +1 -1
- package/dist/maria/mariadbQuerierPool.js.map +1 -0
- package/dist/migrate/cli.d.ts +1 -0
- package/dist/migrate/cli.d.ts.map +1 -0
- package/dist/migrate/cli.js +3 -3
- package/dist/migrate/cli.js.map +1 -0
- package/dist/migrate/generator/index.d.ts +1 -0
- package/dist/migrate/generator/index.d.ts.map +1 -0
- package/dist/migrate/generator/index.js +1 -1
- package/dist/migrate/generator/index.js.map +1 -0
- package/dist/migrate/generator/mongoSchemaGenerator.d.ts +1 -0
- package/dist/migrate/generator/mongoSchemaGenerator.d.ts.map +1 -0
- package/dist/migrate/generator/mongoSchemaGenerator.js +1 -1
- package/dist/migrate/generator/mongoSchemaGenerator.js.map +1 -0
- package/dist/migrate/generator/mysqlSchemaGenerator.d.ts +1 -0
- package/dist/migrate/generator/mysqlSchemaGenerator.d.ts.map +1 -0
- package/dist/migrate/generator/mysqlSchemaGenerator.js +1 -1
- package/dist/migrate/generator/mysqlSchemaGenerator.js.map +1 -0
- package/dist/migrate/generator/postgresSchemaGenerator.d.ts +1 -0
- package/dist/migrate/generator/postgresSchemaGenerator.d.ts.map +1 -0
- package/dist/migrate/generator/postgresSchemaGenerator.js +1 -1
- package/dist/migrate/generator/postgresSchemaGenerator.js.map +1 -0
- package/dist/migrate/generator/sqliteSchemaGenerator.d.ts +1 -0
- package/dist/migrate/generator/sqliteSchemaGenerator.d.ts.map +1 -0
- package/dist/migrate/generator/sqliteSchemaGenerator.js +1 -1
- package/dist/migrate/generator/sqliteSchemaGenerator.js.map +1 -0
- package/dist/migrate/index.d.ts +1 -0
- package/dist/migrate/index.d.ts.map +1 -0
- package/dist/migrate/index.js +1 -1
- package/dist/migrate/index.js.map +1 -0
- package/dist/migrate/introspection/index.d.ts +1 -0
- package/dist/migrate/introspection/index.d.ts.map +1 -0
- package/dist/migrate/introspection/index.js +1 -1
- package/dist/migrate/introspection/index.js.map +1 -0
- package/dist/migrate/introspection/mongoIntrospector.d.ts +1 -0
- package/dist/migrate/introspection/mongoIntrospector.d.ts.map +1 -0
- package/dist/migrate/introspection/mongoIntrospector.js +1 -1
- package/dist/migrate/introspection/mongoIntrospector.js.map +1 -0
- package/dist/migrate/introspection/mysqlIntrospector.d.ts +1 -0
- package/dist/migrate/introspection/mysqlIntrospector.d.ts.map +1 -0
- package/dist/migrate/introspection/mysqlIntrospector.js +1 -1
- package/dist/migrate/introspection/mysqlIntrospector.js.map +1 -0
- package/dist/migrate/introspection/postgresIntrospector.d.ts +1 -0
- package/dist/migrate/introspection/postgresIntrospector.d.ts.map +1 -0
- package/dist/migrate/introspection/postgresIntrospector.js +1 -1
- package/dist/migrate/introspection/postgresIntrospector.js.map +1 -0
- package/dist/migrate/introspection/sqliteIntrospector.d.ts +1 -0
- package/dist/migrate/introspection/sqliteIntrospector.d.ts.map +1 -0
- package/dist/migrate/introspection/sqliteIntrospector.js +1 -1
- package/dist/migrate/introspection/sqliteIntrospector.js.map +1 -0
- package/dist/migrate/migrator.d.ts +1 -0
- package/dist/migrate/migrator.d.ts.map +1 -0
- package/dist/migrate/migrator.js +1 -1
- package/dist/migrate/migrator.js.map +1 -0
- package/dist/migrate/schemaGenerator.d.ts +1 -0
- package/dist/migrate/schemaGenerator.d.ts.map +1 -0
- package/dist/migrate/schemaGenerator.js +1 -1
- package/dist/migrate/schemaGenerator.js.map +1 -0
- package/dist/migrate/storage/databaseStorage.d.ts +1 -0
- package/dist/migrate/storage/databaseStorage.d.ts.map +1 -0
- package/dist/migrate/storage/databaseStorage.js +1 -1
- package/dist/migrate/storage/databaseStorage.js.map +1 -0
- package/dist/migrate/storage/index.d.ts +1 -0
- package/dist/migrate/storage/index.d.ts.map +1 -0
- package/dist/migrate/storage/index.js +1 -1
- package/dist/migrate/storage/index.js.map +1 -0
- package/dist/migrate/storage/jsonStorage.d.ts +1 -0
- package/dist/migrate/storage/jsonStorage.d.ts.map +1 -0
- package/dist/migrate/storage/jsonStorage.js +1 -1
- package/dist/migrate/storage/jsonStorage.js.map +1 -0
- package/dist/migrate/type.d.ts +1 -0
- package/dist/migrate/type.d.ts.map +1 -0
- package/dist/migrate/type.js +1 -1
- package/dist/migrate/type.js.map +1 -0
- package/dist/mongo/index.d.ts +1 -0
- package/dist/mongo/index.d.ts.map +1 -0
- package/dist/mongo/index.js +1 -1
- package/dist/mongo/index.js.map +1 -0
- package/dist/mongo/mongoDialect.d.ts +1 -0
- package/dist/mongo/mongoDialect.d.ts.map +1 -0
- package/dist/mongo/mongoDialect.js +1 -1
- package/dist/mongo/mongoDialect.js.map +1 -0
- package/dist/mongo/mongodbQuerier.d.ts +1 -0
- package/dist/mongo/mongodbQuerier.d.ts.map +1 -0
- package/dist/mongo/mongodbQuerier.js +1 -1
- package/dist/mongo/mongodbQuerier.js.map +1 -0
- package/dist/mongo/mongodbQuerierPool.d.ts +1 -0
- package/dist/mongo/mongodbQuerierPool.d.ts.map +1 -0
- package/dist/mongo/mongodbQuerierPool.js +1 -1
- package/dist/mongo/mongodbQuerierPool.js.map +1 -0
- package/dist/mysql/index.d.ts +1 -0
- package/dist/mysql/index.d.ts.map +1 -0
- package/dist/mysql/index.js +1 -1
- package/dist/mysql/index.js.map +1 -0
- package/dist/mysql/mysql2Querier.d.ts +1 -0
- package/dist/mysql/mysql2Querier.d.ts.map +1 -0
- package/dist/mysql/mysql2Querier.js +1 -1
- package/dist/mysql/mysql2Querier.js.map +1 -0
- package/dist/mysql/mysql2QuerierPool.d.ts +1 -0
- package/dist/mysql/mysql2QuerierPool.d.ts.map +1 -0
- package/dist/mysql/mysql2QuerierPool.js +1 -1
- package/dist/mysql/mysql2QuerierPool.js.map +1 -0
- package/dist/mysql/mysqlDialect.d.ts +1 -0
- package/dist/mysql/mysqlDialect.d.ts.map +1 -0
- package/dist/mysql/mysqlDialect.js +1 -1
- package/dist/mysql/mysqlDialect.js.map +1 -0
- package/dist/namingStrategy/defaultNamingStrategy.d.ts +1 -0
- package/dist/namingStrategy/defaultNamingStrategy.d.ts.map +1 -0
- package/dist/namingStrategy/defaultNamingStrategy.js +1 -1
- package/dist/namingStrategy/defaultNamingStrategy.js.map +1 -0
- package/dist/namingStrategy/index.d.ts +1 -0
- package/dist/namingStrategy/index.d.ts.map +1 -0
- package/dist/namingStrategy/index.js +1 -1
- package/dist/namingStrategy/index.js.map +1 -0
- package/dist/namingStrategy/snakeCaseNamingStrategy.d.ts +1 -0
- package/dist/namingStrategy/snakeCaseNamingStrategy.d.ts.map +1 -0
- package/dist/namingStrategy/snakeCaseNamingStrategy.js +1 -1
- package/dist/namingStrategy/snakeCaseNamingStrategy.js.map +1 -0
- package/dist/options.d.ts +1 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +1 -1
- package/dist/options.js.map +1 -0
- package/dist/postgres/index.d.ts +1 -0
- package/dist/postgres/index.d.ts.map +1 -0
- package/dist/postgres/index.js +1 -1
- package/dist/postgres/index.js.map +1 -0
- package/dist/postgres/pgQuerier.d.ts +1 -0
- package/dist/postgres/pgQuerier.d.ts.map +1 -0
- package/dist/postgres/pgQuerier.js +1 -1
- package/dist/postgres/pgQuerier.js.map +1 -0
- package/dist/postgres/pgQuerierPool.d.ts +1 -0
- package/dist/postgres/pgQuerierPool.d.ts.map +1 -0
- package/dist/postgres/pgQuerierPool.js +1 -1
- package/dist/postgres/pgQuerierPool.js.map +1 -0
- package/dist/postgres/postgresDialect.d.ts +1 -0
- package/dist/postgres/postgresDialect.d.ts.map +1 -0
- package/dist/postgres/postgresDialect.js +1 -1
- package/dist/postgres/postgresDialect.js.map +1 -0
- package/dist/querier/abstractQuerier.d.ts +1 -0
- package/dist/querier/abstractQuerier.d.ts.map +1 -0
- package/dist/querier/abstractQuerier.js +1 -1
- package/dist/querier/abstractQuerier.js.map +1 -0
- package/dist/querier/abstractQuerierPool.d.ts +1 -0
- package/dist/querier/abstractQuerierPool.d.ts.map +1 -0
- package/dist/querier/abstractQuerierPool.js +1 -1
- package/dist/querier/abstractQuerierPool.js.map +1 -0
- package/dist/querier/abstractSqlQuerier.d.ts +1 -0
- package/dist/querier/abstractSqlQuerier.d.ts.map +1 -0
- package/dist/querier/abstractSqlQuerier.js +1 -1
- package/dist/querier/abstractSqlQuerier.js.map +1 -0
- package/dist/querier/decorator/index.d.ts +1 -0
- package/dist/querier/decorator/index.d.ts.map +1 -0
- package/dist/querier/decorator/index.js +1 -1
- package/dist/querier/decorator/index.js.map +1 -0
- package/dist/querier/decorator/injectQuerier.d.ts +1 -0
- package/dist/querier/decorator/injectQuerier.d.ts.map +1 -0
- package/dist/querier/decorator/injectQuerier.js +1 -1
- package/dist/querier/decorator/injectQuerier.js.map +1 -0
- package/dist/querier/decorator/serialized.d.ts +1 -0
- package/dist/querier/decorator/serialized.d.ts.map +1 -0
- package/dist/querier/decorator/serialized.js +1 -1
- package/dist/querier/decorator/serialized.js.map +1 -0
- package/dist/querier/decorator/transactional.d.ts +1 -0
- package/dist/querier/decorator/transactional.d.ts.map +1 -0
- package/dist/querier/decorator/transactional.js +1 -1
- package/dist/querier/decorator/transactional.js.map +1 -0
- package/dist/querier/index.d.ts +1 -0
- package/dist/querier/index.d.ts.map +1 -0
- package/dist/querier/index.js +1 -1
- package/dist/querier/index.js.map +1 -0
- package/dist/repository/genericRepository.d.ts +1 -0
- package/dist/repository/genericRepository.d.ts.map +1 -0
- package/dist/repository/genericRepository.js +1 -1
- package/dist/repository/genericRepository.js.map +1 -0
- package/dist/repository/index.d.ts +1 -0
- package/dist/repository/index.d.ts.map +1 -0
- package/dist/repository/index.js +1 -1
- package/dist/repository/index.js.map +1 -0
- package/dist/sqlite/index.d.ts +1 -0
- package/dist/sqlite/index.d.ts.map +1 -0
- package/dist/sqlite/index.js +1 -1
- package/dist/sqlite/index.js.map +1 -0
- package/dist/sqlite/sqliteDialect.d.ts +1 -0
- package/dist/sqlite/sqliteDialect.d.ts.map +1 -0
- package/dist/sqlite/sqliteDialect.js +1 -1
- package/dist/sqlite/sqliteDialect.js.map +1 -0
- package/dist/sqlite/sqliteQuerier.d.ts +1 -0
- package/dist/sqlite/sqliteQuerier.d.ts.map +1 -0
- package/dist/sqlite/sqliteQuerier.js +1 -1
- package/dist/sqlite/sqliteQuerier.js.map +1 -0
- package/dist/sqlite/sqliteQuerierPool.d.ts +1 -0
- package/dist/sqlite/sqliteQuerierPool.d.ts.map +1 -0
- package/dist/sqlite/sqliteQuerierPool.js +1 -1
- package/dist/sqlite/sqliteQuerierPool.js.map +1 -0
- package/dist/type/entity.d.ts +1 -0
- package/dist/type/entity.d.ts.map +1 -0
- package/dist/type/entity.js +1 -1
- package/dist/type/entity.js.map +1 -0
- package/dist/type/index.d.ts +1 -0
- package/dist/type/index.d.ts.map +1 -0
- package/dist/type/index.js +1 -1
- package/dist/type/index.js.map +1 -0
- package/dist/type/migration.d.ts +1 -0
- package/dist/type/migration.d.ts.map +1 -0
- package/dist/type/migration.js +1 -1
- package/dist/type/migration.js.map +1 -0
- package/dist/type/namingStrategy.d.ts +1 -0
- package/dist/type/namingStrategy.d.ts.map +1 -0
- package/dist/type/namingStrategy.js +1 -1
- package/dist/type/namingStrategy.js.map +1 -0
- package/dist/type/querier.d.ts +1 -0
- package/dist/type/querier.d.ts.map +1 -0
- package/dist/type/querier.js +1 -1
- package/dist/type/querier.js.map +1 -0
- package/dist/type/querierPool.d.ts +1 -0
- package/dist/type/querierPool.d.ts.map +1 -0
- package/dist/type/querierPool.js +1 -1
- package/dist/type/querierPool.js.map +1 -0
- package/dist/type/query.d.ts +1 -0
- package/dist/type/query.d.ts.map +1 -0
- package/dist/type/query.js +1 -1
- package/dist/type/query.js.map +1 -0
- package/dist/type/repository.d.ts +1 -0
- package/dist/type/repository.d.ts.map +1 -0
- package/dist/type/repository.js +1 -1
- package/dist/type/repository.js.map +1 -0
- package/dist/type/universalQuerier.d.ts +1 -0
- package/dist/type/universalQuerier.d.ts.map +1 -0
- package/dist/type/universalQuerier.js +1 -1
- package/dist/type/universalQuerier.js.map +1 -0
- package/dist/type/utility.d.ts +1 -0
- package/dist/type/utility.d.ts.map +1 -0
- package/dist/type/utility.js +1 -1
- package/dist/type/utility.js.map +1 -0
- package/dist/util/dialect.util.d.ts +1 -0
- package/dist/util/dialect.util.d.ts.map +1 -0
- package/dist/util/dialect.util.js +1 -1
- package/dist/util/dialect.util.js.map +1 -0
- package/dist/util/index.d.ts +1 -0
- package/dist/util/index.d.ts.map +1 -0
- package/dist/util/index.js +1 -1
- package/dist/util/index.js.map +1 -0
- package/dist/util/object.util.d.ts +1 -0
- package/dist/util/object.util.d.ts.map +1 -0
- package/dist/util/object.util.js +1 -1
- package/dist/util/object.util.js.map +1 -0
- package/dist/util/raw.d.ts +1 -0
- package/dist/util/raw.d.ts.map +1 -0
- package/dist/util/raw.js +1 -1
- package/dist/util/raw.js.map +1 -0
- package/dist/util/sql.util.d.ts +1 -0
- package/dist/util/sql.util.d.ts.map +1 -0
- package/dist/util/sql.util.js +1 -1
- package/dist/util/sql.util.js.map +1 -0
- package/dist/util/string.util.d.ts +1 -0
- package/dist/util/string.util.d.ts.map +1 -0
- package/dist/util/string.util.js +1 -1
- package/dist/util/string.util.js.map +1 -0
- package/package.json +3 -2
- package/dist/maria/mariaQuerierPool.test.d.ts +0 -5
- package/dist/maria/mariaQuerierPool.test.js +0 -19
- package/dist/maria/mariadbQuerier.test.d.ts +0 -4
- package/dist/maria/mariadbQuerier.test.js +0 -19
- package/dist/migrate/migrator-mongo.test.d.ts +0 -1
- package/dist/migrate/migrator-mongo.test.js +0 -54
- package/dist/migrate/migrator.test.d.ts +0 -1
- package/dist/migrate/migrator.test.js +0 -106
- package/dist/mongo/mongodbQuerier.test.d.ts +0 -1
- package/dist/mongo/mongodbQuerier.test.js +0 -36
- package/dist/mongo/mongodbQuerierPool.test.d.ts +0 -1
- package/dist/mongo/mongodbQuerierPool.test.js +0 -21
- package/dist/mysql/mysql2Querier.test.d.ts +0 -4
- package/dist/mysql/mysql2Querier.test.js +0 -16
- package/dist/mysql/mysql2QuerierPool.test.d.ts +0 -5
- package/dist/mysql/mysql2QuerierPool.test.js +0 -16
- package/dist/postgres/pgQuerier.test.d.ts +0 -4
- package/dist/postgres/pgQuerier.test.js +0 -20
- package/dist/postgres/pgQuerierPool.test.d.ts +0 -5
- package/dist/postgres/pgQuerierPool.test.js +0 -23
- package/dist/querier/abstractQuerier-test.d.ts +0 -45
- package/dist/querier/abstractQuerier-test.js +0 -461
- package/dist/querier/abstractQuerierPool-test.d.ts +0 -9
- package/dist/querier/abstractQuerierPool-test.js +0 -18
- package/dist/querier/abstractSqlQuerier-test.d.ts +0 -9
- package/dist/querier/abstractSqlQuerier-test.js +0 -16
- package/dist/sqlite/sqliteQuerier.test.d.ts +0 -5
- package/dist/sqlite/sqliteQuerier.test.js +0 -19
- package/dist/sqlite/sqliteQuerierPool.test.d.ts +0 -5
- package/dist/sqlite/sqliteQuerierPool.test.js +0 -10
- package/dist/test/entityMock.d.ts +0 -164
- package/dist/test/entityMock.js +0 -554
- package/dist/test/index.d.ts +0 -3
- package/dist/test/index.js +0 -4
- package/dist/test/it.util.d.ts +0 -4
- package/dist/test/it.util.js +0 -55
- package/dist/test/spec.util.d.ts +0 -14
- package/dist/test/spec.util.js +0 -50
package/CHANGELOG.md
CHANGED
|
@@ -3,9 +3,13 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
## [3.1.
|
|
6
|
+
## [3.1.3](https://github.com/rogerpadilla/uql/compare/@uql/core@3.1.2...@uql/core@3.1.3) (2025-12-30)
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* add migration CLI and update core package build configuration with new build config and declaration maps while removing old path aliases. ([2b87dd4](https://github.com/rogerpadilla/uql/commit/2b87dd411d05c9844b3e3a6b0a7c74d120b9c362))
|
|
12
|
+
* Implement custom test coverage reporting and simplify README database adapter table. ([837fadf](https://github.com/rogerpadilla/uql/commit/837fadf2cfc27be3a16efc2c489f83c047cc24e1))
|
|
9
13
|
|
|
10
14
|
|
|
11
15
|
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://github.com/rogerpadilla/uql) [](https://coveralls.io/r/rogerpadilla/uql?branch=main) [](https://github.com/rogerpadilla/uql/blob/main/LICENSE) [](https://www.npmjs.com/package/@uql/core)
|
|
6
6
|
|
|
7
|
-
[
|
|
7
|
+
[UQL](https://uql.app) is the [smartest ORM](https://medium.com/@rogerpadillac/in-search-of-the-perfect-orm-e01fcc9bce3d) for TypeScript, it is designed to be fast, safe, and easy to integrate into any application.
|
|
8
8
|
|
|
9
9
|
It can run in Node.js, Browser, React Native, Expo, Electron, Deno, Bun, and many more!
|
|
10
10
|
|
|
@@ -56,12 +56,12 @@ See [this article](https://medium.com/@rogerpadillac/in-search-of-the-perfect-or
|
|
|
56
56
|
|
|
57
57
|
2. Install one of the specific adapters for your database:
|
|
58
58
|
|
|
59
|
-
| Database | Driver
|
|
60
|
-
| ------------ | ----------------
|
|
61
|
-
| `PostgreSQL` | `pg`
|
|
62
|
-
| `SQLite` | `better-sqlite3`
|
|
63
|
-
| `MariaDB` | `mariadb`
|
|
64
|
-
| `MySQL` | `mysql2`
|
|
59
|
+
| Database | Driver
|
|
60
|
+
| ------------ | ----------------
|
|
61
|
+
| `PostgreSQL` | `pg`
|
|
62
|
+
| `SQLite` | `better-sqlite3`
|
|
63
|
+
| `MariaDB` | `mariadb`
|
|
64
|
+
| `MySQL` | `mysql2`
|
|
65
65
|
|
|
66
66
|
|
|
67
67
|
|
|
@@ -76,14 +76,12 @@ bun add pg
|
|
|
76
76
|
3. Additionally, your `tsconfig.json` may need the following flags:
|
|
77
77
|
|
|
78
78
|
```json
|
|
79
|
-
"target": "
|
|
79
|
+
"target": "ES2024",
|
|
80
80
|
"experimentalDecorators": true,
|
|
81
81
|
"emitDecoratorMetadata": true
|
|
82
82
|
```
|
|
83
83
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
> **Note**: UQL provides first-class support for **Bun**. It is recommended to use Bun for a significantly faster developer experience.
|
|
84
|
+
> **Note**: `"ES2022"`, `"ES2023"`, or `"ESNext"` will also work fine for `target`.
|
|
87
85
|
|
|
88
86
|
---
|
|
89
87
|
|
|
@@ -91,11 +89,10 @@ bun add pg
|
|
|
91
89
|
|
|
92
90
|
## 2. Define the entities
|
|
93
91
|
|
|
94
|
-
Annotate your classes with decorators from
|
|
92
|
+
Annotate your classes with decorators from `@uql/core`. UQL supports detailed schema metadata for precise DDL generation.
|
|
95
93
|
|
|
96
94
|
```ts
|
|
97
|
-
import { Entity, Id, Field, OneToOne, OneToMany, ManyToOne, ManyToMany } from '@uql/core
|
|
98
|
-
import type { Relation } from '@uql/core/type';
|
|
95
|
+
import { Entity, Id, Field, OneToOne, OneToMany, ManyToOne, ManyToMany, type Relation } from '@uql/core';
|
|
99
96
|
|
|
100
97
|
@Entity()
|
|
101
98
|
export class User {
|
|
@@ -179,7 +176,7 @@ A querier-pool can be set in any of the bootstrap files of your app (e.g. in the
|
|
|
179
176
|
```ts
|
|
180
177
|
// file: ./shared/orm.ts
|
|
181
178
|
import { SnakeCaseNamingStrategy } from '@uql/core';
|
|
182
|
-
import { PgQuerierPool } from 'uql
|
|
179
|
+
import { PgQuerierPool } from '@uql/core/postgres';
|
|
183
180
|
|
|
184
181
|
export const querierPool = new PgQuerierPool(
|
|
185
182
|
{
|
|
@@ -212,7 +209,7 @@ UQL provides multiple ways to interact with your data, from low-level `Queriers`
|
|
|
212
209
|
Repositories provide a clean, Data-Mapper style interface for your entities.
|
|
213
210
|
|
|
214
211
|
```ts
|
|
215
|
-
import { GenericRepository } from '@uql/core
|
|
212
|
+
import { GenericRepository } from '@uql/core';
|
|
216
213
|
import { User } from './shared/models/index.js';
|
|
217
214
|
import { querierPool } from './shared/orm.js';
|
|
218
215
|
|
|
@@ -231,7 +228,7 @@ try {
|
|
|
231
228
|
tagsCount: true // Virtual field (calculated at runtime)
|
|
232
229
|
},
|
|
233
230
|
$where: {
|
|
234
|
-
email: { $iincludes: '@
|
|
231
|
+
email: { $iincludes: '@example.com' }, // Case-insensitive search
|
|
235
232
|
status: 'active'
|
|
236
233
|
},
|
|
237
234
|
$sort: { createdAt: -1 },
|
|
@@ -248,9 +245,9 @@ try {
|
|
|
248
245
|
UQL's query syntax is context-aware. When you query a relation, the available fields and operators are automatically suggested and validated based on that related entity.
|
|
249
246
|
|
|
250
247
|
```ts
|
|
251
|
-
import { GenericRepository } from '@uql/core
|
|
252
|
-
import { User } from './shared/models/index.js';
|
|
248
|
+
import { GenericRepository } from '@uql/core';
|
|
253
249
|
import { querierPool } from './shared/orm.js';
|
|
250
|
+
import { User } from './shared/models/index.js';
|
|
254
251
|
|
|
255
252
|
const authorsWithPopularPosts = await querierPool.transaction(async (querier) => {
|
|
256
253
|
const userRepository = new GenericRepository(User, querier);
|
|
@@ -285,8 +282,7 @@ const authorsWithPopularPosts = await querierPool.transaction(async (querier) =>
|
|
|
285
282
|
Define complex logic directly in your entities using `raw` functions from `uql/util`. These are highly efficient as they are resolved during SQL generation.
|
|
286
283
|
|
|
287
284
|
```ts
|
|
288
|
-
import { Entity, Id, Field } from '@uql/core
|
|
289
|
-
import { raw } from '@uql/core/util';
|
|
285
|
+
import { Entity, Id, Field, raw } from '@uql/core';
|
|
290
286
|
import { ItemTag } from './shared/models/index.js';
|
|
291
287
|
|
|
292
288
|
@Entity()
|
|
@@ -317,8 +313,8 @@ export class Item {
|
|
|
317
313
|
UQL ensures your operations are serialized and thread-safe.
|
|
318
314
|
|
|
319
315
|
```ts
|
|
320
|
-
import { User, Profile } from './shared/models/index.js';
|
|
321
316
|
import { querierPool } from './shared/orm.js';
|
|
317
|
+
import { User, Profile } from './shared/models/index.js';
|
|
322
318
|
|
|
323
319
|
const result = await querierPool.transaction(async (querier) => {
|
|
324
320
|
const user = await querier.findOne(User, { $where: { email: '...' } });
|
|
@@ -339,12 +335,11 @@ UQL includes a robust migration system and an "Entity-First" synchronization eng
|
|
|
339
335
|
Create a `uql.config.ts` file in your project root:
|
|
340
336
|
|
|
341
337
|
```typescript
|
|
342
|
-
import { PgQuerierPool } from 'uql
|
|
343
|
-
import { User, Post } from './
|
|
338
|
+
import { PgQuerierPool } from '@uql/core/postgres';
|
|
339
|
+
import { User, Post } from './shared/models/index.js';
|
|
344
340
|
|
|
345
341
|
export default {
|
|
346
342
|
querierPool: new PgQuerierPool({ /* config */ }),
|
|
347
|
-
dialect: 'postgres',
|
|
348
343
|
entities: [User, Post],
|
|
349
344
|
migrationsPath: './migrations',
|
|
350
345
|
};
|
|
@@ -408,6 +403,6 @@ For those who want to see the "engine under the hood," check out these resources
|
|
|
408
403
|
- **Core Dialect Logic**: The foundation of our context-aware SQL generation in [abstractSqlDialect.ts](https://github.com/rogerpadilla/uql/blob/main/packages/core/src/dialect/abstractSqlDialect.ts).
|
|
409
404
|
- **Comprehensive Test Suite**:
|
|
410
405
|
- [Abstract SQL Spec](https://github.com/rogerpadilla/uql/blob/main/packages/core/src/dialect/abstractSqlDialect-spec.ts): The base test suite shared by all dialects.
|
|
411
|
-
- [PostgreSQL Spec](https://github.com/rogerpadilla/uql/blob/main/packages/
|
|
406
|
+
- [PostgreSQL Spec](https://github.com/rogerpadilla/uql/blob/main/packages/core/src/postgres/postgresDialect.spec.ts) | [MySQL Spec](https://github.com/rogerpadilla/uql/blob/main/packages/core/src/mysql/mysqlDialect.spec.ts) | [SQLite Spec](https://github.com/rogerpadilla/uql/blob/main/packages/core/src/sqlite/sqliteDialect.spec.ts).
|
|
412
407
|
- [Querier Integration Tests](https://github.com/rogerpadilla/uql/blob/main/packages/core/src/querier/abstractSqlQuerier-spec.ts): Testing the interaction between SQL generation and connection management.
|
|
413
|
-
- [MongoDB Migration Tests](https://github.com/rogerpadilla/uql/blob/main/packages/
|
|
408
|
+
- [MongoDB Migration Tests](https://github.com/rogerpadilla/uql/blob/main/packages/core/src/migrate/migrator-mongo.it.ts): Integration tests ensuring correct collection and index synchronization for MongoDB.
|
|
@@ -0,0 +1,535 @@
|
|
|
1
|
+
/* @minVersion 7.20.0 */ /**
|
|
2
|
+
Enums are used in this file, but not assigned to vars to avoid non-hoistable values
|
|
3
|
+
|
|
4
|
+
CONSTRUCTOR = 0;
|
|
5
|
+
PUBLIC = 1;
|
|
6
|
+
PRIVATE = 2;
|
|
7
|
+
|
|
8
|
+
FIELD = 0;
|
|
9
|
+
ACCESSOR = 1;
|
|
10
|
+
METHOD = 2;
|
|
11
|
+
GETTER = 3;
|
|
12
|
+
SETTER = 4;
|
|
13
|
+
|
|
14
|
+
STATIC = 5;
|
|
15
|
+
|
|
16
|
+
CLASS = 10; // only used in assertValidReturnValue
|
|
17
|
+
*/ function _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {
|
|
18
|
+
function createAddInitializerMethod(initializers, decoratorFinishedRef) {
|
|
19
|
+
return function addInitializer(initializer) {
|
|
20
|
+
assertNotFinished(decoratorFinishedRef, "addInitializer");
|
|
21
|
+
assertCallable(initializer, "An initializer");
|
|
22
|
+
initializers.push(initializer);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value) {
|
|
26
|
+
var kindStr;
|
|
27
|
+
switch(kind){
|
|
28
|
+
case 1 /* ACCESSOR */ :
|
|
29
|
+
kindStr = "accessor";
|
|
30
|
+
break;
|
|
31
|
+
case 2 /* METHOD */ :
|
|
32
|
+
kindStr = "method";
|
|
33
|
+
break;
|
|
34
|
+
case 3 /* GETTER */ :
|
|
35
|
+
kindStr = "getter";
|
|
36
|
+
break;
|
|
37
|
+
case 4 /* SETTER */ :
|
|
38
|
+
kindStr = "setter";
|
|
39
|
+
break;
|
|
40
|
+
default:
|
|
41
|
+
kindStr = "field";
|
|
42
|
+
}
|
|
43
|
+
var ctx = {
|
|
44
|
+
kind: kindStr,
|
|
45
|
+
name: isPrivate ? "#" + name : name,
|
|
46
|
+
static: isStatic,
|
|
47
|
+
private: isPrivate,
|
|
48
|
+
metadata: metadata
|
|
49
|
+
};
|
|
50
|
+
var decoratorFinishedRef = {
|
|
51
|
+
v: false
|
|
52
|
+
};
|
|
53
|
+
ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef);
|
|
54
|
+
var get, set;
|
|
55
|
+
if (kind === 0 /* FIELD */ ) {
|
|
56
|
+
if (isPrivate) {
|
|
57
|
+
get = desc.get;
|
|
58
|
+
set = desc.set;
|
|
59
|
+
} else {
|
|
60
|
+
get = function() {
|
|
61
|
+
return this[name];
|
|
62
|
+
};
|
|
63
|
+
set = function(v) {
|
|
64
|
+
this[name] = v;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
} else if (kind === 2 /* METHOD */ ) {
|
|
68
|
+
get = function() {
|
|
69
|
+
return desc.value;
|
|
70
|
+
};
|
|
71
|
+
} else {
|
|
72
|
+
// replace with values that will go through the final getter and setter
|
|
73
|
+
if (kind === 1 /* ACCESSOR */ || kind === 3 /* GETTER */ ) {
|
|
74
|
+
get = function() {
|
|
75
|
+
return desc.get.call(this);
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
if (kind === 1 /* ACCESSOR */ || kind === 4 /* SETTER */ ) {
|
|
79
|
+
set = function(v) {
|
|
80
|
+
desc.set.call(this, v);
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
ctx.access = get && set ? {
|
|
85
|
+
get: get,
|
|
86
|
+
set: set
|
|
87
|
+
} : get ? {
|
|
88
|
+
get: get
|
|
89
|
+
} : {
|
|
90
|
+
set: set
|
|
91
|
+
};
|
|
92
|
+
try {
|
|
93
|
+
return dec(value, ctx);
|
|
94
|
+
} finally{
|
|
95
|
+
decoratorFinishedRef.v = true;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function assertNotFinished(decoratorFinishedRef, fnName) {
|
|
99
|
+
if (decoratorFinishedRef.v) {
|
|
100
|
+
throw new Error("attempted to call " + fnName + " after decoration was finished");
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
function assertCallable(fn, hint) {
|
|
104
|
+
if (typeof fn !== "function") {
|
|
105
|
+
throw new TypeError(hint + " must be a function");
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function assertValidReturnValue(kind, value) {
|
|
109
|
+
var type = typeof value;
|
|
110
|
+
if (kind === 1 /* ACCESSOR */ ) {
|
|
111
|
+
if (type !== "object" || value === null) {
|
|
112
|
+
throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
|
|
113
|
+
}
|
|
114
|
+
if (value.get !== undefined) {
|
|
115
|
+
assertCallable(value.get, "accessor.get");
|
|
116
|
+
}
|
|
117
|
+
if (value.set !== undefined) {
|
|
118
|
+
assertCallable(value.set, "accessor.set");
|
|
119
|
+
}
|
|
120
|
+
if (value.init !== undefined) {
|
|
121
|
+
assertCallable(value.init, "accessor.init");
|
|
122
|
+
}
|
|
123
|
+
} else if (type !== "function") {
|
|
124
|
+
var hint;
|
|
125
|
+
if (kind === 0 /* FIELD */ ) {
|
|
126
|
+
hint = "field";
|
|
127
|
+
} else if (kind === 10 /* CLASS */ ) {
|
|
128
|
+
hint = "class";
|
|
129
|
+
} else {
|
|
130
|
+
hint = "method";
|
|
131
|
+
}
|
|
132
|
+
throw new TypeError(hint + " decorators must return a function or void 0");
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata) {
|
|
136
|
+
var decs = decInfo[0];
|
|
137
|
+
var desc, init, value;
|
|
138
|
+
if (isPrivate) {
|
|
139
|
+
if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */ ) {
|
|
140
|
+
desc = {
|
|
141
|
+
get: decInfo[3],
|
|
142
|
+
set: decInfo[4]
|
|
143
|
+
};
|
|
144
|
+
} else if (kind === 3 /* GETTER */ ) {
|
|
145
|
+
desc = {
|
|
146
|
+
get: decInfo[3]
|
|
147
|
+
};
|
|
148
|
+
} else if (kind === 4 /* SETTER */ ) {
|
|
149
|
+
desc = {
|
|
150
|
+
set: decInfo[3]
|
|
151
|
+
};
|
|
152
|
+
} else {
|
|
153
|
+
desc = {
|
|
154
|
+
value: decInfo[3]
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
} else if (kind !== 0 /* FIELD */ ) {
|
|
158
|
+
desc = Object.getOwnPropertyDescriptor(base, name);
|
|
159
|
+
}
|
|
160
|
+
if (kind === 1 /* ACCESSOR */ ) {
|
|
161
|
+
value = {
|
|
162
|
+
get: desc.get,
|
|
163
|
+
set: desc.set
|
|
164
|
+
};
|
|
165
|
+
} else if (kind === 2 /* METHOD */ ) {
|
|
166
|
+
value = desc.value;
|
|
167
|
+
} else if (kind === 3 /* GETTER */ ) {
|
|
168
|
+
value = desc.get;
|
|
169
|
+
} else if (kind === 4 /* SETTER */ ) {
|
|
170
|
+
value = desc.set;
|
|
171
|
+
}
|
|
172
|
+
var newValue, get, set;
|
|
173
|
+
if (typeof decs === "function") {
|
|
174
|
+
newValue = memberDec(decs, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);
|
|
175
|
+
if (newValue !== void 0) {
|
|
176
|
+
assertValidReturnValue(kind, newValue);
|
|
177
|
+
if (kind === 0 /* FIELD */ ) {
|
|
178
|
+
init = newValue;
|
|
179
|
+
} else if (kind === 1 /* ACCESSOR */ ) {
|
|
180
|
+
init = newValue.init;
|
|
181
|
+
get = newValue.get || value.get;
|
|
182
|
+
set = newValue.set || value.set;
|
|
183
|
+
value = {
|
|
184
|
+
get: get,
|
|
185
|
+
set: set
|
|
186
|
+
};
|
|
187
|
+
} else {
|
|
188
|
+
value = newValue;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
} else {
|
|
192
|
+
for(var i = decs.length - 1; i >= 0; i--){
|
|
193
|
+
var dec = decs[i];
|
|
194
|
+
newValue = memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);
|
|
195
|
+
if (newValue !== void 0) {
|
|
196
|
+
assertValidReturnValue(kind, newValue);
|
|
197
|
+
var newInit;
|
|
198
|
+
if (kind === 0 /* FIELD */ ) {
|
|
199
|
+
newInit = newValue;
|
|
200
|
+
} else if (kind === 1 /* ACCESSOR */ ) {
|
|
201
|
+
newInit = newValue.init;
|
|
202
|
+
get = newValue.get || value.get;
|
|
203
|
+
set = newValue.set || value.set;
|
|
204
|
+
value = {
|
|
205
|
+
get: get,
|
|
206
|
+
set: set
|
|
207
|
+
};
|
|
208
|
+
} else {
|
|
209
|
+
value = newValue;
|
|
210
|
+
}
|
|
211
|
+
if (newInit !== void 0) {
|
|
212
|
+
if (init === void 0) {
|
|
213
|
+
init = newInit;
|
|
214
|
+
} else if (typeof init === "function") {
|
|
215
|
+
init = [
|
|
216
|
+
init,
|
|
217
|
+
newInit
|
|
218
|
+
];
|
|
219
|
+
} else {
|
|
220
|
+
init.push(newInit);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */ ) {
|
|
227
|
+
if (init === void 0) {
|
|
228
|
+
// If the initializer was void 0, sub in a dummy initializer
|
|
229
|
+
init = function(instance, init) {
|
|
230
|
+
return init;
|
|
231
|
+
};
|
|
232
|
+
} else if (typeof init !== "function") {
|
|
233
|
+
var ownInitializers = init;
|
|
234
|
+
init = function(instance, init) {
|
|
235
|
+
var value = init;
|
|
236
|
+
for(var i = 0; i < ownInitializers.length; i++)value = ownInitializers[i].call(instance, value);
|
|
237
|
+
return value;
|
|
238
|
+
};
|
|
239
|
+
} else {
|
|
240
|
+
var originalInitializer = init;
|
|
241
|
+
init = function(instance, init) {
|
|
242
|
+
return originalInitializer.call(instance, init);
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
ret.push(init);
|
|
246
|
+
}
|
|
247
|
+
if (kind !== 0 /* FIELD */ ) {
|
|
248
|
+
if (kind === 1 /* ACCESSOR */ ) {
|
|
249
|
+
desc.get = value.get;
|
|
250
|
+
desc.set = value.set;
|
|
251
|
+
} else if (kind === 2 /* METHOD */ ) {
|
|
252
|
+
desc.value = value;
|
|
253
|
+
} else if (kind === 3 /* GETTER */ ) {
|
|
254
|
+
desc.get = value;
|
|
255
|
+
} else if (kind === 4 /* SETTER */ ) {
|
|
256
|
+
desc.set = value;
|
|
257
|
+
}
|
|
258
|
+
if (isPrivate) {
|
|
259
|
+
if (kind === 1 /* ACCESSOR */ ) {
|
|
260
|
+
ret.push(function(instance, args) {
|
|
261
|
+
return value.get.call(instance, args);
|
|
262
|
+
});
|
|
263
|
+
ret.push(function(instance, args) {
|
|
264
|
+
return value.set.call(instance, args);
|
|
265
|
+
});
|
|
266
|
+
} else if (kind === 2 /* METHOD */ ) {
|
|
267
|
+
ret.push(value);
|
|
268
|
+
} else {
|
|
269
|
+
ret.push(function(instance, args) {
|
|
270
|
+
return value.call(instance, args);
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
} else {
|
|
274
|
+
Object.defineProperty(base, name, desc);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
function applyMemberDecs(Class, decInfos, metadata) {
|
|
279
|
+
var ret = [];
|
|
280
|
+
var protoInitializers;
|
|
281
|
+
var staticInitializers;
|
|
282
|
+
var existingProtoNonFields = new Map();
|
|
283
|
+
var existingStaticNonFields = new Map();
|
|
284
|
+
for(var i = 0; i < decInfos.length; i++){
|
|
285
|
+
var decInfo = decInfos[i];
|
|
286
|
+
// skip computed property names
|
|
287
|
+
if (!Array.isArray(decInfo)) continue;
|
|
288
|
+
var kind = decInfo[1];
|
|
289
|
+
var name = decInfo[2];
|
|
290
|
+
var isPrivate = decInfo.length > 3;
|
|
291
|
+
var isStatic = kind >= 5; /* STATIC */
|
|
292
|
+
var base;
|
|
293
|
+
var initializers;
|
|
294
|
+
if (isStatic) {
|
|
295
|
+
base = Class;
|
|
296
|
+
kind = kind - 5 /* STATIC */ ;
|
|
297
|
+
// initialize staticInitializers when we see a non-field static member
|
|
298
|
+
staticInitializers = staticInitializers || [];
|
|
299
|
+
initializers = staticInitializers;
|
|
300
|
+
} else {
|
|
301
|
+
base = Class.prototype;
|
|
302
|
+
// initialize protoInitializers when we see a non-field member
|
|
303
|
+
protoInitializers = protoInitializers || [];
|
|
304
|
+
initializers = protoInitializers;
|
|
305
|
+
}
|
|
306
|
+
if (kind !== 0 /* FIELD */ && !isPrivate) {
|
|
307
|
+
var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields;
|
|
308
|
+
var existingKind = existingNonFields.get(name) || 0;
|
|
309
|
+
if (existingKind === true || existingKind === 3 /* GETTER */ && kind !== 4 || existingKind === 4 /* SETTER */ && kind !== 3) {
|
|
310
|
+
throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name);
|
|
311
|
+
} else if (!existingKind && kind > 2 /* METHOD */ ) {
|
|
312
|
+
existingNonFields.set(name, kind);
|
|
313
|
+
} else {
|
|
314
|
+
existingNonFields.set(name, true);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata);
|
|
318
|
+
}
|
|
319
|
+
pushInitializers(ret, protoInitializers);
|
|
320
|
+
pushInitializers(ret, staticInitializers);
|
|
321
|
+
return ret;
|
|
322
|
+
}
|
|
323
|
+
function pushInitializers(ret, initializers) {
|
|
324
|
+
if (initializers) {
|
|
325
|
+
ret.push(function(instance) {
|
|
326
|
+
for(var i = 0; i < initializers.length; i++)initializers[i].call(instance);
|
|
327
|
+
return instance;
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
function applyClassDecs(targetClass, classDecs, metadata) {
|
|
332
|
+
if (classDecs.length > 0) {
|
|
333
|
+
var initializers = [];
|
|
334
|
+
var newClass = targetClass;
|
|
335
|
+
var name = targetClass.name;
|
|
336
|
+
for(var i = classDecs.length - 1; i >= 0; i--){
|
|
337
|
+
var decoratorFinishedRef = {
|
|
338
|
+
v: false
|
|
339
|
+
};
|
|
340
|
+
try {
|
|
341
|
+
var nextNewClass = classDecs[i](newClass, {
|
|
342
|
+
kind: "class",
|
|
343
|
+
name: name,
|
|
344
|
+
addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef),
|
|
345
|
+
metadata
|
|
346
|
+
});
|
|
347
|
+
} finally{
|
|
348
|
+
decoratorFinishedRef.v = true;
|
|
349
|
+
}
|
|
350
|
+
if (nextNewClass !== undefined) {
|
|
351
|
+
assertValidReturnValue(10, /* CLASS */ nextNewClass);
|
|
352
|
+
newClass = nextNewClass;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
return [
|
|
356
|
+
defineMetadata(newClass, metadata),
|
|
357
|
+
function() {
|
|
358
|
+
for(var i = 0; i < initializers.length; i++)initializers[i].call(newClass);
|
|
359
|
+
}
|
|
360
|
+
];
|
|
361
|
+
}
|
|
362
|
+
// The transformer will not emit assignment when there are no class decorators,
|
|
363
|
+
// so we don't have to return an empty array here.
|
|
364
|
+
}
|
|
365
|
+
function defineMetadata(Class, metadata) {
|
|
366
|
+
return Object.defineProperty(Class, Symbol.metadata || Symbol.for("Symbol.metadata"), {
|
|
367
|
+
configurable: true,
|
|
368
|
+
enumerable: true,
|
|
369
|
+
value: metadata
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
Basic usage:
|
|
374
|
+
|
|
375
|
+
applyDecs(
|
|
376
|
+
Class,
|
|
377
|
+
[
|
|
378
|
+
// member decorators
|
|
379
|
+
[
|
|
380
|
+
dec, // dec or array of decs
|
|
381
|
+
0, // kind of value being decorated
|
|
382
|
+
'prop', // name of public prop on class containing the value being decorated,
|
|
383
|
+
'#p', // the name of the private property (if is private, void 0 otherwise),
|
|
384
|
+
]
|
|
385
|
+
],
|
|
386
|
+
[
|
|
387
|
+
// class decorators
|
|
388
|
+
dec1, dec2
|
|
389
|
+
]
|
|
390
|
+
)
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
Fully transpiled example:
|
|
394
|
+
|
|
395
|
+
```js
|
|
396
|
+
@dec
|
|
397
|
+
class Class {
|
|
398
|
+
@dec
|
|
399
|
+
a = 123;
|
|
400
|
+
|
|
401
|
+
@dec
|
|
402
|
+
#a = 123;
|
|
403
|
+
|
|
404
|
+
@dec
|
|
405
|
+
@dec2
|
|
406
|
+
accessor b = 123;
|
|
407
|
+
|
|
408
|
+
@dec
|
|
409
|
+
accessor #b = 123;
|
|
410
|
+
|
|
411
|
+
@dec
|
|
412
|
+
c() { console.log('c'); }
|
|
413
|
+
|
|
414
|
+
@dec
|
|
415
|
+
#c() { console.log('privC'); }
|
|
416
|
+
|
|
417
|
+
@dec
|
|
418
|
+
get d() { console.log('d'); }
|
|
419
|
+
|
|
420
|
+
@dec
|
|
421
|
+
get #d() { console.log('privD'); }
|
|
422
|
+
|
|
423
|
+
@dec
|
|
424
|
+
set e(v) { console.log('e'); }
|
|
425
|
+
|
|
426
|
+
@dec
|
|
427
|
+
set #e(v) { console.log('privE'); }
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
// becomes
|
|
432
|
+
let initializeInstance;
|
|
433
|
+
let initializeClass;
|
|
434
|
+
|
|
435
|
+
let initA;
|
|
436
|
+
let initPrivA;
|
|
437
|
+
|
|
438
|
+
let initB;
|
|
439
|
+
let initPrivB, getPrivB, setPrivB;
|
|
440
|
+
|
|
441
|
+
let privC;
|
|
442
|
+
let privD;
|
|
443
|
+
let privE;
|
|
444
|
+
|
|
445
|
+
let Class;
|
|
446
|
+
class _Class {
|
|
447
|
+
static {
|
|
448
|
+
let ret = applyDecs(
|
|
449
|
+
this,
|
|
450
|
+
[
|
|
451
|
+
[dec, 0, 'a'],
|
|
452
|
+
[dec, 0, 'a', (i) => i.#a, (i, v) => i.#a = v],
|
|
453
|
+
[[dec, dec2], 1, 'b'],
|
|
454
|
+
[dec, 1, 'b', (i) => i.#privBData, (i, v) => i.#privBData = v],
|
|
455
|
+
[dec, 2, 'c'],
|
|
456
|
+
[dec, 2, 'c', () => console.log('privC')],
|
|
457
|
+
[dec, 3, 'd'],
|
|
458
|
+
[dec, 3, 'd', () => console.log('privD')],
|
|
459
|
+
[dec, 4, 'e'],
|
|
460
|
+
[dec, 4, 'e', () => console.log('privE')],
|
|
461
|
+
],
|
|
462
|
+
[
|
|
463
|
+
dec
|
|
464
|
+
]
|
|
465
|
+
)
|
|
466
|
+
|
|
467
|
+
initA = ret[0];
|
|
468
|
+
|
|
469
|
+
initPrivA = ret[1];
|
|
470
|
+
|
|
471
|
+
initB = ret[2];
|
|
472
|
+
|
|
473
|
+
initPrivB = ret[3];
|
|
474
|
+
getPrivB = ret[4];
|
|
475
|
+
setPrivB = ret[5];
|
|
476
|
+
|
|
477
|
+
privC = ret[6];
|
|
478
|
+
|
|
479
|
+
privD = ret[7];
|
|
480
|
+
|
|
481
|
+
privE = ret[8];
|
|
482
|
+
|
|
483
|
+
initializeInstance = ret[9];
|
|
484
|
+
|
|
485
|
+
Class = ret[10]
|
|
486
|
+
|
|
487
|
+
initializeClass = ret[11];
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
a = (initializeInstance(this), initA(this, 123));
|
|
491
|
+
|
|
492
|
+
#a = initPrivA(this, 123);
|
|
493
|
+
|
|
494
|
+
#bData = initB(this, 123);
|
|
495
|
+
get b() { return this.#bData }
|
|
496
|
+
set b(v) { this.#bData = v }
|
|
497
|
+
|
|
498
|
+
#privBData = initPrivB(this, 123);
|
|
499
|
+
get #b() { return getPrivB(this); }
|
|
500
|
+
set #b(v) { setPrivB(this, v); }
|
|
501
|
+
|
|
502
|
+
c() { console.log('c'); }
|
|
503
|
+
|
|
504
|
+
#c(...args) { return privC(this, ...args) }
|
|
505
|
+
|
|
506
|
+
get d() { console.log('d'); }
|
|
507
|
+
|
|
508
|
+
get #d() { return privD(this); }
|
|
509
|
+
|
|
510
|
+
set e(v) { console.log('e'); }
|
|
511
|
+
|
|
512
|
+
set #e(v) { privE(this, v); }
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
initializeClass(Class);
|
|
516
|
+
*/ _apply_decs_2203_r = function(targetClass, memberDecs, classDecs, parentClass) {
|
|
517
|
+
if (parentClass !== void 0) {
|
|
518
|
+
var parentMetadata = parentClass[Symbol.metadata || Symbol.for("Symbol.metadata")];
|
|
519
|
+
}
|
|
520
|
+
var metadata = Object.create(parentMetadata === void 0 ? null : parentMetadata);
|
|
521
|
+
var e = applyMemberDecs(targetClass, memberDecs, metadata);
|
|
522
|
+
if (!classDecs.length) defineMetadata(targetClass, metadata);
|
|
523
|
+
return {
|
|
524
|
+
e: e,
|
|
525
|
+
// Lazily apply class decorations so that member init locals can be properly bound.
|
|
526
|
+
get c () {
|
|
527
|
+
return applyClassDecs(targetClass, classDecs, metadata);
|
|
528
|
+
}
|
|
529
|
+
};
|
|
530
|
+
};
|
|
531
|
+
return _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass);
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
export { _apply_decs_2203_r as _ };
|
|
535
|
+
//# sourceMappingURL=cc-BEf4wTUm.js.map
|