GoogleCloudPlatform/cloud-sql-nodejs-connector

Align class names and code structure with the connectors in other languages

hessjcg opened this issue · 0 comments

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