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

feat: Convert to ESM #119

Merged
merged 7 commits into from
Apr 27, 2021
Merged

feat: Convert to ESM #119

merged 7 commits into from
Apr 27, 2021

Conversation

trygve-lie
Copy link
Contributor

BREAKING CHANGE: Convert from CommonJS to ESM

@trygve-lie trygve-lie requested a review from digitalsadhu April 26, 2021 21:17
Copy link
Member

@digitalsadhu digitalsadhu left a comment

Choose a reason for hiding this comment

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

Looks good.

@trygve-lie trygve-lie merged commit 349c5b9 into next Apr 27, 2021
@trygve-lie trygve-lie deleted the esm branch April 27, 2021 06:50
github-actions bot pushed a commit that referenced this pull request Apr 27, 2021
# [5.0.0-next.4](v5.0.0-next.3...v5.0.0-next.4) (2021-04-27)

### Bug Fixes

* **deps:** update dependency @podium/schemas to v4.0.4 ([5ff49c0](5ff49c0))
* **deps:** update dependency @podium/schemas to v4.0.5 ([9bf1a14](9bf1a14))
* **deps:** update dependency @podium/schemas to v4.1.0 ([4ff5fe9](4ff5fe9))
* **deps:** update dependency @podium/schemas to v4.1.1 ([f2cc938](f2cc938))
* **deps:** update dependency @podium/schemas to v4.1.10 ([5a10235](5a10235))
* **deps:** update dependency @podium/schemas to v4.1.11 ([20941c6](20941c6))
* **deps:** update dependency @podium/schemas to v4.1.13 ([f677772](f677772))
* **deps:** update dependency @podium/schemas to v4.1.14 ([0deb0d0](0deb0d0))
* **deps:** update dependency @podium/schemas to v4.1.15 ([446458c](446458c))
* Update @podium/schema to version 4.1.9 to fix ajv error ([#110](#110)) ([08ee7df](08ee7df))
* **deps:** update dependency @podium/schemas to v4.0.7 ([cbded99](cbded99))
* **deps:** update dependency @podium/schemas to v4.1.2 ([04c7b1b](04c7b1b))
* **deps:** update dependency @podium/schemas to v4.1.3 ([e663829](e663829))
* **deps:** update dependency @podium/schemas to v4.1.4 ([4cb9bb6](4cb9bb6))
* **deps:** update dependency @podium/schemas to v4.1.5 ([d920dab](d920dab))
* **deps:** update dependency @podium/schemas to v4.1.6 ([f92062c](f92062c))
* **deps:** update dependency @podium/schemas to v4.1.7 ([9eac72d](9eac72d))
* **deps:** update dependency @podium/schemas to v4.1.8 ([c8fde78](c8fde78))
* **deps:** update dependency camelcase to v6.1.0 ([ef22149](ef22149))
* **deps:** update dependency camelcase to v6.2.0 ([3e9dec9](3e9dec9))

### Features

* add .buildReactLinkAttributes and .buildReactScriptAttributes methods ([ffb0bff](ffb0bff))
* add .toReactAttrs() method to AssetJs and AssetCss classes and integration tests ([7ab097f](7ab097f))
* Convert to ESM ([#119](#119)) ([349c5b9](349c5b9))

### BREAKING CHANGES

* Convert from CommonJS to ESM

* feat: convert to ESM

* fix: Remove outcommented code

* ci: Add build step for backward compat to CJS

* ci: Ignore linting dist directory

Co-authored-by: Trygve Lie <trygve.lie@finn.no>
@github-actions
Copy link

🎉 This PR is included in version 5.0.0-next.4 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Nov 28, 2023
# [5.0.0](v4.5.1...v5.0.0) (2023-11-28)

### Bug Fixes

* Improve ESM exports to account for dual module exports ([#123](#123)) ([42ebb4f](42ebb4f))
* Point require export to main.js ([#122](#122)) ([1438ee6](1438ee6))
* Remove original url module ([#185](#185)) ([6c01c0f](6c01c0f))
* Simplify js and css value validation ([#70](#70)) ([05a1ffc](05a1ffc))

### Features

* Convert to ESM ([#119](#119)) ([349c5b9](349c5b9))
* Drop node 10.x support ([#67](#67)) ([84203f8](84203f8))
* Remove CJS build step ([#170](#170)) ([15390ed](15390ed))
* Use ES private properties instead of Symbols for privacy ([#72](#72)) ([4083fa1](4083fa1))

### BREAKING CHANGES

* Convert from CommonJS to ESM

* feat: convert to ESM

* fix: Remove outcommented code

* ci: Add build step for backward compat to CJS

* ci: Ignore linting dist directory

Co-authored-by: Trygve Lie <trygve.lie@finn.no>
* Due to dropping node 10.x support we use ES private properties instead of Symbols.

We've been using Symbols to define private properties in classes up until now. This has the downside that they are not true private and in later versions of node.js one would see these Symbols when inspecting an object. What we want is proper private properties.

This PR does also add a pretty printer which outputs an object literal or the object so when debugging one can see the getters and setters of the object.

Example: printing a object with `console.log()` would previously print the following:

```sh
PodiumHttpIncoming {
  [Symbol(podium:httpincoming:development)]: false,
  [Symbol(podium:httpincoming:response)]: {},
  [Symbol(podium:httpincoming:request)]: {},
  [Symbol(podium:httpincoming:context)]: {},
  [Symbol(podium:httpincoming:params)]: {},
  [Symbol(podium:httpincoming:proxy)]: false,
  [Symbol(podium:httpincoming:name)]: '',
  [Symbol(podium:httpincoming:view)]: {},
  [Symbol(podium:httpincoming:url)]: {},
  [Symbol(podium:httpincoming:css)]: [],
  [Symbol(podium:httpincoming:js)]: []
}
```

Now the following will be printed:

```sh
{
  development: false,
  response: {},
  request: {},
  context: {},
  params: {},
  proxy: false,
  name: '',
  view: {},
  url: {},
  css: [],
  js: []
}
```

Co-authored-by: Trygve Lie <trygve.lie@finn.no>
* Only support node 12 and 14.

Co-authored-by: Trygve Lie <trygve.lie@finn.no>
Copy link

🎉 This PR is included in version 5.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants