GoogleCloudPlatform / GoogleCloudPlatform/cloud-sql-nodejs-connector
Align class names and code structure with the connectors in other languages
- Dominant language
- TypeScript
- Stars
- 97
- Forks
- 16
- Avg merge
- 4d 16h
- Merged PRs (30d)
- 4
Description
The connectors in the other languages are structured with common names and separation of concerns.
Public API:
- `Connector` is the main public API to configure and connect.
- `ConnectionOptions` is the value object containing connection options. main public API to configure and connect.
Internal API:
- `ConnectorRegistry` is the internal class that holds configuration and caches for each database instance.
- `ConnectionInfo` is a value object that holds the configuration and data for one database instance.
- `ConnectionInfoCache` interface holds the active `ConnectionInfo` value for a single database instance and keeps it up to date, refreshing the data as needed.
- `RefreshAheadCache` implements the `ConnectionInfoCache` using the current connector refresh algorithm
- `LazyRefreshCache` (to be added with #285) implements `ConnectionInfoCache` using the lazy refresh algorithm.
- `ConnectionInfoRepository` calls the Cloud SQL Admin API to build an up-to-date `ConnectionInfo` object.
To get to the NodeJS connector codebase into state, we will need to move some code and rename some classes.
- Rename `CloudSQLInstanceMap` to `ConnectorRegistry`
- Rename `InstanceConnectionInfo` to `ConnectionInfo`
- Rename `CloudSQLInstance` class to `RefreshAheadCache`
- Rename `Fetcher` interface to `ConnectionInfoRepository`
- Rename `SqlAdminFetcher` class to `DefaultConnectionInfoRepository`
Contributor guide
Assessment
This issue has not been assessed yet.