Skip to content

Commit df08df9

Browse files
authored
feat: more conditions (#6)
* fix: add changeset and regenerate conditions in readme * docs: update readme to include links to node documentation about conditions
1 parent 9f517ff commit df08df9

File tree

9 files changed

+71
-26
lines changed

9 files changed

+71
-26
lines changed

.changeset/beige-clouds-deny.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'node-conditions': minor
3+
---
4+
5+
add imba and bun conditions

.prettierrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"singleQuote": true,
44
"trailingComma": "none",
55
"printWidth": 100,
6+
"endOfLine": "lf",
67
"overrides": [
78
{
89
"files": ["**/CHANGELOG.md", "**/pnpm-lock.yaml"],

packages/node-conditions/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
node conditions as boolean flags.
44

5+
You can read more about node conditions in the node documentation about [conditional exports](https://nodejs.org/api/packages.html#conditional-exports), [resolving user conditions](https://nodejs.org/api/packages.html#resolving-user-conditions) and [community conditions](https://nodejs.org/api/packages.html#community-conditions-definitions).
6+
57
## usage
68

79
### esm
@@ -52,10 +54,12 @@ const isBrowser = require('node-conditions/browser');
5254
- NODE
5355
- NODE_ADDONS
5456
- DENO
57+
- BUN
5558
- DEVELOPMENT
5659
- TEST
5760
- PRODUCTION
5861
- ASTRO
62+
- IMBA
5963
- SOLID
6064
- SVELTE
6165
<!-- /generated -->

packages/node-conditions/conditions.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export const conditions = [
55
'node',
66
'node-addons',
77
'deno',
8+
'bun',
89

910
// modes
1011
'development',
@@ -13,6 +14,7 @@ export const conditions = [
1314

1415
//frameworks
1516
'astro',
17+
'imba',
1618
'solid',
1719
'svelte'
1820
];

packages/node-conditions/index.cjs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@ module.exports.BROWSER = require('node-conditions/browser');
22
module.exports.NODE = require('node-conditions/node');
33
module.exports.NODE_ADDONS = require('node-conditions/node-addons');
44
module.exports.DENO = require('node-conditions/deno');
5+
module.exports.BUN = require('node-conditions/bun');
56
module.exports.DEVELOPMENT = require('node-conditions/development');
67
module.exports.TEST = require('node-conditions/test');
78
module.exports.PRODUCTION = require('node-conditions/production');
89
module.exports.ASTRO = require('node-conditions/astro');
10+
module.exports.IMBA = require('node-conditions/imba');
911
module.exports.SOLID = require('node-conditions/solid');
1012
module.exports.SVELTE = require('node-conditions/svelte');

packages/node-conditions/index.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@ export const BROWSER: boolean;
22
export const NODE: boolean;
33
export const NODE_ADDONS: boolean;
44
export const DENO: boolean;
5+
export const BUN: boolean;
56
export const DEVELOPMENT: boolean;
67
export const TEST: boolean;
78
export const PRODUCTION: boolean;
89
export const ASTRO: boolean;
10+
export const IMBA: boolean;
911
export const SOLID: boolean;
1012
export const SVELTE: boolean;

packages/node-conditions/index.mjs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@ export { default as BROWSER } from 'node-conditions/browser';
22
export { default as NODE } from 'node-conditions/node';
33
export { default as NODE_ADDONS } from 'node-conditions/node-addons';
44
export { default as DENO } from 'node-conditions/deno';
5+
export { default as BUN } from 'node-conditions/bun';
56
export { default as DEVELOPMENT } from 'node-conditions/development';
67
export { default as TEST } from 'node-conditions/test';
78
export { default as PRODUCTION } from 'node-conditions/production';
89
export { default as ASTRO } from 'node-conditions/astro';
10+
export { default as IMBA } from 'node-conditions/imba';
911
export { default as SOLID } from 'node-conditions/solid';
1012
export { default as SVELTE } from 'node-conditions/svelte';

packages/node-conditions/package.json

Lines changed: 44 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -35,23 +35,33 @@
3535
"import": "./index.mjs",
3636
"require": "./index.cjs"
3737
},
38-
"./astro": {
38+
"./browser": {
3939
"import": {
40-
"astro": "./true.mjs",
40+
"browser": "./true.mjs",
4141
"default": "./false.mjs"
4242
},
4343
"require": {
44-
"astro": "./true.cjs",
44+
"browser": "./true.cjs",
4545
"default": "./false.cjs"
4646
}
4747
},
48-
"./browser": {
48+
"./node": {
4949
"import": {
50-
"browser": "./true.mjs",
50+
"node": "./true.mjs",
5151
"default": "./false.mjs"
5252
},
5353
"require": {
54-
"browser": "./true.cjs",
54+
"node": "./true.cjs",
55+
"default": "./false.cjs"
56+
}
57+
},
58+
"./node-addons": {
59+
"import": {
60+
"node-addons": "./true.mjs",
61+
"default": "./false.mjs"
62+
},
63+
"require": {
64+
"node-addons": "./true.cjs",
5565
"default": "./false.cjs"
5666
}
5767
},
@@ -65,33 +75,33 @@
6575
"default": "./false.cjs"
6676
}
6777
},
68-
"./development": {
78+
"./bun": {
6979
"import": {
70-
"development": "./true.mjs",
80+
"bun": "./true.mjs",
7181
"default": "./false.mjs"
7282
},
7383
"require": {
74-
"development": "./true.cjs",
84+
"bun": "./true.cjs",
7585
"default": "./false.cjs"
7686
}
7787
},
78-
"./node": {
88+
"./development": {
7989
"import": {
80-
"node": "./true.mjs",
90+
"development": "./true.mjs",
8191
"default": "./false.mjs"
8292
},
8393
"require": {
84-
"node": "./true.cjs",
94+
"development": "./true.cjs",
8595
"default": "./false.cjs"
8696
}
8797
},
88-
"./node-addons": {
98+
"./test": {
8999
"import": {
90-
"node-addons": "./true.mjs",
100+
"test": "./true.mjs",
91101
"default": "./false.mjs"
92102
},
93103
"require": {
94-
"node-addons": "./true.cjs",
104+
"test": "./true.cjs",
95105
"default": "./false.cjs"
96106
}
97107
},
@@ -105,33 +115,43 @@
105115
"default": "./false.cjs"
106116
}
107117
},
108-
"./solid": {
118+
"./astro": {
109119
"import": {
110-
"solid": "./true.mjs",
120+
"astro": "./true.mjs",
111121
"default": "./false.mjs"
112122
},
113123
"require": {
114-
"solid": "./true.cjs",
124+
"astro": "./true.cjs",
115125
"default": "./false.cjs"
116126
}
117127
},
118-
"./svelte": {
128+
"./imba": {
119129
"import": {
120-
"svelte": "./true.mjs",
130+
"imba": "./true.mjs",
121131
"default": "./false.mjs"
122132
},
123133
"require": {
124-
"svelte": "./true.cjs",
134+
"imba": "./true.cjs",
125135
"default": "./false.cjs"
126136
}
127137
},
128-
"./test": {
138+
"./solid": {
129139
"import": {
130-
"test": "./true.mjs",
140+
"solid": "./true.mjs",
131141
"default": "./false.mjs"
132142
},
133143
"require": {
134-
"test": "./true.cjs",
144+
"solid": "./true.cjs",
145+
"default": "./false.cjs"
146+
}
147+
},
148+
"./svelte": {
149+
"import": {
150+
"svelte": "./true.mjs",
151+
"default": "./false.mjs"
152+
},
153+
"require": {
154+
"svelte": "./true.cjs",
135155
"default": "./false.cjs"
136156
}
137157
}

scripts/generate.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,13 @@ const pkgPath = fileURLToPath(new URL('../packages/node-conditions/package.json'
1010
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
1111

1212
pkg.exports = {
13-
...pkg.exports,
13+
// index exports
14+
'.': {
15+
types: './index.d.ts',
16+
import: './index.mjs',
17+
require: './index.cjs'
18+
},
19+
// condition exports
1420
...conditions.reduce((exports, condition) => {
1521
exports[`./${condition}`] = {
1622
import: {
@@ -48,9 +54,10 @@ fs.writeFileSync(typesPath, types, 'utf-8');
4854
const readmePath = fileURLToPath(new URL('../packages/node-conditions/README.md', import.meta.url));
4955
let readme = fs.readFileSync(readmePath, 'utf-8');
5056
readme = readme.replace(
51-
/\\n<!-- generated -->[\s\S]*<!-- \/generated -->/m,
57+
/\n<!-- generated -->[\s\S]*<!-- \/generated -->\n/m,
5258
`
5359
<!-- generated -->
60+
5461
## available conditions
5562
5663
${conditions.map((c) => `- ${name(c)}`).join('\n')}

0 commit comments

Comments
 (0)