Skip to content

Support custom user conditions in options #383

@ernestostifano

Description

@ernestostifano

TL;DR

It would be awesome if jiti could support custom user conditions in its options.

Something like:

conditions

  • Type: Array
  • Default: -
  • Environment variable: JITI_CONDITIONS

Takes a list of additional conditions to be considered during resolving.

const jiti = createJiti(import.meta.url, { conditions: ['development'] });

Motivations

Setting --conditions in Node.js is not easy when third-party tools are involved and/or when we don't control how Node.js is invoked. See point 5 at "The Problem - TL;DR" in this Node.js Proposal.

I really think jiti could make a huge difference here while the ecosystem is transitioning into a more native solution. It could allow achieving 100% ESM/TypeScript projects in a clean way, from configuration files to implementation code.

To make this new feature work with ESM, we will need to reconsider #34, so to make options effective when using ESM loader register (e.g. development tools' ESM configuration files).

import "jiti/register";

.jitirc

JITI_CONDITIONS=['development']

I know the target is to go fully native (the above Node.js proposal is all about it), but there is still a lot of good jiti can do.

I would be happy to help implementing this! Hope to get some feedback.

Additional information

  • Would you be willing to help implement this feature?

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions