@deterministic-code/datasources 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ArrayReader.d.ts +12 -0
- package/dist/BatchCommandIBulkWriteStrategy.d.ts +33 -0
- package/dist/BuiltRepository.d.ts +16 -0
- package/dist/BulkCRUDRepository.d.ts +17 -0
- package/dist/BulkCommand.d.ts +5 -0
- package/dist/BulkWriteEnrichment.d.ts +4 -0
- package/dist/CRUDRepository.d.ts +40 -0
- package/dist/CRUDRepositoryBuilder.d.ts +19 -0
- package/dist/CRUDRepositoryOptions.d.ts +7 -0
- package/dist/CRUDRepositoryStatements.d.ts +17 -0
- package/dist/CascadeDeleteEnrichmentStrategy.d.ts +7 -0
- package/dist/CascadeDeleteUpdateEnrichmentStrategy.d.ts +8 -0
- package/dist/CommandMiddlewareHost.d.ts +22 -0
- package/dist/ConsoleCommandMiddleware.d.ts +14 -0
- package/dist/CreateEnrichmentStrategy.d.ts +14 -0
- package/dist/Datasource.d.ts +30 -0
- package/dist/DatasourceError.d.ts +3 -0
- package/dist/DatasourceFactory.d.ts +12 -0
- package/dist/DatasourceOptions.d.ts +1 -0
- package/dist/DatasourceUrl.d.ts +12 -0
- package/dist/DatasourceUrlParser.d.ts +4 -0
- package/dist/DefaultCreateEnrichmentStrategy.d.ts +7 -0
- package/dist/DefaultReadonlyEnrichmentStrategy.d.ts +19 -0
- package/dist/DefaultUpdateEnrichmentStrategy.d.ts +7 -0
- package/dist/DefaultWriteEnrichmentStrategy.d.ts +21 -0
- package/dist/DeleteEnrichmentStrategy.d.ts +11 -0
- package/dist/DriverLoader.d.ts +5 -0
- package/dist/Enrichment.d.ts +13 -0
- package/dist/EnrichmentPropertyType.d.ts +7 -0
- package/dist/ExpectConsoleMiddleware.d.ts +15 -0
- package/dist/FirstResultReader.d.ts +19 -0
- package/dist/HashsetOptimizedReadonlyEnrichmentStrategy.d.ts +9 -0
- package/dist/IBulkWriteStrategy.d.ts +12 -0
- package/dist/ICRUDRepository.d.ts +12 -0
- package/dist/ICRUDRepositoryFactory.d.ts +7 -0
- package/dist/ICommand.d.ts +20 -0
- package/dist/ICommandMiddleware.d.ts +12 -0
- package/dist/IConnection.d.ts +12 -0
- package/dist/IDatasource.d.ts +18 -0
- package/dist/IDatasourceFactory.d.ts +5 -0
- package/dist/IDriver.d.ts +19 -0
- package/dist/IEnriched.d.ts +6 -0
- package/dist/IReader.d.ts +8 -0
- package/dist/IReadonlyEnrichmentStrategy.d.ts +7 -0
- package/dist/IReadonlyRepository.d.ts +11 -0
- package/dist/IRepository.d.ts +4 -0
- package/dist/IRepositoryFactory.d.ts +7 -0
- package/dist/IRepositoryTree.d.ts +4 -0
- package/dist/IRepositoryTreeNode.d.ts +7 -0
- package/dist/ITransaction.d.ts +8 -0
- package/dist/IUnitOfWork.d.ts +5 -0
- package/dist/IWriteEnrichmentStrategy.d.ts +7 -0
- package/dist/Information.d.ts +5 -0
- package/dist/IsolationLevel.d.ts +7 -0
- package/dist/LazyWriteEnrichmentStrategy.d.ts +4 -0
- package/dist/NestedToObjectEnrichmentStrategy.d.ts +10 -0
- package/dist/Parameter.d.ts +7 -0
- package/dist/ParameterDirection.d.ts +7 -0
- package/dist/ProviderCatalog.d.ts +7 -0
- package/dist/ProviderNotImplementedError.d.ts +4 -0
- package/dist/ProviderNotInstalledError.d.ts +4 -0
- package/dist/ReadonlyRepository.d.ts +59 -0
- package/dist/ReadonlyRepositoryBuilder.d.ts +12 -0
- package/dist/ReadonlyRepositoryMappingOptions.d.ts +14 -0
- package/dist/ReadonlyRepositoryStatements.d.ts +8 -0
- package/dist/RepositoryAccess.d.ts +11 -0
- package/dist/RepositoryFactory.d.ts +23 -0
- package/dist/RepositoryNotRegisteredError.d.ts +4 -0
- package/dist/RepositoryTree.d.ts +6 -0
- package/dist/RepositoryTreeNode.d.ts +9 -0
- package/dist/Response.d.ts +7 -0
- package/dist/Row.d.ts +2 -0
- package/dist/SingleCommandIBulkWriteStrategy.d.ts +11 -0
- package/dist/StatementMappers.d.ts +16 -0
- package/dist/StoredEnrichment.d.ts +11 -0
- package/dist/StoredProcedureBulkWriteStrategy.d.ts +27 -0
- package/dist/StreamingReader.d.ts +16 -0
- package/dist/UnitOfWorkTransaction.d.ts +12 -0
- package/dist/UpdateEnrichmentStrategy.d.ts +18 -0
- package/dist/WriteMode.d.ts +1 -0
- package/dist/builders/Field.d.ts +5 -0
- package/dist/builders/Scalar.d.ts +1 -0
- package/dist/builders/index.d.ts +2 -0
- package/dist/collectAsync.d.ts +1 -0
- package/dist/converters/Cell.d.ts +2 -0
- package/dist/converters/ChangeCasingConverter.d.ts +7 -0
- package/dist/converters/Constructable.d.ts +1 -0
- package/dist/converters/MetaDataRowTypeConverter.d.ts +14 -0
- package/dist/converters/PluralizerConverter.d.ts +4 -0
- package/dist/converters/RegexConverter.d.ts +7 -0
- package/dist/converters/ReplaceConverter.d.ts +7 -0
- package/dist/converters/RowTypeConverter.d.ts +10 -0
- package/dist/converters/ToLowerCaseConverter.d.ts +4 -0
- package/dist/converters/ToUpperCaseConverter.d.ts +4 -0
- package/dist/converters/TypeConverter.d.ts +5 -0
- package/dist/createCRUDRepositoryOptions.d.ts +7 -0
- package/dist/createReadonlyRepositoryMappingOptions.d.ts +6 -0
- package/dist/dotEnv.d.ts +5 -0
- package/dist/index.d.ts +119 -0
- package/dist/mappers/ChangeCasingMapper.d.ts +9 -0
- package/dist/mappers/DictionaryMapper.d.ts +8 -0
- package/dist/mappers/FlatToNestedMapper.d.ts +20 -0
- package/dist/mappers/IFlatToNestedMapper.d.ts +6 -0
- package/dist/mappers/IMapper.d.ts +4 -0
- package/dist/mappers/IdentityMapper.d.ts +5 -0
- package/dist/mappers/PluralizerMapper.d.ts +6 -0
- package/dist/mappers/RowTypeMapper.d.ts +6 -0
- package/dist/mappers/TransformConverterMapper.d.ts +5 -0
- package/dist/mappers/TransformMapper.d.ts +6 -0
- package/dist/mappers/TypeMap.d.ts +8 -0
- package/dist/mappers/TypeMapGroup.d.ts +5 -0
- package/dist/mocks/index.d.ts +9 -0
- package/dist/mocks/mock-command.d.ts +28 -0
- package/dist/mocks/mock-connection.d.ts +22 -0
- package/dist/mocks/mock-datasource.d.ts +24 -0
- package/dist/mocks/mock-driver.d.ts +15 -0
- package/dist/mocks/mock-reader.d.ts +14 -0
- package/dist/mocks/mock-repository.d.ts +42 -0
- package/dist/mocks/mock-select-statement.d.ts +10 -0
- package/dist/mocks/mock-transaction.d.ts +16 -0
- package/dist/mocks/mock-where.d.ts +8 -0
- package/dist/parametersToRecord.d.ts +2 -0
- package/dist/readerToAsyncIterable.d.ts +2 -0
- package/dist/splitStatements.d.ts +1 -0
- package/dist/statementParameters.d.ts +1 -0
- package/dist/statementUsesParameter.d.ts +1 -0
- package/dist/statements/Aggregate.d.ts +6 -0
- package/dist/statements/ArrayExpression.d.ts +5 -0
- package/dist/statements/BulkDeleteStatement.d.ts +11 -0
- package/dist/statements/BulkDeleteStatementTextRenderer.d.ts +4 -0
- package/dist/statements/BulkInsertStatement.d.ts +12 -0
- package/dist/statements/BulkInsertStatementTextRenderer.d.ts +4 -0
- package/dist/statements/BulkUpdateStatement.d.ts +16 -0
- package/dist/statements/BulkUpdateStatementTextRenderer.d.ts +8 -0
- package/dist/statements/CheckConstraint.d.ts +7 -0
- package/dist/statements/Cmp.d.ts +9 -0
- package/dist/statements/Column.d.ts +9 -0
- package/dist/statements/ColumnDefault.d.ts +5 -0
- package/dist/statements/Condition.d.ts +3 -0
- package/dist/statements/ConditionRenderer.d.ts +12 -0
- package/dist/statements/CreateIndexStatement.d.ts +10 -0
- package/dist/statements/CreateIndexStatementTextRenderer.d.ts +5 -0
- package/dist/statements/CreateTableStatement.d.ts +11 -0
- package/dist/statements/CreateTableStatementTextRenderer.d.ts +18 -0
- package/dist/statements/DefaultStatementTextRenderer.d.ts +5 -0
- package/dist/statements/DeleteStatement.d.ts +9 -0
- package/dist/statements/DeleteStatementTextRenderer.d.ts +7 -0
- package/dist/statements/ExecuteStoredProcedureStatement.d.ts +9 -0
- package/dist/statements/ExecuteStoredProcedureStatementTextRenderer.d.ts +4 -0
- package/dist/statements/ExpressionEvaluator.d.ts +5 -0
- package/dist/statements/ExpressionRenderer.d.ts +8 -0
- package/dist/statements/ForeignKey.d.ts +19 -0
- package/dist/statements/IBulkDeleteStatement.d.ts +3 -0
- package/dist/statements/IBulkInsertStatement.d.ts +3 -0
- package/dist/statements/IBulkUpdateStatement.d.ts +3 -0
- package/dist/statements/ICondition.d.ts +4 -0
- package/dist/statements/IConditionVisitor.d.ts +6 -0
- package/dist/statements/ICreateIndexStatement.d.ts +3 -0
- package/dist/statements/ICreateTableStatement.d.ts +3 -0
- package/dist/statements/IDeleteStatement.d.ts +5 -0
- package/dist/statements/IExecuteStoredProcedureStatement.d.ts +3 -0
- package/dist/statements/IExpression.d.ts +2 -0
- package/dist/statements/IInsertStatement.d.ts +3 -0
- package/dist/statements/IReturnStatement.d.ts +3 -0
- package/dist/statements/ISelectStatement.d.ts +5 -0
- package/dist/statements/IStatement.d.ts +4 -0
- package/dist/statements/IStatementVisitor.d.ts +26 -0
- package/dist/statements/ITableConstraint.d.ts +5 -0
- package/dist/statements/IUpdateStatement.d.ts +5 -0
- package/dist/statements/IWhere.d.ts +6 -0
- package/dist/statements/Identifier.d.ts +5 -0
- package/dist/statements/InsertStatement.d.ts +9 -0
- package/dist/statements/InsertStatementTextRenderer.d.ts +4 -0
- package/dist/statements/Join.d.ts +14 -0
- package/dist/statements/Literal.d.ts +6 -0
- package/dist/statements/Native.d.ts +5 -0
- package/dist/statements/NotNull.d.ts +4 -0
- package/dist/statements/Operator.d.ts +107 -0
- package/dist/statements/OrderBy.d.ts +10 -0
- package/dist/statements/PrimaryKey.d.ts +7 -0
- package/dist/statements/ReturnStatement.d.ts +9 -0
- package/dist/statements/ReturnStatementTextRenderer.d.ts +4 -0
- package/dist/statements/SelectInsertedIdStatement.d.ts +8 -0
- package/dist/statements/SelectInsertedIdStatementTextRenderer.d.ts +4 -0
- package/dist/statements/SelectStatement.d.ts +20 -0
- package/dist/statements/SelectStatementOptions.d.ts +15 -0
- package/dist/statements/SelectStatementTextRenderer.d.ts +19 -0
- package/dist/statements/StatementEvaluator.d.ts +4 -0
- package/dist/statements/StatementParser.d.ts +4 -0
- package/dist/statements/StatementRenderer.d.ts +42 -0
- package/dist/statements/StatementTextRenderer.d.ts +14 -0
- package/dist/statements/Subquery.d.ts +6 -0
- package/dist/statements/UniqueConstraint.d.ts +7 -0
- package/dist/statements/UpdateStatement.d.ts +14 -0
- package/dist/statements/UpdateStatementTextRenderer.d.ts +14 -0
- package/dist/statements/Where.d.ts +16 -0
- package/dist/statements/WhereText.d.ts +8 -0
- package/dist/statements/index.d.ts +75 -0
- package/dist/stubs/StubCommand.d.ts +15 -0
- package/dist/stubs/StubConnection.d.ts +13 -0
- package/dist/stubs/StubDatasource.d.ts +20 -0
- package/dist/stubs/StubReader.d.ts +11 -0
- package/dist/stubs/StubRepository.d.ts +22 -0
- package/dist/stubs/StubTransaction.d.ts +10 -0
- package/dist/stubs/createStubDatasource.d.ts +2 -0
- package/dist/stubs/index.d.ts +7 -0
- package/dist/stubs/notImplemented.d.ts +1 -0
- package/package.json +24 -4
- package/src/ArrayReader.test.ts +23 -0
- package/src/ArrayReader.ts +32 -0
- package/src/BatchCommandIBulkWriteStrategy.ts +228 -0
- package/src/BuiltRepository.ts +17 -0
- package/src/BulkCRUDRepository.test.ts +183 -0
- package/src/BulkCRUDRepository.ts +84 -0
- package/src/BulkCommand.ts +6 -0
- package/src/BulkWriteEnrichment.ts +19 -0
- package/src/BulkWriteStrategy.test.ts +293 -0
- package/src/CRUDRepository.test.ts +420 -0
- package/src/CRUDRepository.ts +264 -0
- package/src/CRUDRepositoryBuilder.ts +53 -0
- package/src/CRUDRepositoryOptions.test.ts +76 -0
- package/src/CRUDRepositoryOptions.ts +8 -0
- package/src/CRUDRepositoryStatements.ts +43 -0
- package/src/CascadeDeleteEnrichmentStrategy.ts +51 -0
- package/src/CascadeDeleteUpdateEnrichmentStrategy.ts +28 -0
- package/src/Command.test.ts +105 -0
- package/src/CommandMiddlewareHost.test.ts +98 -0
- package/src/CommandMiddlewareHost.ts +113 -0
- package/src/Connection.test.ts +34 -0
- package/src/ConsoleCommandMiddleware.test.ts +149 -0
- package/src/ConsoleCommandMiddleware.ts +64 -0
- package/src/CreateEnrichmentStrategy.ts +82 -0
- package/src/Datasource.test.ts +63 -0
- package/src/Datasource.ts +152 -0
- package/src/DatasourceError.test.ts +10 -0
- package/src/DatasourceError.ts +6 -0
- package/src/DatasourceFactory.test.ts +159 -0
- package/src/DatasourceFactory.ts +86 -0
- package/src/DatasourceOptions.ts +1 -0
- package/src/DatasourceUrl.ts +37 -0
- package/src/DatasourceUrlParser.test.ts +173 -0
- package/src/DatasourceUrlParser.ts +188 -0
- package/src/DefaultCreateEnrichmentStrategy.ts +21 -0
- package/src/DefaultReadonlyEnrichmentStrategy.ts +164 -0
- package/src/DefaultUpdateEnrichmentStrategy.ts +40 -0
- package/src/DefaultWriteEnrichmentStrategy.ts +151 -0
- package/src/DeleteEnrichmentStrategy.ts +56 -0
- package/src/DriverLoader.ts +97 -0
- package/src/Enrichment.ts +15 -0
- package/src/EnrichmentPropertyType.ts +9 -0
- package/src/ExpectConsoleMiddleware.test.ts +79 -0
- package/src/ExpectConsoleMiddleware.ts +47 -0
- package/src/FirstResultReader.test.ts +43 -0
- package/src/FirstResultReader.ts +49 -0
- package/src/HashsetOptimizedReadonlyEnrichmentStrategy.ts +80 -0
- package/src/IBulkWriteStrategy.ts +13 -0
- package/src/ICRUDRepository.ts +13 -0
- package/src/ICRUDRepositoryFactory.ts +8 -0
- package/src/ICommand.ts +45 -0
- package/src/ICommandMiddleware.ts +20 -0
- package/src/IConnection.ts +13 -0
- package/src/IDatasource.ts +27 -0
- package/src/IDatasourceFactory.ts +6 -0
- package/src/IDriver.ts +24 -0
- package/src/IEnriched.ts +11 -0
- package/src/IReader.ts +8 -0
- package/src/IReadonlyEnrichmentStrategy.ts +19 -0
- package/src/IReadonlyRepository.ts +21 -0
- package/src/IRepository.ts +5 -0
- package/src/IRepositoryFactory.ts +8 -0
- package/src/IRepositoryTree.ts +5 -0
- package/src/IRepositoryTreeNode.ts +8 -0
- package/src/ITransaction.ts +9 -0
- package/src/IUnitOfWork.ts +5 -0
- package/src/IWriteEnrichmentStrategy.ts +8 -0
- package/src/Information.ts +5 -0
- package/src/IsolationLevel.test.ts +13 -0
- package/src/IsolationLevel.ts +8 -0
- package/src/LazyWriteEnrichmentStrategy.ts +5 -0
- package/src/NestedToObjectEnrichmentStrategy.ts +33 -0
- package/src/Parameter.ts +8 -0
- package/src/ParameterDirection.ts +9 -0
- package/src/ProviderCatalog.test.ts +110 -0
- package/src/ProviderCatalog.ts +21 -0
- package/src/ProviderNotImplementedError.test.ts +11 -0
- package/src/ProviderNotImplementedError.ts +9 -0
- package/src/ProviderNotInstalledError.test.ts +11 -0
- package/src/ProviderNotInstalledError.ts +9 -0
- package/src/ReadonlyRepository.test.ts +406 -0
- package/src/ReadonlyRepository.ts +276 -0
- package/src/ReadonlyRepositoryBuilder.ts +53 -0
- package/src/ReadonlyRepositoryMappingOptions.ts +15 -0
- package/src/ReadonlyRepositoryStatements.ts +13 -0
- package/src/RepositoryAccess.ts +14 -0
- package/src/RepositoryFactory.test.ts +94 -0
- package/src/RepositoryFactory.ts +115 -0
- package/src/RepositoryNotRegisteredError.ts +9 -0
- package/src/RepositoryTree.ts +6 -0
- package/src/RepositoryTreeNode.ts +11 -0
- package/src/Response.ts +15 -0
- package/src/Row.ts +3 -0
- package/src/SingleCommandIBulkWriteStrategy.ts +35 -0
- package/src/StatementMappers.test.ts +221 -0
- package/src/StatementMappers.ts +110 -0
- package/src/StoredEnrichment.ts +25 -0
- package/src/StoredProcedureBulkWriteStrategy.ts +164 -0
- package/src/StreamingReader.test.ts +126 -0
- package/src/StreamingReader.ts +64 -0
- package/src/Transaction.test.ts +37 -0
- package/src/UnitOfWorkTransaction.test.ts +43 -0
- package/src/UnitOfWorkTransaction.ts +50 -0
- package/src/UpdateEnrichmentStrategy.ts +97 -0
- package/src/UserViewCRUDRepository.test.ts +323 -0
- package/src/WriteMode.ts +1 -0
- package/src/builders/Field.ts +6 -0
- package/src/builders/Scalar.ts +1 -0
- package/src/builders/builders.test.ts +404 -0
- package/src/builders/index.ts +2 -0
- package/src/collectAsync.ts +7 -0
- package/src/converters/Cell.ts +10 -0
- package/src/converters/ChangeCasingConverter.test.ts +34 -0
- package/src/converters/ChangeCasingConverter.ts +59 -0
- package/src/converters/Constructable.ts +1 -0
- package/src/converters/MetaDataRowTypeConverter.ts +80 -0
- package/src/converters/PluralizerConverter.test.ts +43 -0
- package/src/converters/PluralizerConverter.ts +67 -0
- package/src/converters/RegexConverter.test.ts +11 -0
- package/src/converters/RegexConverter.ts +14 -0
- package/src/converters/ReplaceConverter.test.ts +9 -0
- package/src/converters/ReplaceConverter.ts +6 -0
- package/src/converters/RowTypeConverter.test.ts +79 -0
- package/src/converters/RowTypeConverter.ts +33 -0
- package/src/converters/ToLowerCaseConverter.test.ts +9 -0
- package/src/converters/ToLowerCaseConverter.ts +4 -0
- package/src/converters/ToUpperCaseConverter.test.ts +9 -0
- package/src/converters/ToUpperCaseConverter.ts +4 -0
- package/src/converters/TypeConverter.ts +6 -0
- package/src/createCRUDRepositoryOptions.ts +21 -0
- package/src/createReadonlyRepositoryMappingOptions.ts +26 -0
- package/src/dotEnv.test.ts +21 -0
- package/src/dotEnv.ts +16 -0
- package/src/edgeCases.test.ts +485 -0
- package/src/index.ts +222 -0
- package/src/mappers/ChangeCasingMapper.test.ts +32 -0
- package/src/mappers/ChangeCasingMapper.ts +15 -0
- package/src/mappers/DictionaryMapper.test.ts +69 -0
- package/src/mappers/DictionaryMapper.ts +16 -0
- package/src/mappers/FlatToNestedMapper.test.ts +269 -0
- package/src/mappers/FlatToNestedMapper.ts +127 -0
- package/src/mappers/IFlatToNestedMapper.ts +7 -0
- package/src/mappers/IMapper.ts +4 -0
- package/src/mappers/IdentityMapper.test.ts +12 -0
- package/src/mappers/IdentityMapper.ts +6 -0
- package/src/mappers/PluralizerMapper.test.ts +40 -0
- package/src/mappers/PluralizerMapper.ts +9 -0
- package/src/mappers/RowTypeMapper.test.ts +12 -0
- package/src/mappers/RowTypeMapper.ts +13 -0
- package/src/mappers/TransformConverterMapper.test.ts +181 -0
- package/src/mappers/TransformConverterMapper.ts +11 -0
- package/src/mappers/TransformMapper.ts +8 -0
- package/src/mappers/TypeMap.ts +10 -0
- package/src/mappers/TypeMapGroup.ts +6 -0
- package/src/mappers/transformMapper.test.ts +66 -0
- package/src/mocks/MockCommand.test.ts +75 -0
- package/src/mocks/MockConnection.test.ts +34 -0
- package/src/mocks/MockDatasource.test.ts +40 -0
- package/src/mocks/MockReader.test.ts +17 -0
- package/src/mocks/MockRepository.test.ts +32 -0
- package/src/mocks/MockSelectStatement.test.ts +11 -0
- package/src/mocks/MockTransaction.test.ts +17 -0
- package/src/mocks/MockWhere.test.ts +11 -0
- package/src/mocks/index.ts +9 -0
- package/src/mocks/mock-command.ts +66 -0
- package/src/mocks/mock-connection.ts +57 -0
- package/src/mocks/mock-datasource.ts +65 -0
- package/src/mocks/mock-driver.ts +27 -0
- package/src/mocks/mock-reader.ts +38 -0
- package/src/mocks/mock-repository.ts +91 -0
- package/src/mocks/mock-select-statement.ts +17 -0
- package/src/mocks/mock-transaction.ts +31 -0
- package/src/mocks/mock-where.ts +13 -0
- package/src/parametersToRecord.test.ts +19 -0
- package/src/parametersToRecord.ts +11 -0
- package/src/public-surface.test.ts +23 -0
- package/src/readWithWhereClauseAndCustomFlatToNestedObjectMappingOptions.test.ts +126 -0
- package/src/readerToAsyncIterable.test.ts +39 -0
- package/src/readerToAsyncIterable.ts +11 -0
- package/src/repository.test.ts +410 -0
- package/src/repository.type.test.ts +29 -0
- package/src/splitStatements.ts +99 -0
- package/src/statementParameters.ts +22 -0
- package/src/statementUsesParameter.ts +4 -0
- package/src/statements/Aggregate.ts +9 -0
- package/src/statements/ArrayExpression.ts +5 -0
- package/src/statements/BulkDeleteStatement.ts +18 -0
- package/src/statements/BulkDeleteStatementTextRenderer.ts +16 -0
- package/src/statements/BulkInsertStatement.ts +37 -0
- package/src/statements/BulkInsertStatementTextRenderer.ts +10 -0
- package/src/statements/BulkUpdateStatement.ts +24 -0
- package/src/statements/BulkUpdateStatementTextRenderer.ts +29 -0
- package/src/statements/CheckConstraint.ts +9 -0
- package/src/statements/Cmp.ts +12 -0
- package/src/statements/Column.ts +10 -0
- package/src/statements/ColumnDefault.ts +6 -0
- package/src/statements/Condition.ts +3 -0
- package/src/statements/ConditionRenderer.ts +17 -0
- package/src/statements/CreateIndexStatement.ts +18 -0
- package/src/statements/CreateIndexStatementTextRenderer.ts +11 -0
- package/src/statements/CreateTableStatement.ts +18 -0
- package/src/statements/CreateTableStatementTextRenderer.ts +92 -0
- package/src/statements/DefaultStatementTextRenderer.ts +9 -0
- package/src/statements/DeleteStatement.ts +15 -0
- package/src/statements/DeleteStatementTextRenderer.ts +12 -0
- package/src/statements/ExecuteStoredProcedureStatement.ts +15 -0
- package/src/statements/ExecuteStoredProcedureStatementTextRenderer.ts +15 -0
- package/src/statements/ExpressionEvaluator.ts +166 -0
- package/src/statements/ExpressionRenderer.ts +161 -0
- package/src/statements/ForeignKey.ts +23 -0
- package/src/statements/IBulkDeleteStatement.ts +3 -0
- package/src/statements/IBulkInsertStatement.ts +3 -0
- package/src/statements/IBulkUpdateStatement.ts +3 -0
- package/src/statements/ICondition.ts +5 -0
- package/src/statements/IConditionVisitor.ts +7 -0
- package/src/statements/ICreateIndexStatement.ts +3 -0
- package/src/statements/ICreateTableStatement.ts +3 -0
- package/src/statements/IDeleteStatement.ts +6 -0
- package/src/statements/IExecuteStoredProcedureStatement.ts +3 -0
- package/src/statements/IExpression.ts +1 -0
- package/src/statements/IInsertStatement.ts +3 -0
- package/src/statements/IReturnStatement.ts +3 -0
- package/src/statements/ISelectStatement.ts +6 -0
- package/src/statements/IStatement.ts +5 -0
- package/src/statements/IStatementVisitor.ts +27 -0
- package/src/statements/ITableConstraint.ts +6 -0
- package/src/statements/IUpdateStatement.ts +6 -0
- package/src/statements/IWhere.ts +7 -0
- package/src/statements/Identifier.ts +5 -0
- package/src/statements/InsertStatement.ts +15 -0
- package/src/statements/InsertStatementTextRenderer.ts +7 -0
- package/src/statements/Join.ts +26 -0
- package/src/statements/Literal.ts +6 -0
- package/src/statements/Native.ts +5 -0
- package/src/statements/NotNull.ts +3 -0
- package/src/statements/Operator.ts +234 -0
- package/src/statements/OrderBy.ts +19 -0
- package/src/statements/PrimaryKey.ts +9 -0
- package/src/statements/ReturnStatement.ts +15 -0
- package/src/statements/ReturnStatementTextRenderer.ts +15 -0
- package/src/statements/SelectInsertedIdStatement.test.ts +11 -0
- package/src/statements/SelectInsertedIdStatement.ts +11 -0
- package/src/statements/SelectInsertedIdStatementTextRenderer.ts +7 -0
- package/src/statements/SelectStatement.ts +34 -0
- package/src/statements/SelectStatementOptions.ts +16 -0
- package/src/statements/SelectStatementTextRenderer.ts +71 -0
- package/src/statements/StatementCompile.test.ts +231 -0
- package/src/statements/StatementEvaluator.ts +5 -0
- package/src/statements/StatementParser.test.ts +304 -0
- package/src/statements/StatementParser.ts +461 -0
- package/src/statements/StatementRenderer.ts +120 -0
- package/src/statements/StatementTextRenderer.ts +60 -0
- package/src/statements/Subquery.ts +6 -0
- package/src/statements/UniqueConstraint.ts +9 -0
- package/src/statements/UpdateStatement.ts +34 -0
- package/src/statements/UpdateStatementTextRenderer.ts +63 -0
- package/src/statements/Where.ts +250 -0
- package/src/statements/WhereText.ts +10 -0
- package/src/statements/index.ts +75 -0
- package/src/stubs/StubCommand.ts +30 -0
- package/src/stubs/StubConnection.ts +21 -0
- package/src/stubs/StubDatasource.test.ts +99 -0
- package/src/stubs/StubDatasource.ts +60 -0
- package/src/stubs/StubReader.ts +25 -0
- package/src/stubs/StubRepository.ts +42 -0
- package/src/stubs/StubTransaction.ts +17 -0
- package/src/stubs/createStubDatasource.ts +4 -0
- package/src/stubs/index.ts +7 -0
- package/src/stubs/notImplemented.ts +5 -0
- package/src/tests/contact/Address.ts +14 -0
- package/src/tests/contact/AddressType.ts +6 -0
- package/src/tests/contact/Base.ts +7 -0
- package/src/tests/contact/Contact.ts +12 -0
- package/src/tests/contact/ContactBase.ts +8 -0
- package/src/tests/contact/ContactChangeLog.ts +8 -0
- package/src/tests/contact/ContactGroup.ts +6 -0
- package/src/tests/contact/ContactGroupBase.ts +6 -0
- package/src/tests/contact/ContactGroupMember.ts +6 -0
- package/src/tests/contact/ContactSource.ts +6 -0
- package/src/tests/contact/ContactType.ts +6 -0
- package/src/tests/contact/ContactsService.test.ts +118 -0
- package/src/tests/contact/ContactsService.ts +32 -0
- package/src/tests/contact/ImportContactRequest.ts +4 -0
- package/src/tests/contact/ImportContactResult.ts +5 -0
- package/src/tests/contact/LegacyContact.ts +7 -0
- package/src/tests/contact/LegacyMigrationResult.ts +5 -0
- package/src/tests/contact/Phone.ts +9 -0
- package/src/tests/contact/PhoneType.ts +6 -0
- package/src/tests/contact/asContactsView.ts +63 -0
- package/src/tests/contact/contactColumns.ts +40 -0
- package/src/tests/contact/contactLookupIds.ts +32 -0
- package/src/tests/contact/contactLookups.ts +6 -0
- package/src/tests/contact/contactsParity.ts +63 -0
- package/src/tests/contact/contactsServiceOf.ts +38 -0
- package/src/tests/contact/contactsView.ts +31 -0
- package/src/tests/contact/expectContactsView.ts +23 -0
- package/src/tests/contact/extraContact.ts +61 -0
- package/src/tests/contact/logMapped.ts +5 -0
- package/src/tests/contact/seedContacts.ts +31 -0
- package/README.md +0 -3
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Enrichment } from "./Enrichment.js";
|
|
2
|
+
import type { IReadonlyEnrichmentStrategy } from "./IReadonlyEnrichmentStrategy.js";
|
|
3
|
+
import type { IReadonlyRepository } from "./IReadonlyRepository.js";
|
|
4
|
+
export interface IEnriched<T> {
|
|
5
|
+
addEnriched<TRelated extends object>(enrichment: Enrichment, via: IReadonlyRepository<TRelated>, strategy?: IReadonlyEnrichmentStrategy<T & object>): this;
|
|
6
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Enrichment } from "./Enrichment.js";
|
|
2
|
+
import type { IReadonlyRepository } from "./IReadonlyRepository.js";
|
|
3
|
+
import type { Row } from "./Row.js";
|
|
4
|
+
export interface IReadonlyEnrichmentStrategy<T extends object> {
|
|
5
|
+
apply<TRelated extends object>(via: IReadonlyRepository<TRelated>, enrichment: Enrichment, parents: T[], sources?: (Row | undefined)[]): Promise<void>;
|
|
6
|
+
applyLinked<TRelated extends object, TLink extends object>(via: IReadonlyRepository<TRelated>, link: IReadonlyRepository<TLink>, enrichment: Enrichment, parents: T[], sources?: (Row | undefined)[]): Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Parameter } from "./Parameter.js";
|
|
2
|
+
import type { IExecuteStoredProcedureStatement } from "./statements/IExecuteStoredProcedureStatement.js";
|
|
3
|
+
import type { ISelectStatement } from "./statements/ISelectStatement.js";
|
|
4
|
+
import type { IRepository } from "./IRepository.js";
|
|
5
|
+
import type { IWhere } from "./statements/IWhere.js";
|
|
6
|
+
import type { ReadonlyRepositoryMappingOptions } from "./ReadonlyRepositoryMappingOptions.js";
|
|
7
|
+
export type ReadQuery = ISelectStatement | IWhere | IExecuteStoredProcedureStatement;
|
|
8
|
+
export interface IReadonlyRepository<T = unknown> extends IRepository<T> {
|
|
9
|
+
readSingle(query?: ReadQuery, parameters?: Parameter[], options?: ReadonlyRepositoryMappingOptions<T>): Promise<T | undefined>;
|
|
10
|
+
read(query?: ReadQuery, parameters?: Parameter[], options?: ReadonlyRepositoryMappingOptions<T>): AsyncIterable<T>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Constructable } from "./converters/Constructable.js";
|
|
2
|
+
import type { IReadonlyRepository } from "./IReadonlyRepository.js";
|
|
3
|
+
import type { IRepository } from "./IRepository.js";
|
|
4
|
+
export interface IRepositoryFactory {
|
|
5
|
+
register(repository: IRepository): void;
|
|
6
|
+
create<T>(type: Constructable<T>): IReadonlyRepository<T>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IConnection } from "./IConnection.js";
|
|
2
|
+
import type { IsolationLevel } from "./IsolationLevel.js";
|
|
3
|
+
export interface ITransaction {
|
|
4
|
+
readonly connection: IConnection;
|
|
5
|
+
readonly isolation: IsolationLevel;
|
|
6
|
+
commit(): Promise<void>;
|
|
7
|
+
abort(): Promise<void>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { IRepositoryTree } from "./IRepositoryTree.js";
|
|
2
|
+
import type { WriteMode } from "./WriteMode.js";
|
|
3
|
+
export interface IWriteEnrichmentStrategy<T> {
|
|
4
|
+
readonly useTransaction: boolean;
|
|
5
|
+
persist(tree: IRepositoryTree, items: T[], mode: WriteMode): Promise<void>;
|
|
6
|
+
persistBulk?(tree: IRepositoryTree, items: T[], mode: WriteMode): Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const IsolationLevel: {
|
|
2
|
+
readonly ReadUncommitted: "readUncommitted";
|
|
3
|
+
readonly ReadCommitted: "readCommitted";
|
|
4
|
+
readonly RepeatableRead: "repeatableRead";
|
|
5
|
+
readonly Serializable: "serializable";
|
|
6
|
+
};
|
|
7
|
+
export type IsolationLevel = (typeof IsolationLevel)[keyof typeof IsolationLevel];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Enrichment } from "./Enrichment.js";
|
|
2
|
+
import type { IReadonlyRepository } from "./IReadonlyRepository.js";
|
|
3
|
+
import type { TypeMap } from "./mappers/TypeMap.js";
|
|
4
|
+
import type { Row } from "./Row.js";
|
|
5
|
+
import { DefaultReadonlyEnrichmentStrategy } from "./DefaultReadonlyEnrichmentStrategy.js";
|
|
6
|
+
export declare class NestedToObjectEnrichmentStrategy<T extends object> extends DefaultReadonlyEnrichmentStrategy<T> {
|
|
7
|
+
private readonly nested;
|
|
8
|
+
constructor(typeMap: TypeMap<T>);
|
|
9
|
+
apply<TRelated extends object>(_via: IReadonlyRepository<TRelated>, _enrichment: Enrichment, parents: T[], sources?: (Row | undefined)[]): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const ParameterDirection: {
|
|
2
|
+
readonly Input: "input";
|
|
3
|
+
readonly Output: "output";
|
|
4
|
+
readonly InputOutput: "inputOutput";
|
|
5
|
+
readonly ReturnValue: "returnValue";
|
|
6
|
+
};
|
|
7
|
+
export type ParameterDirection = (typeof ParameterDirection)[keyof typeof ParameterDirection];
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { ICommand } from "./ICommand.js";
|
|
2
|
+
import type { ICommandMiddleware } from "./ICommandMiddleware.js";
|
|
3
|
+
import type { IConnection } from "./IConnection.js";
|
|
4
|
+
import type { Parameter } from "./Parameter.js";
|
|
5
|
+
import type { IReadonlyRepository, ReadQuery } from "./IReadonlyRepository.js";
|
|
6
|
+
import type { Row } from "./Row.js";
|
|
7
|
+
import type { Cell, Cells } from "./converters/Cell.js";
|
|
8
|
+
import type { Constructable } from "./converters/Constructable.js";
|
|
9
|
+
import type { ReadonlyRepositoryMappingOptions } from "./ReadonlyRepositoryMappingOptions.js";
|
|
10
|
+
import type { BuiltRepository } from "./BuiltRepository.js";
|
|
11
|
+
import type { TypeConverter } from "./converters/TypeConverter.js";
|
|
12
|
+
import type { Enrichment } from "./Enrichment.js";
|
|
13
|
+
import type { IEnriched } from "./IEnriched.js";
|
|
14
|
+
import type { IReadonlyEnrichmentStrategy } from "./IReadonlyEnrichmentStrategy.js";
|
|
15
|
+
import { StoredEnrichment } from "./StoredEnrichment.js";
|
|
16
|
+
export declare const untyped: <T>() => Constructable<T>;
|
|
17
|
+
export type Sourced<T> = {
|
|
18
|
+
item: T;
|
|
19
|
+
source?: Row;
|
|
20
|
+
};
|
|
21
|
+
export declare const enrichmentsOf: (host: object) => readonly StoredEnrichment[] | undefined;
|
|
22
|
+
export declare const isBuilt: <T>(value: IConnection | BuiltRepository<T>) => value is BuiltRepository<T>;
|
|
23
|
+
export declare const builtOf: <T>(typeOrConnectionOrBuilt: Constructable<T> | IConnection | BuiltRepository<T>, connectionOrOptions?: IConnection | ReadonlyRepositoryMappingOptions<T>) => BuiltRepository<T> | undefined;
|
|
24
|
+
export declare class ReadonlyRepository<T> implements IReadonlyRepository<T>, IEnriched<T> {
|
|
25
|
+
readonly type: Constructable<T>;
|
|
26
|
+
private connection?;
|
|
27
|
+
protected rowConverter?: TypeConverter<Cells, Cells>;
|
|
28
|
+
protected objectConverter?: TypeConverter<T, Cells>;
|
|
29
|
+
private entityMappers;
|
|
30
|
+
private propertyMappers;
|
|
31
|
+
private statementMappers;
|
|
32
|
+
private readonlyStatements?;
|
|
33
|
+
private readonly middlewares;
|
|
34
|
+
constructor(type: Constructable<T>);
|
|
35
|
+
constructor(type: Constructable<T>, connection: IConnection);
|
|
36
|
+
constructor(connection: IConnection, options: ReadonlyRepositoryMappingOptions<T>);
|
|
37
|
+
constructor(built: BuiltRepository<T>);
|
|
38
|
+
constructor();
|
|
39
|
+
addMiddleware: (middleware: ICommandMiddleware) => this;
|
|
40
|
+
addEnriched<TRelated extends object>(enrichment: Enrichment, via: IReadonlyRepository<TRelated>, strategy?: IReadonlyEnrichmentStrategy<T & object>): this;
|
|
41
|
+
read(query?: ReadQuery, parameters?: Parameter[], options?: ReadonlyRepositoryMappingOptions<T>): AsyncIterable<T>;
|
|
42
|
+
readSingle(query?: ReadQuery, parameters?: Parameter[], options?: ReadonlyRepositoryMappingOptions<T>): Promise<T | undefined>;
|
|
43
|
+
protected get enriched(): boolean;
|
|
44
|
+
protected command: () => ICommand;
|
|
45
|
+
protected column: (property: string) => string;
|
|
46
|
+
protected cell: (property: string, value: Cell, fieldsApplied: boolean, options?: ReadonlyRepositoryMappingOptions<T>) => Cell;
|
|
47
|
+
private entries;
|
|
48
|
+
private mappers;
|
|
49
|
+
private rowConverterOf;
|
|
50
|
+
private objects;
|
|
51
|
+
private readTracked;
|
|
52
|
+
private apply;
|
|
53
|
+
private convertObject;
|
|
54
|
+
private readItems;
|
|
55
|
+
private sourced;
|
|
56
|
+
private fill;
|
|
57
|
+
private columnToPropertyName;
|
|
58
|
+
private readQuery;
|
|
59
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IConnection } from "./IConnection.js";
|
|
2
|
+
import type { BuiltRepository } from "./BuiltRepository.js";
|
|
3
|
+
import type { IMapper } from "./mappers/IMapper.js";
|
|
4
|
+
import type { ReadonlyRepositoryMappingOptions } from "./ReadonlyRepositoryMappingOptions.js";
|
|
5
|
+
import { ReadonlyRepositoryStatements } from "./ReadonlyRepositoryStatements.js";
|
|
6
|
+
export declare class ReadonlyRepositoryBuilder<T = object> {
|
|
7
|
+
protected entityMapper: IMapper<string, string>;
|
|
8
|
+
protected propertyMapper: IMapper<string, string>;
|
|
9
|
+
parts: (connection: IConnection, options: ReadonlyRepositoryMappingOptions<T>) => BuiltRepository<T>;
|
|
10
|
+
protected ids: (_options: ReadonlyRepositoryMappingOptions<T>) => string[];
|
|
11
|
+
protected statements: (table: string, columns: string[]) => ReadonlyRepositoryStatements;
|
|
12
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Cell, Cells } from "./converters/Cell.js";
|
|
2
|
+
import type { Constructable } from "./converters/Constructable.js";
|
|
3
|
+
import type { TypeConverter } from "./converters/TypeConverter.js";
|
|
4
|
+
import type { IMapper } from "./mappers/IMapper.js";
|
|
5
|
+
export type ReadonlyRepositoryMappingOptions<T = Cells> = {
|
|
6
|
+
entity?: string;
|
|
7
|
+
entityMapper?: IMapper<string, string>;
|
|
8
|
+
propertyMappings?: IMapper<string, string>;
|
|
9
|
+
rowConverter?: TypeConverter<Cells, Cells>;
|
|
10
|
+
objectConverter?: TypeConverter<T, Cells>;
|
|
11
|
+
type?: Constructable<T>;
|
|
12
|
+
rowTypeConverters?: Record<string, TypeConverter<Cell, Cell>>;
|
|
13
|
+
readProperties?: string[];
|
|
14
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ISelectStatement } from "./statements/ISelectStatement.js";
|
|
2
|
+
import type { IWhere } from "./statements/IWhere.js";
|
|
3
|
+
export declare class ReadonlyRepositoryStatements {
|
|
4
|
+
protected readonly table: string;
|
|
5
|
+
readonly readColumns: readonly string[];
|
|
6
|
+
constructor(table: string, readColumns: readonly string[]);
|
|
7
|
+
select: (where?: IWhere) => ISelectStatement;
|
|
8
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IConnection } from "./IConnection.js";
|
|
2
|
+
import type { ICRUDRepository } from "./ICRUDRepository.js";
|
|
3
|
+
import type { IReadonlyRepository } from "./IReadonlyRepository.js";
|
|
4
|
+
export declare class RepositoryAccess {
|
|
5
|
+
private readonly createRepo;
|
|
6
|
+
private readonly createReadonlyRepo;
|
|
7
|
+
private readonly connection;
|
|
8
|
+
constructor(createRepo: (connection: IConnection) => ICRUDRepository, createReadonlyRepo: (connection: IConnection) => IReadonlyRepository, connection: IConnection);
|
|
9
|
+
create: () => ICRUDRepository;
|
|
10
|
+
createReadonly: () => IReadonlyRepository;
|
|
11
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Constructable } from "./converters/Constructable.js";
|
|
2
|
+
import type { IConnection } from "./IConnection.js";
|
|
3
|
+
import type { IReadonlyRepository } from "./IReadonlyRepository.js";
|
|
4
|
+
import type { IRepository } from "./IRepository.js";
|
|
5
|
+
import type { IRepositoryFactory } from "./IRepositoryFactory.js";
|
|
6
|
+
import type { ICRUDRepository } from "./ICRUDRepository.js";
|
|
7
|
+
import type { ICRUDRepositoryFactory } from "./ICRUDRepositoryFactory.js";
|
|
8
|
+
import { RepositoryAccess } from "./RepositoryAccess.js";
|
|
9
|
+
export declare class RepositoryFactory implements ICRUDRepositoryFactory {
|
|
10
|
+
#private;
|
|
11
|
+
constructor();
|
|
12
|
+
static bind: (register: (factory: RepositoryFactory) => void) => void;
|
|
13
|
+
static resetBinders: () => void;
|
|
14
|
+
private applyBound;
|
|
15
|
+
register(repository: IRepository): void;
|
|
16
|
+
register(typeName: string, pluralName: string, create: (connection: IConnection) => ICRUDRepository, createReadonly: (connection: IConnection) => IReadonlyRepository): void;
|
|
17
|
+
create<T>(type: Constructable<T>): ICRUDRepository<T>;
|
|
18
|
+
create(name: string, connection: IConnection): ICRUDRepository;
|
|
19
|
+
createReadonly: (name: string, connection: IConnection) => IReadonlyRepository;
|
|
20
|
+
access: (name: string, connection: IConnection) => RepositoryAccess;
|
|
21
|
+
has: (name: string) => boolean;
|
|
22
|
+
readonly asReadonly: IRepositoryFactory;
|
|
23
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IRepositoryTree } from "./IRepositoryTree.js";
|
|
2
|
+
import type { IRepositoryTreeNode } from "./IRepositoryTreeNode.js";
|
|
3
|
+
export declare class RepositoryTree implements IRepositoryTree {
|
|
4
|
+
readonly parent: IRepositoryTreeNode;
|
|
5
|
+
constructor(parent: IRepositoryTreeNode);
|
|
6
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Enrichment } from "./Enrichment.js";
|
|
2
|
+
import type { IRepositoryTreeNode } from "./IRepositoryTreeNode.js";
|
|
3
|
+
export declare class RepositoryTreeNode implements IRepositoryTreeNode {
|
|
4
|
+
readonly value: object;
|
|
5
|
+
readonly propertyName: string;
|
|
6
|
+
readonly parent?: IRepositoryTreeNode | undefined;
|
|
7
|
+
readonly enrichment?: Enrichment | undefined;
|
|
8
|
+
constructor(value: object, propertyName: string, parent?: IRepositoryTreeNode | undefined, enrichment?: Enrichment | undefined);
|
|
9
|
+
}
|
package/dist/Row.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { CRUDRepository } from "./CRUDRepository.js";
|
|
2
|
+
import type { Response } from "./Response.js";
|
|
3
|
+
import type { IWhere } from "./statements/IWhere.js";
|
|
4
|
+
import type { IBulkWriteStrategy } from "./IBulkWriteStrategy.js";
|
|
5
|
+
export declare class SingleCommandIBulkWriteStrategy<T extends object> implements IBulkWriteStrategy<T> {
|
|
6
|
+
repo: CRUDRepository<T>;
|
|
7
|
+
attach: () => void;
|
|
8
|
+
create: (items: T[]) => Promise<Response>;
|
|
9
|
+
update: (items: T[], byWhere: IWhere | undefined) => Promise<Response>;
|
|
10
|
+
delete: (items: T[], byWhere: IWhere | undefined) => Promise<Response>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Cell } from "./converters/Cell.js";
|
|
2
|
+
import type { IMapper } from "./mappers/IMapper.js";
|
|
3
|
+
import type { IStatement } from "./statements/IStatement.js";
|
|
4
|
+
import type { IWhere } from "./statements/IWhere.js";
|
|
5
|
+
export declare class StatementMappers implements IMapper<string, string> {
|
|
6
|
+
private readonly entityMappers;
|
|
7
|
+
private readonly propertyMappers;
|
|
8
|
+
constructor(entityMappers: IMapper<string, string>, propertyMappers: IMapper<string, string>);
|
|
9
|
+
map: (property: string) => string;
|
|
10
|
+
reverseMap: (key: string) => string;
|
|
11
|
+
column: (property: string) => string;
|
|
12
|
+
property: (key: string) => string;
|
|
13
|
+
apply: (query: IStatement | undefined, cell: (property: string, value: Cell) => Cell) => IStatement | undefined;
|
|
14
|
+
applyWhere: (where: IWhere | undefined, cell: (property: string, value: Cell) => Cell) => IWhere | undefined;
|
|
15
|
+
private mapSelectField;
|
|
16
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Enrichment } from "./Enrichment.js";
|
|
2
|
+
import type { ICRUDRepository } from "./ICRUDRepository.js";
|
|
3
|
+
import type { Row } from "./Row.js";
|
|
4
|
+
export type ApplyEnrichment<T extends object = object> = (parents: T[], sources?: (Row | undefined)[]) => Promise<void>;
|
|
5
|
+
export declare class StoredEnrichment<T extends object = object> {
|
|
6
|
+
readonly enrichment: Enrichment;
|
|
7
|
+
apply: ApplyEnrichment<T>;
|
|
8
|
+
persist?: ICRUDRepository<object>;
|
|
9
|
+
link?: ICRUDRepository<object>;
|
|
10
|
+
constructor(enrichment: Enrichment, apply: ApplyEnrichment<T>, persist?: ICRUDRepository<object>, link?: ICRUDRepository<object>);
|
|
11
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Response } from "./Response.js";
|
|
2
|
+
import type { IWhere } from "./statements/IWhere.js";
|
|
3
|
+
import type { CRUDRepository } from "./CRUDRepository.js";
|
|
4
|
+
import type { CRUDRepositoryOptions } from "./CRUDRepositoryOptions.js";
|
|
5
|
+
import type { ICommand } from "./ICommand.js";
|
|
6
|
+
import type { IBulkWriteStrategy } from "./IBulkWriteStrategy.js";
|
|
7
|
+
export declare class StoredProcedureBulkWriteStrategy<T extends object> implements IBulkWriteStrategy<T> {
|
|
8
|
+
private readonly createName;
|
|
9
|
+
private readonly updateName;
|
|
10
|
+
private readonly deleteName;
|
|
11
|
+
repo: CRUDRepository<T>;
|
|
12
|
+
command: ICommand;
|
|
13
|
+
options: CRUDRepositoryOptions<T>;
|
|
14
|
+
attach: (command: ICommand, options: CRUDRepositoryOptions<T>) => void;
|
|
15
|
+
constructor(createName: string, updateName: string, deleteName: string);
|
|
16
|
+
create: (items: T[]) => Promise<Response>;
|
|
17
|
+
update: (items: T[], _byWhere: IWhere | undefined) => Promise<Response>;
|
|
18
|
+
delete: (items: T[], _byWhere: IWhere | undefined) => Promise<Response>;
|
|
19
|
+
private then;
|
|
20
|
+
private call;
|
|
21
|
+
private ids;
|
|
22
|
+
private rowOf;
|
|
23
|
+
private identity;
|
|
24
|
+
private applyIds;
|
|
25
|
+
private column;
|
|
26
|
+
private reverse;
|
|
27
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Cells } from "./converters/Cell.js";
|
|
2
|
+
import type { IReader } from "./IReader.js";
|
|
3
|
+
export declare class StreamingReader implements IReader<Cells> {
|
|
4
|
+
private readonly pull;
|
|
5
|
+
private readonly advance;
|
|
6
|
+
private readonly close;
|
|
7
|
+
current: Cells | undefined;
|
|
8
|
+
private closed;
|
|
9
|
+
constructor(pull: () => Promise<Cells | undefined>, advance: () => Promise<boolean>, close?: () => Promise<void>);
|
|
10
|
+
next(): Promise<boolean>;
|
|
11
|
+
read(): AsyncIterable<Cells>;
|
|
12
|
+
nextResult(): Promise<boolean>;
|
|
13
|
+
dispose(): Promise<void>;
|
|
14
|
+
[Symbol.asyncDispose]: () => Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
export declare const statementReader: (statements: readonly string[], load: (sql: string) => AsyncIterable<Cells>) => StreamingReader;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IConnection } from "./IConnection.js";
|
|
2
|
+
import type { IUnitOfWork } from "./IUnitOfWork.js";
|
|
3
|
+
export declare class UnitOfWorkTransaction implements IUnitOfWork {
|
|
4
|
+
private readonly connection;
|
|
5
|
+
private begun;
|
|
6
|
+
private transaction;
|
|
7
|
+
constructor(connection: IConnection);
|
|
8
|
+
begin: () => Promise<void>;
|
|
9
|
+
commit: () => Promise<void>;
|
|
10
|
+
abort: () => Promise<void>;
|
|
11
|
+
private release;
|
|
12
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Enrichment } from "./Enrichment.js";
|
|
2
|
+
import type { ICRUDRepository } from "./ICRUDRepository.js";
|
|
3
|
+
import type { Scalar } from "./builders/Scalar.js";
|
|
4
|
+
import { Where } from "./statements/index.js";
|
|
5
|
+
export declare abstract class UpdateEnrichmentStrategy<T> {
|
|
6
|
+
abstract updateChildren<TChild extends object>(writer: ICRUDRepository<TChild>, enrichment: Enrichment, parent: T): Promise<void>;
|
|
7
|
+
abstract updateLinked<TChild extends object>(writer: ICRUDRepository<TChild>, enrichment: Enrichment, parent: T): Promise<void>;
|
|
8
|
+
protected getCell: <TItem>(item: TItem, name: string) => Scalar | object | undefined;
|
|
9
|
+
protected presentCell: (value: Scalar | object | undefined) => value is Scalar;
|
|
10
|
+
protected payloadOf: <TChild extends object, TParent>(parent: TParent, into: string, enrichment?: Enrichment) => TChild[];
|
|
11
|
+
protected stampCell: <TItem extends object>(related: TItem, by: string, key: Scalar | object | undefined) => void;
|
|
12
|
+
protected hasKey: <TItem extends object>(item: TItem, keys: readonly string[]) => boolean;
|
|
13
|
+
protected keyOf: <TItem extends object>(item: TItem, keys: readonly string[]) => string;
|
|
14
|
+
protected namesOf: <TChild extends object>(writer: ICRUDRepository<TChild>, item: TChild) => readonly string[];
|
|
15
|
+
protected linkWhere: (association: NonNullable<Enrichment["association"]>, parentKey: Scalar, relatedKey: Scalar) => Where;
|
|
16
|
+
protected relatedIds: <TParent>(parent: TParent, enrichment: Enrichment) => Scalar[];
|
|
17
|
+
protected requiredKey: <TParent>(parent: TParent, enrichment: Enrichment) => Scalar;
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type WriteMode = "create" | "update" | "delete";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Scalar = string | number | boolean | bigint | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function collectAsync<T>(items: AsyncIterable<T>): Promise<T[]>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type Casing = "camelCase" | "capitalCase" | "constantCase" | "dotCase" | "kebabCase" | "noCase" | "pascalCase" | "pascalSnakeCase" | "pathCase" | "sentenceCase" | "snakeCase" | "trainCase";
|
|
2
|
+
export declare class ChangeCasingConverter {
|
|
3
|
+
private readonly casing;
|
|
4
|
+
constructor(casing: Casing);
|
|
5
|
+
convert: (from: string) => string;
|
|
6
|
+
reverseConvert: (to: string) => string;
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Constructable<T> = new () => T;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Cell, Cells } from "./Cell.js";
|
|
2
|
+
import { TypeConverter } from "./TypeConverter.js";
|
|
3
|
+
import type { Constructable } from "./Constructable.js";
|
|
4
|
+
import type { IMapper } from "../mappers/IMapper.js";
|
|
5
|
+
export declare class MetaDataRowTypeConverter<T = Cells> extends TypeConverter<T, Cells> {
|
|
6
|
+
fields: Record<string, TypeConverter<Cell, Cell>>;
|
|
7
|
+
references: Set<string>;
|
|
8
|
+
referenceColumns: IMapper<string, string>;
|
|
9
|
+
shouldCoerceId: boolean;
|
|
10
|
+
constructor(fields?: Record<string, TypeConverter<Cell, Cell>>);
|
|
11
|
+
convert: (row: Cells, type?: Constructable<T>) => T;
|
|
12
|
+
reverseConvert: (row: T) => Cells;
|
|
13
|
+
private converted;
|
|
14
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Cell, Cells } from "./Cell.js";
|
|
2
|
+
import { TypeConverter } from "./TypeConverter.js";
|
|
3
|
+
export declare class RowTypeConverter extends TypeConverter<Cells, Cells> {
|
|
4
|
+
readonly fields: Record<string, TypeConverter<Cell, Cell>>;
|
|
5
|
+
constructor(fields: Record<string, TypeConverter<Cell, Cell>>);
|
|
6
|
+
static from(converters: Record<string, TypeConverter<Cell, Cell>>, columns: Record<string, string>): RowTypeConverter;
|
|
7
|
+
convert: (from: Cells) => Cells;
|
|
8
|
+
reverseConvert: (to: Cells) => Cells;
|
|
9
|
+
private apply;
|
|
10
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Cell } from "./converters/Cell.js";
|
|
2
|
+
import type { Constructable } from "./converters/Constructable.js";
|
|
3
|
+
import type { TypeConverter } from "./converters/TypeConverter.js";
|
|
4
|
+
import type { CRUDRepositoryOptions } from "./CRUDRepositoryOptions.js";
|
|
5
|
+
export { fieldNamesOf } from "./createReadonlyRepositoryMappingOptions.js";
|
|
6
|
+
export declare const defaultId: (fields: string[]) => string[];
|
|
7
|
+
export declare const createCRUDRepositoryOptions: <T>(type: Constructable<T>, rowTypeConverters?: Record<string, TypeConverter<Cell, Cell>>) => CRUDRepositoryOptions<T>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Cell } from "./converters/Cell.js";
|
|
2
|
+
import type { Constructable } from "./converters/Constructable.js";
|
|
3
|
+
import type { TypeConverter } from "./converters/TypeConverter.js";
|
|
4
|
+
import type { ReadonlyRepositoryMappingOptions } from "./ReadonlyRepositoryMappingOptions.js";
|
|
5
|
+
export declare const fieldNamesOf: <T>(type: Constructable<T>) => string[];
|
|
6
|
+
export declare const createReadonlyRepositoryMappingOptions: <T>(type: Constructable<T>, rowTypeConverters?: Record<string, TypeConverter<Cell, Cell>>) => ReadonlyRepositoryMappingOptions<T>;
|