Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Style improvements on MongoDB example #20515

Merged
merged 5 commits into from
Dec 27, 2020

Conversation

LauraBeatris
Copy link
Contributor

@LauraBeatris LauraBeatris commented Dec 27, 2020

I've looked at the example code and saw some consistent issues related to code style. The changes applied to this PR fixes the following points:

  • Differences of line breaks styles between multiple files
  • Differences of if statements styles
  • Unnecessary comment
  • A typo on a JSDocs

There were line breaks between statements on pages/index.js

export async function getServerSideProps(context) {
  const { client } = await connectToDatabase()

  const isConnected = await client.isConnected() 

  return {
    props: { isConnected },
  }
}

And this wasn't being applied to the MongoDB utility:

export async function connectToDatabase() {
  if (cached.conn) return cached.conn
  if (!cached.promise) {
    const conn = {}
    const opts = {
      useNewUrlParser: true,
      useUnifiedTopology: true,
    }
{...}

And also, as shown in the snippet above, there are different styles of if statements being used.

With that being said, the reason I made this PR is because I think that this kind of inconsistent arises questions when a contributor looks to the codebase, even if this is a simple example.

@ijjk ijjk added the examples Issue/PR related to examples label Dec 27, 2020
@vercel vercel bot temporarily deployed to Preview December 27, 2020 14:50 Inactive
@ijjk
Copy link
Member

ijjk commented Dec 27, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
buildDuration 10.2s 10.4s ⚠️ +204ms
nodeModulesSize 82.6 MB 82.6 MB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
/ failed reqs 0 0
/ total time (seconds) 2.052 2.071 ⚠️ +0.02
/ avg req/sec 1218.24 1207.02 ⚠️ -11.22
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.232 1.318 ⚠️ +0.09
/error-in-render avg req/sec 2029.92 1896.72 ⚠️ -133.2
Client Bundles (main, webpack, commons)
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
677f882d2ed8..5e70.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-e0d2962..b163.js gzip 6.56 kB 6.56 kB
webpack-95c2..e870.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
polyfills-d3..23f6.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
_app-0d19cb6..5497.js gzip 1.28 kB 1.28 kB
_error-85785..a9f3.js gzip 3.44 kB 3.44 kB
hooks-42456f..0c06.js gzip 887 B 887 B
index-8081ce..e44f.js gzip 227 B 227 B
link-0ab9f83..fa00.js gzip 1.61 kB 1.61 kB
routerDirect..c3d8.js gzip 303 B 303 B
withRouter-0..a68e.js gzip 302 B 302 B
Overall change 8.05 kB 8.05 kB
Client Build Manifests
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
_buildManifest.js gzip 323 B 323 B
Overall change 323 B 323 B
Rendered Page Sizes
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
index.html gzip 612 B 612 B
link.html gzip 620 B 620 B
withRouter.html gzip 607 B 607 B
Overall change 1.84 kB 1.84 kB

Serverless Mode
General
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
buildDuration 12.3s 12.3s ⚠️ +24ms
nodeModulesSize 82.6 MB 82.6 MB
Client Bundles (main, webpack, commons)
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
677f882d2ed8..5e70.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-e0d2962..b163.js gzip 6.56 kB 6.56 kB
webpack-95c2..e870.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
polyfills-d3..23f6.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
_app-0d19cb6..5497.js gzip 1.28 kB 1.28 kB
_error-85785..a9f3.js gzip 3.44 kB 3.44 kB
hooks-42456f..0c06.js gzip 887 B 887 B
index-8081ce..e44f.js gzip 227 B 227 B
link-0ab9f83..fa00.js gzip 1.61 kB 1.61 kB
routerDirect..c3d8.js gzip 303 B 303 B
withRouter-0..a68e.js gzip 302 B 302 B
Overall change 8.05 kB 8.05 kB
Client Build Manifests
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
_buildManifest.js gzip 323 B 323 B
Overall change 323 B 323 B
Serverless bundles
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
_error.js 1 MB 1 MB
404.html 2.67 kB 2.67 kB
hooks.html 1.92 kB 1.92 kB
index.js 1 MB 1 MB
link.js 1.06 MB 1.06 MB
routerDirect.js 1.05 MB 1.05 MB
withRouter.js 1.05 MB 1.05 MB
Overall change 5.16 MB 5.16 MB
Commit: 939cdd7

@vercel vercel bot temporarily deployed to Preview December 27, 2020 15:30 Inactive
@ijjk
Copy link
Member

ijjk commented Dec 27, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
buildDuration 8.8s 8.8s ⚠️ +91ms
nodeModulesSize 82.6 MB 82.6 MB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
/ failed reqs 0 0
/ total time (seconds) 1.739 1.729 -0.01
/ avg req/sec 1437.93 1445.89 +7.96
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.085 1.111 ⚠️ +0.03
/error-in-render avg req/sec 2304.39 2250.44 ⚠️ -53.95
Client Bundles (main, webpack, commons)
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
677f882d2ed8..5e70.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-e0d2962..b163.js gzip 6.56 kB 6.56 kB
webpack-95c2..e870.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
polyfills-d3..23f6.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
_app-0d19cb6..5497.js gzip 1.28 kB 1.28 kB
_error-85785..a9f3.js gzip 3.44 kB 3.44 kB
hooks-42456f..0c06.js gzip 887 B 887 B
index-8081ce..e44f.js gzip 227 B 227 B
link-0ab9f83..fa00.js gzip 1.61 kB 1.61 kB
routerDirect..c3d8.js gzip 303 B 303 B
withRouter-0..a68e.js gzip 302 B 302 B
Overall change 8.05 kB 8.05 kB
Client Build Manifests
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
_buildManifest.js gzip 323 B 323 B
Overall change 323 B 323 B
Rendered Page Sizes
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
index.html gzip 612 B 612 B
link.html gzip 620 B 620 B
withRouter.html gzip 607 B 607 B
Overall change 1.84 kB 1.84 kB

Serverless Mode
General
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
buildDuration 10.1s 10.1s -33ms
nodeModulesSize 82.6 MB 82.6 MB
Client Bundles (main, webpack, commons)
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
677f882d2ed8..5e70.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-e0d2962..b163.js gzip 6.56 kB 6.56 kB
webpack-95c2..e870.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
polyfills-d3..23f6.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
_app-0d19cb6..5497.js gzip 1.28 kB 1.28 kB
_error-85785..a9f3.js gzip 3.44 kB 3.44 kB
hooks-42456f..0c06.js gzip 887 B 887 B
index-8081ce..e44f.js gzip 227 B 227 B
link-0ab9f83..fa00.js gzip 1.61 kB 1.61 kB
routerDirect..c3d8.js gzip 303 B 303 B
withRouter-0..a68e.js gzip 302 B 302 B
Overall change 8.05 kB 8.05 kB
Client Build Manifests
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
_buildManifest.js gzip 323 B 323 B
Overall change 323 B 323 B
Serverless bundles
vercel/next.js canary LauraBeatris/next.js improve-mongo-example-code-style Change
_error.js 1 MB 1 MB
404.html 2.67 kB 2.67 kB
hooks.html 1.92 kB 1.92 kB
index.js 1 MB 1 MB
link.js 1.06 MB 1.06 MB
routerDirect.js 1.05 MB 1.05 MB
withRouter.js 1.05 MB 1.05 MB
Overall change 5.16 MB 5.16 MB
Commit: 012ffb4

Comment on lines +23 to +55

if (!cached) {
cached = global.mongo = {}
}

export async function connectToDatabase() {
if (cached.conn) return cached.conn
if (cached.conn) {
return cached.conn
}

if (!cached.promise) {
const conn = {}

const opts = {
useNewUrlParser: true,
useUnifiedTopology: true,
}

cached.promise = MongoClient.connect(MONGODB_URI, opts)
.then((client) => {
conn.client = client

return client.db(MONGODB_DB)
})
.then((db) => {
conn.db = db

cached.conn = conn
})
}

await cached.promise

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@LauraBeatris We only worry about changes requested by eslint and prettier. Code style changes like this aren't required and it's never going to be perfect for everybody (I for example don't like that much spacing), so don't worry too much about this in the future.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it!

Copy link
Member

@lfades lfades left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@LauraBeatris LGTM. Thank you!

@kodiakhq kodiakhq bot merged commit bad1448 into vercel:canary Dec 27, 2020
@vercel vercel locked as resolved and limited conversation to collaborators Jan 29, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
examples Issue/PR related to examples
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants