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

[Feature]: Add ability to pass config to presets #4200

Closed
bfricka opened this issue Aug 28, 2023 · 2 comments
Closed

[Feature]: Add ability to pass config to presets #4200

bfricka opened this issue Aug 28, 2023 · 2 comments
Labels

Comments

@bfricka
Copy link

bfricka commented Aug 28, 2023

🚀 Feature Proposal

With v29 deprecating ts-jest in globals, it's now nearly impossible to both use a preset and pass options. Presets are just recipes and extending them should be trivial. To pass options, we currently would have to copy the recipe (which mostly defeats the purpose), and then add our custom options, or do some crazy remapping of the preset values, adding our config that way.

It's actually pretty surprising to me that this was released with no way to extend presets, and the docs have both a page for Presets and a page for Options, and the two cannot be made to work together.

This could be accommodated by add a withOptions function on each preset that's basically a factory for creating the preset with the options merged in.

const { jsWithTs } = require('ts-jest/presets')

///
{
  transform: jsWithTs.withOptions(opts).transform,
}

If there's a better way, I'd love to hear it. Thank you.

Motivation

My motivation is to make it trivial to add options to presets, thereby making them useful again in cases where a tsconfig path or some other option needs to be adjusted.

Example

No response

@ahnpnl
Copy link
Collaborator

ahnpnl commented Jun 17, 2024

You can use https://github.com/kulshekhar/ts-jest/blob/main/src/presets/create-jest-preset.ts. For example

const { createJestPreset } = require('ts-jest')

///
{
  transform: createJestPreset().transform,
}

Documentation doesn't mention about it so I think we can update documentation to reflect this request.

@ahnpnl
Copy link
Collaborator

ahnpnl commented Jul 10, 2024

This feature is now available under https://kulshekhar.github.io/ts-jest/docs/getting-started/presets#advanced

The documentation is not yet nice so any suggestions are welcome. Thanks :)

@ahnpnl ahnpnl closed this as completed Jul 10, 2024
Vylpes pushed a commit to Vylpes/random-bunny that referenced this issue Aug 7, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [ts-jest](https://kulshekhar.github.io/ts-jest) ([source](https://github.com/kulshekhar/ts-jest)) | devDependencies | minor | [`29.1.2` -> `29.2.3`](https://renovatebot.com/diffs/npm/ts-jest/29.1.2/29.2.3) |

---

### Release Notes

<details>
<summary>kulshekhar/ts-jest (ts-jest)</summary>

### [`v29.2.3`](https://github.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2923-2024-07-18)

[Compare Source](kulshekhar/ts-jest@v29.2.2...v29.2.3)

### [`v29.2.2`](https://github.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2922-2024-07-10)

[Compare Source](kulshekhar/ts-jest@v29.2.1...v29.2.2)

### [`v29.2.1`](https://github.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2921-2024-07-10)

[Compare Source](kulshekhar/ts-jest@v29.2.0...v29.2.1)

### [`v29.2.0`](https://github.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2920-2024-07-08)

[Compare Source](kulshekhar/ts-jest@v29.1.5...v29.2.0)

##### Bug Fixes

-   fix: don't show warning message with Node16/NodeNext ([99c4f49](kulshekhar/ts-jest@99c4f49)), closes [#&#8203;4266](kulshekhar/ts-jest#4266)

##### Features

-   feat(cli): allow migrating cjs `presets` to `transform` config ([22fb027](kulshekhar/ts-jest@22fb027))
-   feat(presets): add util functions to create ESM presets ([06f78ed](kulshekhar/ts-jest@06f78ed)), close [#&#8203;4200](kulshekhar/ts-jest#4200)
-   feat(presets): add util functions to create CJS presets ([f9cc3c0](kulshekhar/ts-jest@f9cc3c0)), close [#&#8203;4200](kulshekhar/ts-jest#4200)

##### Code refactoring

-   refactor: replace lodash deps with native js implementation ([40f1708](kulshekhar/ts-jest@40f1708))
-   refactor: use `TsJestTransformerOptions` type everywhere possibly ([7d001be](kulshekhar/ts-jest@7d001be))
-   refactor(cli): use new preset util functions to initialize test config ([c2b56ca](kulshekhar/ts-jest@c2b56ca))
-   refactor(presets): use create preset util functions for cjs presets ([922d6d0](kulshekhar/ts-jest@922d6d0))
-   test: switch `react-app` to use Vite ([827c8ad](kulshekhar/ts-jest@827c8ad))

### [`v29.1.5`](https://github.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2915-2024-06-16)

[Compare Source](kulshekhar/ts-jest@v29.1.4...v29.1.5)

### [`v29.1.4`](https://github.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2914-2024-05-28)

[Compare Source](kulshekhar/ts-jest@v29.1.3...v29.1.4)

### [`v29.1.3`](https://github.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2913-2024-05-21)

[Compare Source](kulshekhar/ts-jest@v29.1.2...v29.1.3)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy40MzEuNCIsInRhcmdldEJyYW5jaCI6ImRldmVsb3AifQ==-->

Reviewed-on: https://git.vylpes.xyz/RabbitLabs/random-bunny/pulls/178
Reviewed-by: Vylpes <ethan@vylpes.com>
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
Vylpes pushed a commit to Vylpes/card-drop that referenced this issue Aug 12, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [ts-jest](https://kulshekhar.github.io/ts-jest) ([source](https://github.com/kulshekhar/ts-jest)) | dependencies | minor | [`29.1.5` -> `29.2.4`](https://renovatebot.com/diffs/npm/ts-jest/29.1.5/29.2.4) |

---

### Release Notes

<details>
<summary>kulshekhar/ts-jest (ts-jest)</summary>

### [`v29.2.4`](https://github.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2924-2024-08-01)

[Compare Source](kulshekhar/ts-jest@v29.2.3...v29.2.4)

### [`v29.2.3`](https://github.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2923-2024-07-18)

[Compare Source](kulshekhar/ts-jest@v29.2.2...v29.2.3)

### [`v29.2.2`](https://github.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2922-2024-07-10)

[Compare Source](kulshekhar/ts-jest@v29.2.1...v29.2.2)

### [`v29.2.1`](https://github.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2921-2024-07-10)

[Compare Source](kulshekhar/ts-jest@v29.2.0...v29.2.1)

### [`v29.2.0`](https://github.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2920-2024-07-08)

[Compare Source](kulshekhar/ts-jest@v29.1.5...v29.2.0)

##### Bug Fixes

-   fix: don't show warning message with Node16/NodeNext ([99c4f49](kulshekhar/ts-jest@99c4f49)), closes [#&#8203;4266](kulshekhar/ts-jest#4266)

##### Features

-   feat(cli): allow migrating cjs `presets` to `transform` config ([22fb027](kulshekhar/ts-jest@22fb027))
-   feat(presets): add util functions to create ESM presets ([06f78ed](kulshekhar/ts-jest@06f78ed)), close [#&#8203;4200](kulshekhar/ts-jest#4200)
-   feat(presets): add util functions to create CJS presets ([f9cc3c0](kulshekhar/ts-jest@f9cc3c0)), close [#&#8203;4200](kulshekhar/ts-jest#4200)

##### Code refactoring

-   refactor: replace lodash deps with native js implementation ([40f1708](kulshekhar/ts-jest@40f1708))
-   refactor: use `TsJestTransformerOptions` type everywhere possibly ([7d001be](kulshekhar/ts-jest@7d001be))
-   refactor(cli): use new preset util functions to initialize test config ([c2b56ca](kulshekhar/ts-jest@c2b56ca))
-   refactor(presets): use create preset util functions for cjs presets ([922d6d0](kulshekhar/ts-jest@922d6d0))
-   test: switch `react-app` to use Vite ([827c8ad](kulshekhar/ts-jest@827c8ad))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MzEuNCIsInVwZGF0ZWRJblZlciI6IjM3LjQzMS40IiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->

Reviewed-on: https://git.vylpes.xyz/External/card-drop/pulls/336
Reviewed-by: Vylpes <ethan@vylpes.com>
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants