react-native-builder-bob 0.38.4 → 0.39.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/babel-config.js +13 -25
- package/babel-preset.js +1 -1
- package/lib/__tests__/babel.test.js +1 -1
- package/lib/__tests__/babel.test.js.map +1 -1
- package/lib/__tests__/init.test.js +1 -1
- package/lib/__tests__/init.test.js.map +1 -1
- package/lib/build.js +25 -46
- package/lib/build.js.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/init.js +4 -9
- package/lib/init.js.map +1 -1
- package/lib/targets/codegen/index.js +4 -11
- package/lib/targets/codegen/index.js.map +1 -1
- package/lib/targets/codegen/patches/patchCodegenAndroidPackage.js +2 -1
- package/lib/targets/codegen/patches/patchCodegenAndroidPackage.js.map +1 -1
- package/lib/targets/codegen/patches/patchCodegenAndroidPackage.test.js +4 -4
- package/lib/targets/codegen/patches/patchCodegenAndroidPackage.test.js.map +1 -1
- package/lib/targets/codegen/patches/removeCodegenAppLevelCode.test.js +3 -3
- package/lib/targets/codegen/patches/removeCodegenAppLevelCode.test.js.map +1 -1
- package/lib/targets/custom.js +4 -12
- package/lib/targets/custom.js.map +1 -1
- package/lib/targets/typescript.js +2 -2
- package/lib/targets/typescript.js.map +1 -1
- package/lib/utils/loadConfig.js +47 -12
- package/lib/utils/loadConfig.js.map +1 -1
- package/lib/utils/workerize.js +101 -0
- package/lib/utils/workerize.js.map +1 -0
- package/metro-config.js +1 -1
- package/package.json +3 -4
package/babel-config.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
/* eslint-disable import/no-commonjs */
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-require-imports, import-x/no-commonjs, no-undef */
|
|
2
2
|
|
|
3
3
|
const path = require('path');
|
|
4
|
-
const {
|
|
5
|
-
const { lstatSync } = require('fs');
|
|
6
|
-
const { name } = require('./package.json');
|
|
4
|
+
const { loadConfig } = require('./lib/utils/loadConfig');
|
|
7
5
|
|
|
8
6
|
/**
|
|
9
7
|
* Get Babel configuration for the example project.
|
|
@@ -17,28 +15,18 @@ const { name } = require('./package.json');
|
|
|
17
15
|
* @returns {import('@babel/core').TransformOptions} Babel configuration
|
|
18
16
|
*/
|
|
19
17
|
const getConfig = (defaultConfig, { root, pkg }) => {
|
|
20
|
-
const
|
|
21
|
-
stopDir: root,
|
|
22
|
-
searchPlaces: ['package.json', 'bob.config.cjs', 'bob.config.js'],
|
|
23
|
-
});
|
|
18
|
+
const result = loadConfig(root);
|
|
24
19
|
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
if (result == null) {
|
|
21
|
+
throw new Error(`Couldn't find a valid configuration at ${root}.`);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const { source } = result.config;
|
|
27
25
|
|
|
28
|
-
if (
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}).isFile()
|
|
33
|
-
) {
|
|
34
|
-
throw new Error(
|
|
35
|
-
"Found a 'bob.config.mjs' file. However, ESM syntax is currently not supported for the Babel configuration."
|
|
36
|
-
);
|
|
37
|
-
} else {
|
|
38
|
-
throw new Error(
|
|
39
|
-
"Couldn't determine the source directory. Does your config specify a 'source' field?"
|
|
40
|
-
);
|
|
41
|
-
}
|
|
26
|
+
if (source == null) {
|
|
27
|
+
throw new Error(
|
|
28
|
+
"Couldn't determine the source directory. Does your config specify a 'source' field?"
|
|
29
|
+
);
|
|
42
30
|
}
|
|
43
31
|
|
|
44
32
|
return {
|
|
@@ -60,7 +48,7 @@ const getConfig = (defaultConfig, { root, pkg }) => {
|
|
|
60
48
|
],
|
|
61
49
|
},
|
|
62
50
|
{
|
|
63
|
-
include: path.join(root,
|
|
51
|
+
include: path.join(root, source),
|
|
64
52
|
presets: [
|
|
65
53
|
[
|
|
66
54
|
require.resolve('./babel-preset'),
|
package/babel-preset.js
CHANGED
|
@@ -5,7 +5,7 @@ var _core = require("@babel/core");
|
|
|
5
5
|
var _nodeFs = _interopRequireDefault(require("node:fs"));
|
|
6
6
|
var _nodePath = _interopRequireDefault(require("node:path"));
|
|
7
7
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
|
-
_globals.
|
|
8
|
+
_globals.test.each(['imports', 'exports'])(`adds extension to %s`, async name => {
|
|
9
9
|
const filepath = _nodePath.default.resolve(__dirname, `../__fixtures__/project/code/$${name}-input.ts`);
|
|
10
10
|
const result = await (0, _core.transformFileAsync)(filepath, {
|
|
11
11
|
caller: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"babel.test.js","names":["_globals","require","_core","_nodeFs","_interopRequireDefault","_nodePath","e","__esModule","default","
|
|
1
|
+
{"version":3,"file":"babel.test.js","names":["_globals","require","_core","_nodeFs","_interopRequireDefault","_nodePath","e","__esModule","default","test","each","name","filepath","path","resolve","__dirname","result","transformFileAsync","caller","supportsStaticESM","rewriteImportExtensions","jsxRuntime","codegenEnabled","configFile","babelrc","plugins","extension","expected","fs","promises","readFile","expect","code","toEqual","trim"],"sources":["../../src/__tests__/babel.test.ts"],"sourcesContent":["import { expect, test } from '@jest/globals';\nimport { transformFileAsync } from '@babel/core';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\ntest.each(['imports', 'exports'])(`adds extension to %s`, async (name) => {\n const filepath = path.resolve(\n __dirname,\n `../__fixtures__/project/code/$${name}-input.ts`\n );\n\n const result = await transformFileAsync(filepath, {\n caller: {\n name: 'test',\n supportsStaticESM: false,\n rewriteImportExtensions: true,\n jsxRuntime: 'automatic',\n codegenEnabled: true,\n },\n configFile: false,\n babelrc: false,\n plugins: [\n '@babel/plugin-syntax-typescript',\n [require.resolve('../babel.ts'), { extension: 'mjs' }],\n ],\n });\n\n const expected = await fs.promises.readFile(\n path.resolve(__dirname, `../__fixtures__/project/code/$${name}-output.ts`),\n 'utf8'\n );\n\n expect(result?.code).toEqual(expected.trim());\n});\n"],"mappings":";;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,SAAA,GAAAD,sBAAA,CAAAH,OAAA;AAA6B,SAAAG,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE7BG,aAAI,CAACC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,sBAAsB,EAAE,MAAOC,IAAI,IAAK;EACxE,MAAMC,QAAQ,GAAGC,iBAAI,CAACC,OAAO,CAC3BC,SAAS,EACT,iCAAiCJ,IAAI,WACvC,CAAC;EAED,MAAMK,MAAM,GAAG,MAAM,IAAAC,wBAAkB,EAACL,QAAQ,EAAE;IAChDM,MAAM,EAAE;MACNP,IAAI,EAAE,MAAM;MACZQ,iBAAiB,EAAE,KAAK;MACxBC,uBAAuB,EAAE,IAAI;MAC7BC,UAAU,EAAE,WAAW;MACvBC,cAAc,EAAE;IAClB,CAAC;IACDC,UAAU,EAAE,KAAK;IACjBC,OAAO,EAAE,KAAK;IACdC,OAAO,EAAE,CACP,iCAAiC,EACjC,CAACxB,OAAO,CAACa,OAAO,CAAC,aAAa,CAAC,EAAE;MAAEY,SAAS,EAAE;IAAM,CAAC,CAAC;EAE1D,CAAC,CAAC;EAEF,MAAMC,QAAQ,GAAG,MAAMC,eAAE,CAACC,QAAQ,CAACC,QAAQ,CACzCjB,iBAAI,CAACC,OAAO,CAACC,SAAS,EAAE,iCAAiCJ,IAAI,YAAY,CAAC,EAC1E,MACF,CAAC;EAED,IAAAoB,eAAM,EAACf,MAAM,EAAEgB,IAAI,CAAC,CAACC,OAAO,CAACN,QAAQ,CAACO,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC","ignoreList":[]}
|
|
@@ -52,7 +52,7 @@ const waitFor = async callback => {
|
|
|
52
52
|
_mockFs.default.restore();
|
|
53
53
|
_globals.jest.restoreAllMocks();
|
|
54
54
|
});
|
|
55
|
-
(0, _globals.
|
|
55
|
+
(0, _globals.test)('initializes the configuration', async () => {
|
|
56
56
|
_globals.jest.spyOn(process.stdout, 'write').mockImplementation(() => true);
|
|
57
57
|
process.chdir(root);
|
|
58
58
|
const run = async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.test.js","names":["_globals","require","_fsExtra","_mockFs","_interopRequireDefault","_mockStdin","_path","_init","e","__esModule","default","jest","mock","name","version","io","root","enter","waitFor","callback","interval","timeout","Promise","resolve","reject","intervalId","setInterval","clearInterval","undefined","error","beforeEach","stdin","mockFs","JSON","stringify","afterEach","restore","restoreAllMocks","
|
|
1
|
+
{"version":3,"file":"init.test.js","names":["_globals","require","_fsExtra","_mockFs","_interopRequireDefault","_mockStdin","_path","_init","e","__esModule","default","jest","mock","name","version","io","root","enter","waitFor","callback","interval","timeout","Promise","resolve","reject","intervalId","setInterval","clearInterval","undefined","error","beforeEach","stdin","mockFs","JSON","stringify","afterEach","restore","restoreAllMocks","test","spyOn","process","stdout","mockImplementation","chdir","run","lastCall","write","Error","String","send","expect","toHaveBeenLastCalledWith","stringMatching","all","init","readFile","join","toMatchSnapshot"],"sources":["../../src/__tests__/init.test.ts"],"sourcesContent":["import { afterEach, beforeEach, expect, test, jest } from '@jest/globals';\nimport { readFile } from 'fs-extra';\nimport mockFs from 'mock-fs';\nimport { stdin } from 'mock-stdin';\nimport { join } from 'path';\nimport { init } from '../init';\n\njest.mock('../../package.json', () => ({\n name: 'react-native-builder-bob',\n version: '0.5.0',\n}));\n\nlet io: ReturnType<typeof stdin> | undefined;\n\nconst root = '/path/to/library';\n\nconst enter = '\\x0D';\n\nconst waitFor = async (callback: () => void) => {\n const interval = 10;\n\n let timeout = 50;\n\n return new Promise((resolve, reject) => {\n const intervalId = setInterval(() => {\n try {\n callback();\n clearInterval(intervalId);\n resolve(undefined);\n } catch (error) {\n if (timeout <= 0) {\n clearInterval(intervalId);\n reject(error);\n }\n\n timeout -= interval;\n }\n }, interval);\n });\n};\n\nbeforeEach(() => {\n io = stdin();\n\n mockFs({\n [root]: {\n 'package.json': JSON.stringify({\n name: 'library',\n version: '1.0.0',\n }),\n 'src': {\n 'index.ts': \"export default 'hello world';\",\n },\n },\n });\n});\n\nafterEach(() => {\n io?.restore();\n mockFs.restore();\n jest.restoreAllMocks();\n});\n\ntest('initializes the configuration', async () => {\n jest.spyOn(process.stdout, 'write').mockImplementation(() => true);\n\n process.chdir(root);\n\n const run = async () => {\n await waitFor(() => {\n const lastCall = (process.stdout.write as jest.Mock).mock.lastCall;\n\n if (lastCall == null) {\n throw new Error('No output');\n }\n\n if (/The working directory is not clean/.test(String(lastCall[0]))) {\n io?.send('y');\n }\n });\n\n await waitFor(() =>\n expect(process.stdout.write).toHaveBeenLastCalledWith(\n expect.stringMatching('Where are your source files?')\n )\n );\n\n io?.send(enter);\n\n await waitFor(() =>\n expect(process.stdout.write).toHaveBeenLastCalledWith(\n expect.stringMatching('Where do you want to generate the output files?')\n )\n );\n\n io?.send(enter);\n\n await waitFor(() =>\n expect(process.stdout.write).toHaveBeenLastCalledWith(\n expect.stringMatching('Which targets do you want to build?')\n )\n );\n\n io?.send(enter);\n\n await waitFor(() =>\n expect(process.stdout.write).toHaveBeenLastCalledWith(\n expect.stringMatching(\n \"You have enabled 'typescript' compilation, but we couldn't find a 'tsconfig.json' in project root\"\n )\n )\n );\n\n io?.send(enter);\n };\n\n await Promise.all([run(), init()]);\n\n expect(process.stdout.write).toHaveBeenLastCalledWith(\n expect.stringMatching('configured successfully!')\n );\n\n expect(await readFile(join(root, 'package.json'), 'utf8')).toMatchSnapshot();\n\n expect(await readFile(join(root, 'tsconfig.json'), 'utf8')).toMatchSnapshot();\n});\n"],"mappings":"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","ignoreList":[]}
|
package/lib/build.js
CHANGED
|
@@ -5,16 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.args = void 0;
|
|
7
7
|
exports.build = build;
|
|
8
|
-
var _path = _interopRequireDefault(require("path"));
|
|
9
|
-
var _kleur = _interopRequireDefault(require("kleur"));
|
|
10
|
-
var logger = _interopRequireWildcard(require("./utils/logger"));
|
|
11
|
-
var _commonjs = _interopRequireDefault(require("./targets/commonjs"));
|
|
12
|
-
var _module = _interopRequireDefault(require("./targets/module"));
|
|
13
|
-
var _typescript = _interopRequireDefault(require("./targets/typescript"));
|
|
14
|
-
var _codegen = _interopRequireDefault(require("./targets/codegen"));
|
|
15
|
-
var _custom = _interopRequireDefault(require("./targets/custom"));
|
|
16
8
|
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
9
|
+
var _kleur = _interopRequireDefault(require("kleur"));
|
|
10
|
+
var _path = _interopRequireDefault(require("path"));
|
|
17
11
|
var _loadConfig = require("./utils/loadConfig");
|
|
12
|
+
var logger = _interopRequireWildcard(require("./utils/logger"));
|
|
13
|
+
var _workerize = require("./utils/workerize");
|
|
18
14
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
19
15
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -31,25 +27,21 @@ async function build(argv) {
|
|
|
31
27
|
if (!(await _fsExtra.default.pathExists(projectPackagePath))) {
|
|
32
28
|
throw new Error(`Couldn't find a 'package.json' file in '${root}'. Are you in a project folder?`);
|
|
33
29
|
}
|
|
34
|
-
const result =
|
|
30
|
+
const result = (0, _loadConfig.loadConfig)(root);
|
|
35
31
|
if (!result?.config) {
|
|
36
|
-
|
|
37
|
-
process.exit(1);
|
|
32
|
+
throw new Error(`No configuration found. Run '${argv.$0} init' to create one automatically.`);
|
|
38
33
|
}
|
|
39
34
|
const options = result.config;
|
|
40
35
|
if (!options.targets?.length) {
|
|
41
|
-
|
|
42
|
-
process.exit(1);
|
|
36
|
+
throw new Error(`No 'targets' found in the configuration in '${_path.default.relative(root, result.filepath)}'.`);
|
|
43
37
|
}
|
|
44
38
|
const source = options.source;
|
|
45
39
|
if (!source) {
|
|
46
|
-
|
|
47
|
-
process.exit(1);
|
|
40
|
+
throw new Error(`No 'source' option found in the configuration in '${_path.default.relative(root, result.filepath)}'.`);
|
|
48
41
|
}
|
|
49
42
|
const output = options.output;
|
|
50
43
|
if (!output) {
|
|
51
|
-
|
|
52
|
-
process.exit(1);
|
|
44
|
+
throw new Error(`No 'output' option found in the configuration in '${_path.default.relative(root, result.filepath)}'.`);
|
|
53
45
|
}
|
|
54
46
|
const exclude = options.exclude ?? '**/{__tests__,__fixtures__,__mocks__}/**';
|
|
55
47
|
const commonjs = options.targets?.some(t => Array.isArray(t) ? t[0] === 'commonjs' : t === 'commonjs');
|
|
@@ -59,7 +51,7 @@ async function build(argv) {
|
|
|
59
51
|
module
|
|
60
52
|
};
|
|
61
53
|
if (argv.target != null) {
|
|
62
|
-
buildTarget({
|
|
54
|
+
await buildTarget({
|
|
63
55
|
root,
|
|
64
56
|
target: argv.target,
|
|
65
57
|
source,
|
|
@@ -69,17 +61,15 @@ async function build(argv) {
|
|
|
69
61
|
variants
|
|
70
62
|
});
|
|
71
63
|
} else {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
});
|
|
82
|
-
}
|
|
64
|
+
await Promise.all(options.targets?.map(target => buildTarget({
|
|
65
|
+
root,
|
|
66
|
+
target,
|
|
67
|
+
source,
|
|
68
|
+
output,
|
|
69
|
+
exclude,
|
|
70
|
+
options,
|
|
71
|
+
variants
|
|
72
|
+
})));
|
|
83
73
|
}
|
|
84
74
|
}
|
|
85
75
|
async function buildTarget({
|
|
@@ -96,21 +86,11 @@ async function buildTarget({
|
|
|
96
86
|
const report = logger.grouped(targetName);
|
|
97
87
|
switch (targetName) {
|
|
98
88
|
case 'commonjs':
|
|
99
|
-
await (0, _commonjs.default)({
|
|
100
|
-
root,
|
|
101
|
-
source: _path.default.resolve(root, source),
|
|
102
|
-
output: _path.default.resolve(root, output, 'commonjs'),
|
|
103
|
-
exclude,
|
|
104
|
-
options: targetOptions,
|
|
105
|
-
variants,
|
|
106
|
-
report
|
|
107
|
-
});
|
|
108
|
-
break;
|
|
109
89
|
case 'module':
|
|
110
|
-
await (0,
|
|
90
|
+
await (0, _workerize.run)(targetName, {
|
|
111
91
|
root,
|
|
112
92
|
source: _path.default.resolve(root, source),
|
|
113
|
-
output: _path.default.resolve(root, output,
|
|
93
|
+
output: _path.default.resolve(root, output, targetName),
|
|
114
94
|
exclude,
|
|
115
95
|
options: targetOptions,
|
|
116
96
|
variants,
|
|
@@ -128,7 +108,7 @@ async function buildTarget({
|
|
|
128
108
|
}
|
|
129
109
|
return false;
|
|
130
110
|
}) ?? false;
|
|
131
|
-
await (0,
|
|
111
|
+
await (0, _workerize.run)('typescript', {
|
|
132
112
|
root,
|
|
133
113
|
source: _path.default.resolve(root, source),
|
|
134
114
|
output: _path.default.resolve(root, output, 'typescript'),
|
|
@@ -140,7 +120,7 @@ async function buildTarget({
|
|
|
140
120
|
}
|
|
141
121
|
break;
|
|
142
122
|
case 'codegen':
|
|
143
|
-
await (0,
|
|
123
|
+
await (0, _workerize.run)('codegen', {
|
|
144
124
|
root,
|
|
145
125
|
source: _path.default.resolve(root, source),
|
|
146
126
|
output: _path.default.resolve(root, output, 'typescript'),
|
|
@@ -148,7 +128,7 @@ async function buildTarget({
|
|
|
148
128
|
});
|
|
149
129
|
break;
|
|
150
130
|
case 'custom':
|
|
151
|
-
await (0,
|
|
131
|
+
await (0, _workerize.run)('custom', {
|
|
152
132
|
options: targetOptions,
|
|
153
133
|
source: _path.default.resolve(root, source),
|
|
154
134
|
report,
|
|
@@ -156,8 +136,7 @@ async function buildTarget({
|
|
|
156
136
|
});
|
|
157
137
|
break;
|
|
158
138
|
default:
|
|
159
|
-
|
|
160
|
-
process.exit(1);
|
|
139
|
+
throw new Error(`Invalid target ${_kleur.default.blue(targetName)}.`);
|
|
161
140
|
}
|
|
162
141
|
}
|
|
163
142
|
//# sourceMappingURL=build.js.map
|
package/lib/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","names":["_path","_interopRequireDefault","require","_kleur","logger","_interopRequireWildcard","_commonjs","_module","_typescript","_codegen","_custom","_fsExtra","_loadConfig","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","args","exports","target","type","description","choices","build","argv","root","process","cwd","projectPackagePath","path","resolve","fs","pathExists","Error","result","loadConfig","config","error","$0","exit","options","targets","length","relative","filepath","source","output","exclude","commonjs","some","Array","isArray","module","variants","buildTarget","targetName","targetOptions","undefined","report","grouped","buildCommonJS","buildModule","esm","name","buildTypescript","buildCodegen","customTarget","kleur","blue"],"sources":["../src/build.ts"],"sourcesContent":["import path from 'path';\nimport kleur from 'kleur';\nimport * as logger from './utils/logger';\nimport buildCommonJS from './targets/commonjs';\nimport buildModule from './targets/module';\nimport buildTypescript from './targets/typescript';\nimport buildCodegen from './targets/codegen';\nimport customTarget from './targets/custom';\nimport { type Options, type Target } from './types';\nimport fs from 'fs-extra';\nimport { loadConfig } from './utils/loadConfig';\nimport yargs from 'yargs';\n\nexport const args = {\n target: {\n type: 'string',\n description: 'The target to build',\n choices: ['commonjs', 'module', 'typescript', 'codegen'] satisfies Target[],\n },\n} satisfies Record<'target', yargs.Options>;\n\ntype Argv = {\n $0: string;\n target?: Target;\n};\n\nexport async function build(argv: Argv) {\n const root = process.cwd();\n\n const projectPackagePath = path.resolve(root, 'package.json');\n\n if (!(await fs.pathExists(projectPackagePath))) {\n throw new Error(\n `Couldn't find a 'package.json' file in '${root}'. Are you in a project folder?`\n );\n }\n\n const result = await loadConfig();\n\n if (!result?.config) {\n logger.error(\n `No configuration found. Run '${argv.$0} init' to create one automatically.`\n );\n process.exit(1);\n }\n\n const options: Options = result!.config;\n\n if (!options.targets?.length) {\n logger.error(\n `No targets found in the configuration in '${path.relative(\n root,\n result!.filepath\n )}'.`\n );\n process.exit(1);\n }\n\n const source = options.source;\n\n if (!source) {\n logger.error(\n `No source option found in the configuration in '${path.relative(\n root,\n result!.filepath\n )}'.`\n );\n process.exit(1);\n }\n\n const output = options.output;\n\n if (!output) {\n logger.error(\n `No source option found in the configuration in '${path.relative(\n root,\n result!.filepath\n )}'.`\n );\n process.exit(1);\n }\n\n const exclude = options.exclude ?? '**/{__tests__,__fixtures__,__mocks__}/**';\n\n const commonjs = options.targets?.some((t) =>\n Array.isArray(t) ? t[0] === 'commonjs' : t === 'commonjs'\n );\n\n const module = options.targets?.some((t) =>\n Array.isArray(t) ? t[0] === 'module' : t === 'module'\n );\n\n const variants = {\n commonjs,\n module,\n };\n\n if (argv.target != null) {\n buildTarget({\n root,\n target: argv.target,\n source,\n output,\n exclude,\n options,\n variants,\n });\n } else {\n for (const target of options.targets!) {\n buildTarget({\n root,\n target,\n source,\n output,\n exclude,\n options,\n variants,\n });\n }\n }\n}\n\nasync function buildTarget({\n root,\n target,\n source,\n output,\n exclude,\n options,\n variants,\n}: {\n root: string;\n target: Exclude<Options['targets'], undefined>[number];\n source: string;\n output: string;\n exclude: string;\n options: Options;\n variants: {\n commonjs?: boolean;\n module?: boolean;\n };\n}) {\n const targetName = Array.isArray(target) ? target[0] : target;\n const targetOptions = Array.isArray(target) ? target[1] : undefined;\n\n const report = logger.grouped(targetName);\n\n switch (targetName) {\n case 'commonjs':\n await buildCommonJS({\n root,\n source: path.resolve(root, source),\n output: path.resolve(root, output, 'commonjs'),\n exclude,\n options: targetOptions,\n variants,\n report,\n });\n break;\n case 'module':\n await buildModule({\n root,\n source: path.resolve(root, source),\n output: path.resolve(root, output, 'module'),\n exclude,\n options: targetOptions,\n variants,\n report,\n });\n break;\n case 'typescript':\n {\n const esm =\n options.targets?.some((t) => {\n if (Array.isArray(t)) {\n const [name, options] = t;\n\n if (name === 'module') {\n return options && 'esm' in options && options?.esm;\n }\n }\n\n return false;\n }) ?? false;\n\n await buildTypescript({\n root,\n source: path.resolve(root, source),\n output: path.resolve(root, output, 'typescript'),\n options: targetOptions,\n esm,\n variants,\n report,\n });\n }\n break;\n case 'codegen':\n await buildCodegen({\n root,\n source: path.resolve(root, source),\n output: path.resolve(root, output, 'typescript'),\n report,\n });\n break;\n case 'custom':\n await customTarget({\n options: targetOptions,\n source: path.resolve(root, source),\n report,\n root,\n });\n break;\n default:\n logger.error(`Invalid target ${kleur.blue(targetName)}.`);\n process.exit(1);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"build.js","names":["_fsExtra","_interopRequireDefault","require","_kleur","_path","_loadConfig","logger","_interopRequireWildcard","_workerize","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","args","exports","target","type","description","choices","build","argv","root","process","cwd","projectPackagePath","path","resolve","fs","pathExists","Error","result","loadConfig","config","$0","options","targets","length","relative","filepath","source","output","exclude","commonjs","some","Array","isArray","module","variants","buildTarget","Promise","all","map","targetName","targetOptions","undefined","report","grouped","run","esm","name","kleur","blue"],"sources":["../src/build.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport kleur from 'kleur';\nimport path from 'path';\nimport yargs from 'yargs';\nimport { type Options, type Target } from './types';\nimport { loadConfig } from './utils/loadConfig';\nimport * as logger from './utils/logger';\nimport { run } from './utils/workerize';\n\nexport const args = {\n target: {\n type: 'string',\n description: 'The target to build',\n choices: ['commonjs', 'module', 'typescript', 'codegen'] satisfies Target[],\n },\n} satisfies Record<'target', yargs.Options>;\n\ntype Argv = {\n $0: string;\n target?: Target;\n};\n\nexport async function build(argv: Argv) {\n const root = process.cwd();\n\n const projectPackagePath = path.resolve(root, 'package.json');\n\n if (!(await fs.pathExists(projectPackagePath))) {\n throw new Error(\n `Couldn't find a 'package.json' file in '${root}'. Are you in a project folder?`\n );\n }\n\n const result = loadConfig(root);\n\n if (!result?.config) {\n throw new Error(\n `No configuration found. Run '${argv.$0} init' to create one automatically.`\n );\n }\n\n const options: Options = result!.config;\n\n if (!options.targets?.length) {\n throw new Error(\n `No 'targets' found in the configuration in '${path.relative(\n root,\n result!.filepath\n )}'.`\n );\n }\n\n const source = options.source;\n\n if (!source) {\n throw new Error(\n `No 'source' option found in the configuration in '${path.relative(\n root,\n result!.filepath\n )}'.`\n );\n }\n\n const output = options.output;\n\n if (!output) {\n throw new Error(\n `No 'output' option found in the configuration in '${path.relative(\n root,\n result!.filepath\n )}'.`\n );\n }\n\n const exclude = options.exclude ?? '**/{__tests__,__fixtures__,__mocks__}/**';\n\n const commonjs = options.targets?.some((t) =>\n Array.isArray(t) ? t[0] === 'commonjs' : t === 'commonjs'\n );\n\n const module = options.targets?.some((t) =>\n Array.isArray(t) ? t[0] === 'module' : t === 'module'\n );\n\n const variants = {\n commonjs,\n module,\n };\n\n if (argv.target != null) {\n await buildTarget({\n root,\n target: argv.target,\n source,\n output,\n exclude,\n options,\n variants,\n });\n } else {\n await Promise.all(\n options.targets?.map((target) =>\n buildTarget({\n root,\n target,\n source,\n output,\n exclude,\n options,\n variants,\n })\n )\n );\n }\n}\n\nasync function buildTarget({\n root,\n target,\n source,\n output,\n exclude,\n options,\n variants,\n}: {\n root: string;\n target: Exclude<Options['targets'], undefined>[number];\n source: string;\n output: string;\n exclude: string;\n options: Options;\n variants: {\n commonjs?: boolean;\n module?: boolean;\n };\n}) {\n const targetName = Array.isArray(target) ? target[0] : target;\n const targetOptions = Array.isArray(target) ? target[1] : undefined;\n\n const report = logger.grouped(targetName);\n\n switch (targetName) {\n case 'commonjs':\n case 'module':\n await run(targetName, {\n root,\n source: path.resolve(root, source),\n output: path.resolve(root, output, targetName),\n exclude,\n options: targetOptions,\n variants,\n report,\n });\n break;\n case 'typescript':\n {\n const esm =\n options.targets?.some((t) => {\n if (Array.isArray(t)) {\n const [name, options] = t;\n\n if (name === 'module') {\n return options && 'esm' in options && options?.esm;\n }\n }\n\n return false;\n }) ?? false;\n\n await run('typescript', {\n root,\n source: path.resolve(root, source),\n output: path.resolve(root, output, 'typescript'),\n options: targetOptions,\n esm,\n variants,\n report,\n });\n }\n break;\n case 'codegen':\n await run('codegen', {\n root,\n source: path.resolve(root, source),\n output: path.resolve(root, output, 'typescript'),\n report,\n });\n break;\n case 'custom':\n await run('custom', {\n options: targetOptions,\n source: path.resolve(root, source),\n report,\n root,\n });\n break;\n default:\n throw new Error(`Invalid target ${kleur.blue(targetName)}.`);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/index.js
CHANGED
|
@@ -11,5 +11,7 @@ const args = {
|
|
|
11
11
|
choices: ['commonjs', 'module', 'typescript', 'codegen']
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
|
+
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
14
16
|
_yargs.default.command('init', 'configure the package to use bob', {}, _init.init).command('build', 'build files for publishing', args, _build.build).demandCommand().recommendCommands().strict().argv;
|
|
15
17
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_yargs","_interopRequireDefault","require","_build","_init","e","__esModule","default","args","target","type","description","choices","yargs","command","init","build","demandCommand","recommendCommands","strict","argv"],"sources":["../src/index.ts"],"sourcesContent":["import yargs from 'yargs';\nimport { build } from './build';\nimport { init } from './init';\nimport type { Target } from './types';\n\ntype ArgName = 'target';\n\nconst args = {\n target: {\n type: 'string',\n description: 'The target to build',\n choices: ['commonjs', 'module', 'typescript', 'codegen'] satisfies Target[],\n },\n} satisfies Record<ArgName, yargs.Options>;\n\nyargs\n .command('init', 'configure the package to use bob', {}, init)\n .command('build', 'build files for publishing', args, build)\n .demandCommand()\n .recommendCommands()\n .strict().argv;\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAA8B,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAK9B,MAAMG,IAAI,GAAG;EACXC,MAAM,EAAE;IACNC,IAAI,EAAE,QAAQ;IACdC,WAAW,EAAE,qBAAqB;IAClCC,OAAO,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS;EACzD;AACF,CAA0C;
|
|
1
|
+
{"version":3,"file":"index.js","names":["_yargs","_interopRequireDefault","require","_build","_init","e","__esModule","default","args","target","type","description","choices","yargs","command","init","build","demandCommand","recommendCommands","strict","argv"],"sources":["../src/index.ts"],"sourcesContent":["import yargs from 'yargs';\nimport { build } from './build';\nimport { init } from './init';\nimport type { Target } from './types';\n\ntype ArgName = 'target';\n\nconst args = {\n target: {\n type: 'string',\n description: 'The target to build',\n choices: ['commonjs', 'module', 'typescript', 'codegen'] satisfies Target[],\n },\n} satisfies Record<ArgName, yargs.Options>;\n\n// eslint-disable-next-line @typescript-eslint/no-unused-expressions\nyargs\n .command('init', 'configure the package to use bob', {}, init)\n .command('build', 'build files for publishing', args, build)\n .demandCommand()\n .recommendCommands()\n .strict().argv;\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAA8B,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAK9B,MAAMG,IAAI,GAAG;EACXC,MAAM,EAAE;IACNC,IAAI,EAAE,QAAQ;IACdC,WAAW,EAAE,qBAAqB;IAClCC,OAAO,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS;EACzD;AACF,CAA0C;;AAE1C;AACAC,cAAK,CACFC,OAAO,CAAC,MAAM,EAAE,kCAAkC,EAAE,CAAC,CAAC,EAAEC,UAAI,CAAC,CAC7DD,OAAO,CAAC,OAAO,EAAE,4BAA4B,EAAEN,IAAI,EAAEQ,YAAK,CAAC,CAC3DC,aAAa,CAAC,CAAC,CACfC,iBAAiB,CAAC,CAAC,CACnBC,MAAM,CAAC,CAAC,CAACC,IAAI","ignoreList":[]}
|
package/lib/init.js
CHANGED
|
@@ -10,12 +10,9 @@ var _kleur = _interopRequireDefault(require("kleur"));
|
|
|
10
10
|
var _dedent = _interopRequireDefault(require("dedent"));
|
|
11
11
|
var _isGitDirty = _interopRequireDefault(require("is-git-dirty"));
|
|
12
12
|
var _prompts = _interopRequireDefault(require("./utils/prompts"));
|
|
13
|
-
var logger = _interopRequireWildcard(require("./utils/logger"));
|
|
14
13
|
var _loadConfig = require("./utils/loadConfig");
|
|
15
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
16
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
-
// eslint-disable-next-line
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports,import-x/no-commonjs
|
|
19
16
|
const {
|
|
20
17
|
name,
|
|
21
18
|
version
|
|
@@ -38,11 +35,10 @@ async function init() {
|
|
|
38
35
|
}
|
|
39
36
|
}
|
|
40
37
|
if (!(await _fsExtra.default.pathExists(projectPackagePath))) {
|
|
41
|
-
|
|
42
|
-
process.exit(1);
|
|
38
|
+
throw new Error(`Couldn't find a 'package.json' file in '${root}'.\n Are you in a project folder?`);
|
|
43
39
|
}
|
|
44
40
|
const pkg = JSON.parse(await _fsExtra.default.readFile(projectPackagePath, 'utf-8'));
|
|
45
|
-
const result =
|
|
41
|
+
const result = (0, _loadConfig.loadConfig)(root);
|
|
46
42
|
if (result?.config && pkg.devDependencies && name in pkg.devDependencies) {
|
|
47
43
|
const {
|
|
48
44
|
shouldContinue
|
|
@@ -74,8 +70,7 @@ async function init() {
|
|
|
74
70
|
entryFile = 'index.tsx';
|
|
75
71
|
}
|
|
76
72
|
if (!entryFile) {
|
|
77
|
-
|
|
78
|
-
process.exit(1);
|
|
73
|
+
throw new Error(`Couldn't find a 'index.js'. 'index.ts' or 'index.tsx' file under '${source}'.\n Please re-run the CLI after creating it.`);
|
|
79
74
|
}
|
|
80
75
|
pkg.devDependencies = Object.fromEntries([...Object.entries(pkg.devDependencies || {}), [name, `^${version}`]].sort(([a], [b]) => a.localeCompare(b)));
|
|
81
76
|
const questions = [{
|
package/lib/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","names":["_path","_interopRequireDefault","require","_fsExtra","_kleur","_dedent","_isGitDirty","_prompts","logger","_interopRequireWildcard","_loadConfig","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","name","version","FLOW_PRGAMA_REGEX","init","root","process","cwd","projectPackagePath","path","resolve","isGitDirty","shouldContinue","prompts","type","message","initial","exit","fs","pathExists","error","pkg","JSON","parse","readFile","result","loadConfig","config","devDependencies","source","validate","input","Boolean","entryFile","join","fromEntries","entries","sort","b","localeCompare","questions","choices","title","value","selected","test","length","endsWith","push","keys","includes","output","targets","flow","target","undefined","esm","module","commonjs","types","import","tsconfig","writeJSON","compilerOptions","rootDir","allowUnreachableCode","allowUnusedLabels","esModuleInterop","forceConsistentCasingInFileNames","jsx","lib","moduleResolution","noFallthroughCasesInSwitch","noImplicitReturns","noImplicitUseStrict","noStrictGenericChecks","noUncheckedIndexedAccess","noUnusedLocals","noUnusedParameters","resolveJsonModule","skipLibCheck","strict","verbatimModuleSyntax","spaces","prepare","files","replace","exportsField","importField","requireField","exports","stringify","entryFields","main","key","entry","startsWith","remove","scripts","pkgFiles","some","file","update","filter","map","copyFlow","jest","modulePathIgnorePatterns","eslintIgnore","ignorefiles","ignorefile","content","split","writeFile","packageManager","stdout","write","dedent","kleur","yellow","magenta","bold","gray"],"sources":["../src/init.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport kleur from 'kleur';\nimport dedent from 'dedent';\nimport isGitDirty from 'is-git-dirty';\nimport prompts, { type PromptObject } from './utils/prompts';\nimport * as logger from './utils/logger';\nimport { loadConfig } from './utils/loadConfig';\n\n// eslint-disable-next-line import/no-commonjs, @typescript-eslint/no-var-requires\nconst { name, version } = require('../package.json');\n\nconst FLOW_PRGAMA_REGEX = /\\*?\\s*@(flow)\\b/m;\n\nexport async function init() {\n const root = process.cwd();\n const projectPackagePath = path.resolve(root, 'package.json');\n\n if (isGitDirty()) {\n const { shouldContinue } = await prompts({\n type: 'confirm',\n name: 'shouldContinue',\n message: `The working directory is not clean.\\n You should commit or stash your changes before configuring bob.\\n Continue anyway?`,\n initial: false,\n });\n\n if (!shouldContinue) {\n process.exit(0);\n }\n }\n\n if (!(await fs.pathExists(projectPackagePath))) {\n logger.error(\n `Couldn't find a 'package.json' file in '${root}'.\\n Are you in a project folder?`\n );\n process.exit(1);\n }\n\n const pkg = JSON.parse(await fs.readFile(projectPackagePath, 'utf-8'));\n const result = await loadConfig();\n\n if (result?.config && pkg.devDependencies && name in pkg.devDependencies) {\n const { shouldContinue } = await prompts({\n type: 'confirm',\n name: 'shouldContinue',\n message: `The project seems to be already configured with bob.\\n Do you want to overwrite the existing configuration?`,\n initial: false,\n });\n\n if (!shouldContinue) {\n process.exit(0);\n }\n }\n\n const { source } = await prompts({\n type: 'text',\n name: 'source',\n message: 'Where are your source files?',\n initial: 'src',\n validate: (input) => Boolean(input),\n });\n\n let entryFile;\n\n if (await fs.pathExists(path.join(root, source, 'index.js'))) {\n entryFile = 'index.js';\n } else if (await fs.pathExists(path.join(root, source, 'index.ts'))) {\n entryFile = 'index.ts';\n } else if (await fs.pathExists(path.join(root, source, 'index.tsx'))) {\n entryFile = 'index.tsx';\n }\n\n if (!entryFile) {\n logger.error(\n `Couldn't find a 'index.js'. 'index.ts' or 'index.tsx' file under '${source}'.\\n Please re-run the CLI after creating it.`\n );\n process.exit(1);\n }\n\n pkg.devDependencies = Object.fromEntries(\n [...Object.entries(pkg.devDependencies || {}), [name, `^${version}`]].sort(\n ([a], [b]) => a.localeCompare(b)\n )\n );\n\n const questions: PromptObject[] = [\n {\n type: 'text',\n name: 'output',\n message: 'Where do you want to generate the output files?',\n initial: 'lib',\n validate: (input: string) => Boolean(input),\n },\n {\n type: 'multiselect',\n name: 'targets',\n message: 'Which targets do you want to build?',\n choices: [\n {\n title: 'module - for modern setups',\n value: 'module',\n selected: true,\n },\n {\n title: 'commonjs - for legacy setups (Node.js < 20)',\n value: 'commonjs',\n selected: true,\n },\n {\n title: 'typescript - declaration files for typechecking',\n value: 'typescript',\n selected: /\\.tsx?$/.test(entryFile),\n },\n ],\n validate: (input: string) => Boolean(input.length),\n },\n ];\n\n if (\n entryFile.endsWith('.js') &&\n FLOW_PRGAMA_REGEX.test(\n await fs.readFile(path.join(root, source, entryFile), 'utf-8')\n )\n ) {\n questions.push({\n type: 'confirm',\n name: 'flow',\n message: 'Do you want to publish definitions for flow?',\n initial: Object.keys(pkg.devDependencies || {}).includes('flow-bin'),\n });\n }\n\n const { output, targets, flow } = await prompts(questions);\n\n const target =\n targets[0] === 'commonjs' || targets[0] === 'module'\n ? targets[0]\n : undefined;\n\n const entries: {\n [key in 'source' | 'commonjs' | 'module']?: string;\n } = {\n source: `./${path.join(source, entryFile)}`,\n };\n\n let esm = false;\n\n if (targets.includes('module')) {\n esm = true;\n entries.module = `./${path.join(output, 'module', 'index.js')}`;\n }\n\n if (targets.includes('commonjs')) {\n entries.commonjs = `./${path.join(output, 'commonjs', 'index.js')}`;\n }\n\n const types: {\n [key in 'require' | 'import']?: string;\n } = {};\n\n if (targets.includes('typescript')) {\n if (targets.includes('commonjs') && targets.includes('module')) {\n types.require = `./${path.join(\n output,\n 'typescript',\n 'commonjs',\n source,\n 'index.d.ts'\n )}`;\n\n types.import = `./${path.join(\n output,\n 'typescript',\n 'module',\n source,\n 'index.d.ts'\n )}`;\n } else {\n types.require = `./${path.join(\n output,\n 'typescript',\n source,\n 'index.d.ts'\n )}`;\n\n types.import = types.require;\n }\n\n if (!(await fs.pathExists(path.join(root, 'tsconfig.json')))) {\n const { tsconfig } = await prompts({\n type: 'confirm',\n name: 'tsconfig',\n message: `You have enabled 'typescript' compilation, but we couldn't find a 'tsconfig.json' in project root.\\n Generate one?`,\n initial: true,\n });\n\n if (tsconfig) {\n await fs.writeJSON(\n path.join(root, 'tsconfig.json'),\n {\n compilerOptions: {\n rootDir: '.',\n allowUnreachableCode: false,\n allowUnusedLabels: false,\n esModuleInterop: true,\n forceConsistentCasingInFileNames: true,\n jsx: 'react-jsx',\n lib: ['ESNext'],\n module: 'ESNext',\n moduleResolution: 'bundler',\n noFallthroughCasesInSwitch: true,\n noImplicitReturns: true,\n noImplicitUseStrict: false,\n noStrictGenericChecks: false,\n noUncheckedIndexedAccess: true,\n noUnusedLocals: true,\n noUnusedParameters: true,\n resolveJsonModule: true,\n skipLibCheck: true,\n strict: true,\n target: 'ESNext',\n verbatimModuleSyntax: true,\n },\n },\n { spaces: 2 }\n );\n }\n }\n }\n\n const prepare = 'bob build';\n const files = [\n source,\n output,\n '!**/__tests__',\n '!**/__fixtures__',\n '!**/__mocks__',\n ];\n\n if (esm) {\n let replace = false;\n\n const exportsField = {\n '.': {},\n './package.json': './package.json',\n };\n\n const importField = {\n ...(types.import ? { types: types.import } : null),\n ...(entries.module ? { default: entries.module } : null),\n };\n\n const requireField = {\n ...(types.require ? { types: types.require } : null),\n ...(entries.commonjs ? { default: entries.commonjs } : null),\n };\n\n if (targets.includes('commonjs') && targets.includes('module')) {\n exportsField['.'] = {\n import: importField,\n require: requireField,\n };\n } else if (targets.includes('commonjs')) {\n exportsField['.'] = requireField;\n } else if (targets.includes('module')) {\n exportsField['.'] = importField;\n }\n\n if (\n pkg.exports &&\n JSON.stringify(pkg.exports) !== JSON.stringify(exportsField)\n ) {\n replace = (\n await prompts({\n type: 'confirm',\n name: 'replace',\n message: `Your package.json has 'exports' field set.\\n Do you want to replace it?`,\n initial: true,\n })\n ).replace;\n } else {\n replace = true;\n }\n\n if (replace) {\n pkg.exports = exportsField;\n }\n }\n\n const entryFields: {\n [key in 'source' | 'main' | 'module' | 'types']?: string;\n } = {\n source: entries.source,\n };\n\n if (targets.includes('commonjs') && targets.includes('module')) {\n entryFields.main = entries.commonjs;\n entryFields.module = entries.module;\n } else if (targets.includes('commonjs')) {\n entryFields.main = entries.commonjs;\n } else if (targets.includes('module')) {\n entryFields.main = entries.module;\n }\n\n if (targets.includes('typescript') && !pkg.exports?.['.']) {\n if (entryFields.main === entries.commonjs) {\n entryFields.types = types.require;\n } else {\n entryFields.types = types.import;\n }\n }\n\n for (const key in entryFields) {\n const entry = entryFields[key as keyof typeof entryFields];\n\n if (pkg[key] && pkg[key] !== entry) {\n const { replace } = await prompts({\n type: 'confirm',\n name: 'replace',\n message: `Your package.json has the '${key}' field set to '${pkg[key]}'.\\n Do you want to replace it with '${entry}'?`,\n initial: true,\n });\n\n if (replace) {\n pkg[key] = entry;\n }\n } else {\n pkg[key] = entry;\n }\n }\n\n if (\n pkg['react-native'] &&\n (pkg['react-native'].startsWith(source) ||\n pkg['react-native'].startsWith(`./${source}`))\n ) {\n const { remove } = await prompts({\n type: 'confirm',\n name: 'remove',\n message: `Your package.json has the 'react-native' field pointing to source code.\\n This can cause problems when customizing babel configuration.\\n Do you want to remove it?`,\n initial: true,\n });\n\n if (remove) {\n delete pkg['react-native'];\n }\n }\n\n if (pkg.scripts?.prepare && pkg.scripts.prepare !== prepare) {\n const { replace } = await prompts({\n type: 'confirm',\n name: 'replace',\n message: `Your package.json has the 'scripts.prepare' field set to '${pkg.scripts.prepare}'.\\n Do you want to replace it with '${prepare}'?`,\n initial: true,\n });\n\n if (replace) {\n pkg.scripts.prepare = prepare;\n }\n } else {\n pkg.scripts = pkg.scripts || {};\n pkg.scripts.prepare = prepare;\n }\n\n if (pkg.files) {\n const pkgFiles = pkg.files;\n\n if (files?.some((file) => !pkgFiles.includes(file))) {\n const { update } = await prompts({\n type: 'confirm',\n name: 'update',\n message: `Your package.json already has a 'files' field.\\n Do you want to update it?`,\n initial: true,\n });\n\n if (update) {\n pkg.files = [\n ...files,\n ...pkg.files.filter((file: string) => !files.includes(file)),\n ];\n }\n }\n } else {\n pkg.files = files;\n }\n\n pkg[name] = {\n source,\n output,\n targets: targets.map((t: string) => {\n if (t === target && flow) {\n return [t, { copyFlow: true }];\n }\n\n if (t === 'commonjs' || t === 'module') {\n return [t, { esm }];\n }\n\n return t;\n }),\n };\n\n if (pkg.jest) {\n const entry = `<rootDir>/${output}/`;\n\n if (pkg.jest.modulePathIgnorePatterns) {\n const { modulePathIgnorePatterns } = pkg.jest;\n\n if (!modulePathIgnorePatterns.includes(entry)) {\n modulePathIgnorePatterns.push(entry);\n }\n } else {\n pkg.jest.modulePathIgnorePatterns = [entry];\n }\n }\n\n pkg.eslintIgnore = pkg.eslintIgnore || ['node_modules/'];\n\n if (!pkg.eslintIgnore.includes(`${output}/`)) {\n pkg.eslintIgnore.push(`${output}/`);\n }\n\n await fs.writeJSON(projectPackagePath, pkg, {\n spaces: 2,\n });\n\n const ignorefiles = [\n path.join(root, '.gitignore'),\n path.join(root, '.eslintignore'),\n ];\n\n for (const ignorefile of ignorefiles) {\n if (await fs.pathExists(ignorefile)) {\n const content = await fs.readFile(ignorefile, 'utf-8');\n\n if (!content.split('\\n').includes(`${output}/`)) {\n await fs.writeFile(\n ignorefile,\n `${content}\\n# generated by bob\\n${output}/\\n`\n );\n }\n }\n }\n\n const packageManager = (await fs.pathExists(path.join(root, 'yarn.lock')))\n ? 'yarn'\n : 'npm';\n\n process.stdout.write(\n dedent(`\n Project ${kleur.yellow(pkg.name)} configured successfully!\n\n ${kleur.magenta(\n `${kleur.bold('Perform last steps')} by running`\n )}${kleur.gray(':')}\n\n ${kleur.gray('$')} ${packageManager} install\n\n ${kleur.yellow('Good luck!')}\n `)\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"init.js","names":["_path","_interopRequireDefault","require","_fsExtra","_kleur","_dedent","_isGitDirty","_prompts","_loadConfig","e","__esModule","default","name","version","FLOW_PRGAMA_REGEX","init","root","process","cwd","projectPackagePath","path","resolve","isGitDirty","shouldContinue","prompts","type","message","initial","exit","fs","pathExists","Error","pkg","JSON","parse","readFile","result","loadConfig","config","devDependencies","source","validate","input","Boolean","entryFile","join","Object","fromEntries","entries","sort","a","b","localeCompare","questions","choices","title","value","selected","test","length","endsWith","push","keys","includes","output","targets","flow","target","undefined","esm","module","commonjs","types","import","tsconfig","writeJSON","compilerOptions","rootDir","allowUnreachableCode","allowUnusedLabels","esModuleInterop","forceConsistentCasingInFileNames","jsx","lib","moduleResolution","noFallthroughCasesInSwitch","noImplicitReturns","noImplicitUseStrict","noStrictGenericChecks","noUncheckedIndexedAccess","noUnusedLocals","noUnusedParameters","resolveJsonModule","skipLibCheck","strict","verbatimModuleSyntax","spaces","prepare","files","replace","exportsField","importField","requireField","exports","stringify","entryFields","main","key","entry","startsWith","remove","scripts","pkgFiles","some","file","update","filter","map","t","copyFlow","jest","modulePathIgnorePatterns","eslintIgnore","ignorefiles","ignorefile","content","split","writeFile","packageManager","stdout","write","dedent","kleur","yellow","magenta","bold","gray"],"sources":["../src/init.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport kleur from 'kleur';\nimport dedent from 'dedent';\nimport isGitDirty from 'is-git-dirty';\nimport prompts, { type PromptObject } from './utils/prompts';\nimport { loadConfig } from './utils/loadConfig';\n\n// eslint-disable-next-line @typescript-eslint/no-require-imports,import-x/no-commonjs\nconst { name, version } = require('../package.json');\n\nconst FLOW_PRGAMA_REGEX = /\\*?\\s*@(flow)\\b/m;\n\nexport async function init() {\n const root = process.cwd();\n const projectPackagePath = path.resolve(root, 'package.json');\n\n if (isGitDirty()) {\n const { shouldContinue } = await prompts({\n type: 'confirm',\n name: 'shouldContinue',\n message: `The working directory is not clean.\\n You should commit or stash your changes before configuring bob.\\n Continue anyway?`,\n initial: false,\n });\n\n if (!shouldContinue) {\n process.exit(0);\n }\n }\n\n if (!(await fs.pathExists(projectPackagePath))) {\n throw new Error(\n `Couldn't find a 'package.json' file in '${root}'.\\n Are you in a project folder?`\n );\n }\n\n const pkg = JSON.parse(await fs.readFile(projectPackagePath, 'utf-8'));\n const result = loadConfig(root);\n\n if (result?.config && pkg.devDependencies && name in pkg.devDependencies) {\n const { shouldContinue } = await prompts({\n type: 'confirm',\n name: 'shouldContinue',\n message: `The project seems to be already configured with bob.\\n Do you want to overwrite the existing configuration?`,\n initial: false,\n });\n\n if (!shouldContinue) {\n process.exit(0);\n }\n }\n\n const { source } = await prompts({\n type: 'text',\n name: 'source',\n message: 'Where are your source files?',\n initial: 'src',\n validate: (input) => Boolean(input),\n });\n\n let entryFile;\n\n if (await fs.pathExists(path.join(root, source, 'index.js'))) {\n entryFile = 'index.js';\n } else if (await fs.pathExists(path.join(root, source, 'index.ts'))) {\n entryFile = 'index.ts';\n } else if (await fs.pathExists(path.join(root, source, 'index.tsx'))) {\n entryFile = 'index.tsx';\n }\n\n if (!entryFile) {\n throw new Error(\n `Couldn't find a 'index.js'. 'index.ts' or 'index.tsx' file under '${source}'.\\n Please re-run the CLI after creating it.`\n );\n }\n\n pkg.devDependencies = Object.fromEntries(\n [...Object.entries(pkg.devDependencies || {}), [name, `^${version}`]].sort(\n ([a], [b]) => a.localeCompare(b)\n )\n );\n\n const questions: PromptObject[] = [\n {\n type: 'text',\n name: 'output',\n message: 'Where do you want to generate the output files?',\n initial: 'lib',\n validate: (input: string) => Boolean(input),\n },\n {\n type: 'multiselect',\n name: 'targets',\n message: 'Which targets do you want to build?',\n choices: [\n {\n title: 'module - for modern setups',\n value: 'module',\n selected: true,\n },\n {\n title: 'commonjs - for legacy setups (Node.js < 20)',\n value: 'commonjs',\n selected: true,\n },\n {\n title: 'typescript - declaration files for typechecking',\n value: 'typescript',\n selected: /\\.tsx?$/.test(entryFile),\n },\n ],\n validate: (input: string) => Boolean(input.length),\n },\n ];\n\n if (\n entryFile.endsWith('.js') &&\n FLOW_PRGAMA_REGEX.test(\n await fs.readFile(path.join(root, source, entryFile), 'utf-8')\n )\n ) {\n questions.push({\n type: 'confirm',\n name: 'flow',\n message: 'Do you want to publish definitions for flow?',\n initial: Object.keys(pkg.devDependencies || {}).includes('flow-bin'),\n });\n }\n\n const { output, targets, flow } = await prompts(questions);\n\n const target =\n targets[0] === 'commonjs' || targets[0] === 'module'\n ? targets[0]\n : undefined;\n\n const entries: {\n [key in 'source' | 'commonjs' | 'module']?: string;\n } = {\n source: `./${path.join(source, entryFile)}`,\n };\n\n let esm = false;\n\n if (targets.includes('module')) {\n esm = true;\n entries.module = `./${path.join(output, 'module', 'index.js')}`;\n }\n\n if (targets.includes('commonjs')) {\n entries.commonjs = `./${path.join(output, 'commonjs', 'index.js')}`;\n }\n\n const types: {\n [key in 'require' | 'import']?: string;\n } = {};\n\n if (targets.includes('typescript')) {\n if (targets.includes('commonjs') && targets.includes('module')) {\n types.require = `./${path.join(\n output,\n 'typescript',\n 'commonjs',\n source,\n 'index.d.ts'\n )}`;\n\n types.import = `./${path.join(\n output,\n 'typescript',\n 'module',\n source,\n 'index.d.ts'\n )}`;\n } else {\n types.require = `./${path.join(\n output,\n 'typescript',\n source,\n 'index.d.ts'\n )}`;\n\n types.import = types.require;\n }\n\n if (!(await fs.pathExists(path.join(root, 'tsconfig.json')))) {\n const { tsconfig } = await prompts({\n type: 'confirm',\n name: 'tsconfig',\n message: `You have enabled 'typescript' compilation, but we couldn't find a 'tsconfig.json' in project root.\\n Generate one?`,\n initial: true,\n });\n\n if (tsconfig) {\n await fs.writeJSON(\n path.join(root, 'tsconfig.json'),\n {\n compilerOptions: {\n rootDir: '.',\n allowUnreachableCode: false,\n allowUnusedLabels: false,\n esModuleInterop: true,\n forceConsistentCasingInFileNames: true,\n jsx: 'react-jsx',\n lib: ['ESNext'],\n module: 'ESNext',\n moduleResolution: 'bundler',\n noFallthroughCasesInSwitch: true,\n noImplicitReturns: true,\n noImplicitUseStrict: false,\n noStrictGenericChecks: false,\n noUncheckedIndexedAccess: true,\n noUnusedLocals: true,\n noUnusedParameters: true,\n resolveJsonModule: true,\n skipLibCheck: true,\n strict: true,\n target: 'ESNext',\n verbatimModuleSyntax: true,\n },\n },\n { spaces: 2 }\n );\n }\n }\n }\n\n const prepare = 'bob build';\n const files = [\n source,\n output,\n '!**/__tests__',\n '!**/__fixtures__',\n '!**/__mocks__',\n ];\n\n if (esm) {\n let replace = false;\n\n const exportsField = {\n '.': {},\n './package.json': './package.json',\n };\n\n const importField = {\n ...(types.import ? { types: types.import } : null),\n ...(entries.module ? { default: entries.module } : null),\n };\n\n const requireField = {\n ...(types.require ? { types: types.require } : null),\n ...(entries.commonjs ? { default: entries.commonjs } : null),\n };\n\n if (targets.includes('commonjs') && targets.includes('module')) {\n exportsField['.'] = {\n import: importField,\n require: requireField,\n };\n } else if (targets.includes('commonjs')) {\n exportsField['.'] = requireField;\n } else if (targets.includes('module')) {\n exportsField['.'] = importField;\n }\n\n if (\n pkg.exports &&\n JSON.stringify(pkg.exports) !== JSON.stringify(exportsField)\n ) {\n replace = (\n await prompts({\n type: 'confirm',\n name: 'replace',\n message: `Your package.json has 'exports' field set.\\n Do you want to replace it?`,\n initial: true,\n })\n ).replace;\n } else {\n replace = true;\n }\n\n if (replace) {\n pkg.exports = exportsField;\n }\n }\n\n const entryFields: {\n [key in 'source' | 'main' | 'module' | 'types']?: string;\n } = {\n source: entries.source,\n };\n\n if (targets.includes('commonjs') && targets.includes('module')) {\n entryFields.main = entries.commonjs;\n entryFields.module = entries.module;\n } else if (targets.includes('commonjs')) {\n entryFields.main = entries.commonjs;\n } else if (targets.includes('module')) {\n entryFields.main = entries.module;\n }\n\n if (targets.includes('typescript') && !pkg.exports?.['.']) {\n if (entryFields.main === entries.commonjs) {\n entryFields.types = types.require;\n } else {\n entryFields.types = types.import;\n }\n }\n\n for (const key in entryFields) {\n const entry = entryFields[key as keyof typeof entryFields];\n\n if (pkg[key] && pkg[key] !== entry) {\n const { replace } = await prompts({\n type: 'confirm',\n name: 'replace',\n message: `Your package.json has the '${key}' field set to '${pkg[key]}'.\\n Do you want to replace it with '${entry}'?`,\n initial: true,\n });\n\n if (replace) {\n pkg[key] = entry;\n }\n } else {\n pkg[key] = entry;\n }\n }\n\n if (\n pkg['react-native'] &&\n (pkg['react-native'].startsWith(source) ||\n pkg['react-native'].startsWith(`./${source}`))\n ) {\n const { remove } = await prompts({\n type: 'confirm',\n name: 'remove',\n message: `Your package.json has the 'react-native' field pointing to source code.\\n This can cause problems when customizing babel configuration.\\n Do you want to remove it?`,\n initial: true,\n });\n\n if (remove) {\n delete pkg['react-native'];\n }\n }\n\n if (pkg.scripts?.prepare && pkg.scripts.prepare !== prepare) {\n const { replace } = await prompts({\n type: 'confirm',\n name: 'replace',\n message: `Your package.json has the 'scripts.prepare' field set to '${pkg.scripts.prepare}'.\\n Do you want to replace it with '${prepare}'?`,\n initial: true,\n });\n\n if (replace) {\n pkg.scripts.prepare = prepare;\n }\n } else {\n pkg.scripts = pkg.scripts || {};\n pkg.scripts.prepare = prepare;\n }\n\n if (pkg.files) {\n const pkgFiles = pkg.files;\n\n if (files?.some((file) => !pkgFiles.includes(file))) {\n const { update } = await prompts({\n type: 'confirm',\n name: 'update',\n message: `Your package.json already has a 'files' field.\\n Do you want to update it?`,\n initial: true,\n });\n\n if (update) {\n pkg.files = [\n ...files,\n ...pkg.files.filter((file: string) => !files.includes(file)),\n ];\n }\n }\n } else {\n pkg.files = files;\n }\n\n pkg[name] = {\n source,\n output,\n targets: targets.map((t: string) => {\n if (t === target && flow) {\n return [t, { copyFlow: true }];\n }\n\n if (t === 'commonjs' || t === 'module') {\n return [t, { esm }];\n }\n\n return t;\n }),\n };\n\n if (pkg.jest) {\n const entry = `<rootDir>/${output}/`;\n\n if (pkg.jest.modulePathIgnorePatterns) {\n const { modulePathIgnorePatterns } = pkg.jest;\n\n if (!modulePathIgnorePatterns.includes(entry)) {\n modulePathIgnorePatterns.push(entry);\n }\n } else {\n pkg.jest.modulePathIgnorePatterns = [entry];\n }\n }\n\n pkg.eslintIgnore = pkg.eslintIgnore || ['node_modules/'];\n\n if (!pkg.eslintIgnore.includes(`${output}/`)) {\n pkg.eslintIgnore.push(`${output}/`);\n }\n\n await fs.writeJSON(projectPackagePath, pkg, {\n spaces: 2,\n });\n\n const ignorefiles = [\n path.join(root, '.gitignore'),\n path.join(root, '.eslintignore'),\n ];\n\n for (const ignorefile of ignorefiles) {\n if (await fs.pathExists(ignorefile)) {\n const content = await fs.readFile(ignorefile, 'utf-8');\n\n if (!content.split('\\n').includes(`${output}/`)) {\n await fs.writeFile(\n ignorefile,\n `${content}\\n# generated by bob\\n${output}/\\n`\n );\n }\n }\n }\n\n const packageManager = (await fs.pathExists(path.join(root, 'yarn.lock')))\n ? 'yarn'\n : 'npm';\n\n process.stdout.write(\n dedent(`\n Project ${kleur.yellow(pkg.name)} configured successfully!\n\n ${kleur.magenta(\n `${kleur.bold('Perform last steps')} by running`\n )}${kleur.gray(':')}\n\n ${kleur.gray('$')} ${packageManager} install\n\n ${kleur.yellow('Good luck!')}\n `)\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -30,8 +30,7 @@ async function build({
|
|
|
30
30
|
}
|
|
31
31
|
const codegenType = packageJson.codegenConfig?.type;
|
|
32
32
|
if (codegenType === undefined) {
|
|
33
|
-
|
|
34
|
-
process.exit(1);
|
|
33
|
+
throw new Error("Couldn't find the 'type' value in 'codegenConfig'. Please check your package.json's 'codegenConfig' property and make sure 'type' is defined. https://reactnative.dev/docs/the-new-architecture/using-codegen#configuring-codegen");
|
|
35
34
|
}
|
|
36
35
|
try {
|
|
37
36
|
await (0, _runRNCCli.runRNCCli)(['codegen']);
|
|
@@ -43,20 +42,14 @@ async function build({
|
|
|
43
42
|
} catch (e) {
|
|
44
43
|
if (e != null && typeof e === 'object') {
|
|
45
44
|
if ('stdout' in e && e.stdout != null) {
|
|
46
|
-
|
|
45
|
+
throw new Error(`Errors found while generating codegen files:\n${e.stdout.toString()}`);
|
|
47
46
|
} else if ('message' in e && typeof e.message === 'string') {
|
|
48
47
|
if (e.message.includes("Error: Cannot find module '@react-native-community/cli/package.json'")) {
|
|
49
|
-
|
|
50
|
-
} else {
|
|
51
|
-
report.error(e.message);
|
|
48
|
+
throw new Error("You don't have `@react-native-community/cli` in your root package's dev dependencies. Please install it and make sure it uses the same version as your application.");
|
|
52
49
|
}
|
|
53
|
-
} else {
|
|
54
|
-
throw e;
|
|
55
50
|
}
|
|
56
|
-
} else {
|
|
57
|
-
throw e;
|
|
58
51
|
}
|
|
59
|
-
|
|
52
|
+
throw e;
|
|
60
53
|
}
|
|
61
54
|
}
|
|
62
55
|
//# sourceMappingURL=index.js.map
|