react-native-builder-bob 0.21.3 → 0.23.0

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.
@@ -4,26 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = build;
7
-
8
7
  var _kleur = _interopRequireDefault(require("kleur"));
9
-
10
8
  var _path = _interopRequireDefault(require("path"));
11
-
12
9
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
13
-
14
10
  var _which = _interopRequireDefault(require("which"));
15
-
16
11
  var _crossSpawn = _interopRequireDefault(require("cross-spawn"));
17
-
18
12
  var _del = _interopRequireDefault(require("del"));
19
-
20
13
  var _json = _interopRequireDefault(require("json5"));
21
-
22
14
  var _os = require("os");
23
-
24
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
-
26
16
  async function build({
17
+ source,
27
18
  root,
28
19
  output,
29
20
  report,
@@ -32,34 +23,26 @@ async function build({
32
23
  report.info(`Cleaning up previous build at ${_kleur.default.blue(_path.default.relative(root, output))}`);
33
24
  await (0, _del.default)([output]);
34
25
  report.info(`Generating type definitions with ${_kleur.default.blue('tsc')}`);
35
- const project = options !== null && options !== void 0 && options.project ? options.project : 'tsconfig.json';
36
-
26
+ const project = options?.project ? options.project : 'tsconfig.json';
37
27
  const tsconfig = _path.default.join(root, project);
38
-
39
28
  try {
40
29
  if (await _fsExtra.default.pathExists(tsconfig)) {
41
30
  try {
42
31
  const config = _json.default.parse(await _fsExtra.default.readFile(tsconfig, 'utf-8'));
43
-
44
32
  if (config.compilerOptions) {
45
33
  const conflicts = [];
46
-
47
34
  if (config.compilerOptions.noEmit !== undefined) {
48
35
  conflicts.push('compilerOptions.noEmit');
49
36
  }
50
-
51
37
  if (config.compilerOptions.emitDeclarationOnly !== undefined) {
52
38
  conflicts.push('compilerOptions.emitDeclarationOnly');
53
39
  }
54
-
55
40
  if (config.compilerOptions.declarationDir) {
56
41
  conflicts.push('compilerOptions.declarationDir');
57
42
  }
58
-
59
43
  if (config.compilerOptions.outDir && _path.default.join(root, config.compilerOptions.outDir) !== output) {
60
44
  conflicts.push('compilerOptions.outDir');
61
45
  }
62
-
63
46
  if (conflicts.length) {
64
47
  report.warn(`Found following options in the config file which can conflict with the CLI options. Please remove them from ${_kleur.default.blue(project)}:${conflicts.reduce((acc, curr) => acc + `\n${_kleur.default.gray('-')} ${_kleur.default.yellow(curr)}`, '')}`);
65
48
  }
@@ -70,94 +53,81 @@ async function build({
70
53
  } else {
71
54
  throw new Error(`Couldn't find a ${_kleur.default.blue('tsconfig.json')} in the project root.`);
72
55
  }
73
-
74
56
  let tsc;
75
-
76
- if (options !== null && options !== void 0 && options.tsc) {
57
+ if (options?.tsc) {
77
58
  tsc = _path.default.resolve(root, options.tsc);
78
-
79
59
  if (!(await _fsExtra.default.pathExists(tsc))) {
80
60
  throw new Error(`The ${_kleur.default.blue('tsc')} binary doesn't seem to be installed at ${_kleur.default.blue(tsc)}. Please specify the correct path in options or remove it to use the workspace's version.`);
81
61
  }
82
62
  } else {
83
- var _execpath$split$pop;
84
-
85
63
  const execpath = process.env.npm_execpath;
86
- const cli = execpath !== null && execpath !== void 0 && (_execpath$split$pop = execpath.split('/').pop()) !== null && _execpath$split$pop !== void 0 && _execpath$split$pop.includes('yarn') ? 'yarn' : 'npm';
87
-
88
- try {
89
- if (cli === 'yarn') {
90
- const result = _crossSpawn.default.sync('yarn', ['bin', 'tsc'], {
91
- stdio: 'pipe',
92
- encoding: 'utf-8',
93
- cwd: root
94
- });
95
-
96
- tsc = result.stdout.trim();
97
- } else {
98
- const result = _crossSpawn.default.sync('npm', ['bin'], {
99
- stdio: 'pipe',
100
- encoding: 'utf-8',
101
- cwd: root
102
- });
103
-
104
- tsc = _path.default.resolve(result.stdout.trim(), 'tsc');
105
- }
106
- } catch (e) {
64
+ const cli = execpath?.split('/').pop()?.includes('yarn') ? 'yarn' : 'npm';
65
+ if (cli === 'yarn') {
66
+ const result = _crossSpawn.default.sync('yarn', ['bin', 'tsc'], {
67
+ stdio: 'pipe',
68
+ encoding: 'utf-8',
69
+ cwd: root
70
+ });
71
+ tsc = result.stdout.trim();
72
+ } else {
107
73
  tsc = _path.default.resolve(root, 'node_modules', '.bin', 'tsc');
108
74
  }
109
-
110
75
  if ((0, _os.platform)() === 'win32' && !tsc.endsWith('.cmd')) {
111
76
  tsc += '.cmd';
112
77
  }
113
78
  }
114
-
115
79
  if (!(await _fsExtra.default.pathExists(tsc))) {
116
80
  try {
117
81
  tsc = await (0, _which.default)('tsc');
118
-
119
82
  if (await _fsExtra.default.pathExists(tsc)) {
120
- report.warn(`Failed to locate 'tsc' in the workspace. Falling back to the globally installed version. Consider adding ${_kleur.default.blue('typescript')} to your ${_kleur.default.blue('devDependencies')} or specifying the ${_kleur.default.blue('tsc')} option for the typescript target.`);
83
+ report.warn(`Failed to locate ${_kleur.default.blue('tsc')} in the workspace. Falling back to the binary found in ${_kleur.default.blue('PATH')} at ${_kleur.default.blue(tsc)}. Consider adding ${_kleur.default.blue('typescript')} to your ${_kleur.default.blue('devDependencies')} or specifying the ${_kleur.default.blue('tsc')} option for the typescript target.`);
121
84
  }
122
- } catch (e) {// Ignore
85
+ } catch (e) {
86
+ // Ignore
123
87
  }
124
88
  }
125
-
126
89
  if (tsc == null || !(await _fsExtra.default.pathExists(tsc))) {
127
90
  throw new Error(`The ${_kleur.default.blue('tsc')} binary doesn't seem to be installed under ${_kleur.default.blue('node_modules')} or present in $PATH. Make sure you have added ${_kleur.default.blue('typescript')} to your ${_kleur.default.blue('devDependencies')} or specify the ${_kleur.default.blue('tsc')} option for typescript.`);
128
91
  }
129
-
130
92
  const tsbuildinfo = _path.default.join(output, project.replace(/\.json$/, '.tsbuildinfo'));
131
-
132
93
  try {
133
94
  await (0, _del.default)([tsbuildinfo]);
134
- } catch (e) {// Ignore
95
+ } catch (e) {
96
+ // Ignore
135
97
  }
136
-
137
98
  const result = _crossSpawn.default.sync(tsc, ['--pretty', '--declaration', '--declarationMap', '--emitDeclarationOnly', '--project', project, '--outDir', output], {
138
99
  stdio: 'inherit',
139
100
  cwd: root
140
101
  });
141
-
142
102
  if (result.status === 0) {
143
103
  await (0, _del.default)([tsbuildinfo]);
144
104
  report.success(`Wrote definition files to ${_kleur.default.blue(_path.default.relative(root, output))}`);
145
105
  const pkg = JSON.parse(await _fsExtra.default.readFile(_path.default.join(root, 'package.json'), 'utf-8'));
146
-
147
- if ('types' in pkg) {
148
- if (!pkg.types.endsWith('.d.ts')) {
149
- report.error(`The ${_kleur.default.blue('types')} field in ${_kleur.default.blue('package.json')} doesn't point to a definition file. Verify the path points to the correct file under ${_kleur.default.blue(_path.default.relative(root, output))}.`);
150
- throw new Error("Found incorrect path in 'types' field.");
106
+ const getGeneratedTypesPath = async () => {
107
+ if (pkg.source) {
108
+ const indexDTsName = _path.default.basename(pkg.source).replace(/\.(jsx?|tsx?)$/, '') + '.d.ts';
109
+ const potentialPaths = [_path.default.join(output, _path.default.dirname(pkg.source), indexDTsName), _path.default.join(output, _path.default.dirname(_path.default.relative(source, _path.default.join(root, pkg.source))), indexDTsName)];
110
+ for (const potentialPath of potentialPaths) {
111
+ if (await _fsExtra.default.pathExists(potentialPath)) {
112
+ return _path.default.relative(root, potentialPath);
113
+ }
114
+ }
151
115
  }
152
-
116
+ return null;
117
+ };
118
+ if ('types' in pkg) {
153
119
  const typesPath = _path.default.join(root, pkg.types);
154
-
155
120
  if (!(await _fsExtra.default.pathExists(typesPath))) {
156
- report.error(`The ${_kleur.default.blue('types')} field in ${_kleur.default.blue('package.json')} points to a non-existent file: ${_kleur.default.blue(pkg.types)}.\nVerify the path points to the correct file under ${_kleur.default.blue(_path.default.relative(root, output))}.`);
121
+ const generatedTypesPath = await getGeneratedTypesPath();
122
+ if (!generatedTypesPath) {
123
+ report.warn(`Failed to detect the entry point for the generated types. Make sure you have a valid ${_kleur.default.blue('source')} field in your ${_kleur.default.blue('package.json')}.`);
124
+ }
125
+ report.error(`The ${_kleur.default.blue('types')} field in ${_kleur.default.blue('package.json')} points to a non-existent file: ${_kleur.default.blue(pkg.types)}.\nVerify the path points to the correct file under ${_kleur.default.blue(_path.default.relative(root, output))}${generatedTypesPath ? ` (found ${_kleur.default.blue(generatedTypesPath)}).` : '.'}`);
157
126
  throw new Error("Found incorrect path in 'types' field.");
158
127
  }
159
128
  } else {
160
- report.warn(`No ${_kleur.default.blue('types')} field found in ${_kleur.default.blue('package.json')}.\nConsider adding it so consumers can use the types.`);
129
+ const generatedTypesPath = await getGeneratedTypesPath();
130
+ report.warn(`No ${_kleur.default.blue('types')} field found in ${_kleur.default.blue('package.json')}.\nConsider ${generatedTypesPath ? `pointing it to ${_kleur.default.blue(generatedTypesPath)}` : 'adding it'} so that consumers of your package can use the types.`);
161
131
  }
162
132
  } else {
163
133
  throw new Error('Failed to build definition files.');
@@ -174,7 +144,6 @@ async function build({
174
144
  } else {
175
145
  throw e;
176
146
  }
177
-
178
147
  throw new Error('Failed to build definition files.');
179
148
  }
180
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.js","names":["build","root","output","report","options","info","kleur","blue","path","relative","del","project","tsconfig","join","fs","pathExists","config","JSON5","parse","readFile","compilerOptions","conflicts","noEmit","undefined","push","emitDeclarationOnly","declarationDir","outDir","length","warn","reduce","acc","curr","gray","yellow","e","Error","tsc","resolve","execpath","process","env","npm_execpath","cli","split","pop","includes","result","spawn","sync","stdio","encoding","cwd","stdout","trim","platform","endsWith","which","tsbuildinfo","replace","status","success","pkg","JSON","types","error","typesPath","toString","message"],"sources":["../../src/targets/typescript.ts"],"sourcesContent":["import kleur from 'kleur';\nimport path from 'path';\nimport fs from 'fs-extra';\nimport which from 'which';\nimport spawn from 'cross-spawn';\nimport del from 'del';\nimport JSON5 from 'json5';\nimport { platform } from 'os';\nimport type { Input } from '../types';\n\ntype Options = Input & {\n options?: { project?: string; tsc?: string };\n};\n\nexport default async function build({\n root,\n output,\n report,\n options,\n}: Options) {\n report.info(\n `Cleaning up previous build at ${kleur.blue(path.relative(root, output))}`\n );\n\n await del([output]);\n\n report.info(`Generating type definitions with ${kleur.blue('tsc')}`);\n\n const project = options?.project ? options.project : 'tsconfig.json';\n const tsconfig = path.join(root, project);\n\n try {\n if (await fs.pathExists(tsconfig)) {\n try {\n const config = JSON5.parse(await fs.readFile(tsconfig, 'utf-8'));\n\n if (config.compilerOptions) {\n const conflicts: string[] = [];\n\n if (config.compilerOptions.noEmit !== undefined) {\n conflicts.push('compilerOptions.noEmit');\n }\n\n if (config.compilerOptions.emitDeclarationOnly !== undefined) {\n conflicts.push('compilerOptions.emitDeclarationOnly');\n }\n\n if (config.compilerOptions.declarationDir) {\n conflicts.push('compilerOptions.declarationDir');\n }\n\n if (\n config.compilerOptions.outDir &&\n path.join(root, config.compilerOptions.outDir) !== output\n ) {\n conflicts.push('compilerOptions.outDir');\n }\n\n if (conflicts.length) {\n report.warn(\n `Found following options in the config file which can conflict with the CLI options. Please remove them from ${kleur.blue(\n project\n )}:${conflicts.reduce(\n (acc, curr) =>\n acc + `\\n${kleur.gray('-')} ${kleur.yellow(curr)}`,\n ''\n )}`\n );\n }\n }\n } catch (e) {\n report.warn(\n `Couldn't parse '${project}'. There might be validation errors.`\n );\n }\n } else {\n throw new Error(\n `Couldn't find a ${kleur.blue('tsconfig.json')} in the project root.`\n );\n }\n\n let tsc;\n\n if (options?.tsc) {\n tsc = path.resolve(root, options.tsc);\n\n if (!(await fs.pathExists(tsc))) {\n throw new Error(\n `The ${kleur.blue(\n 'tsc'\n )} binary doesn't seem to be installed at ${kleur.blue(\n tsc\n )}. Please specify the correct path in options or remove it to use the workspace's version.`\n );\n }\n } else {\n const execpath = process.env.npm_execpath;\n const cli = execpath?.split('/').pop()?.includes('yarn') ? 'yarn' : 'npm';\n\n try {\n if (cli === 'yarn') {\n const result = spawn.sync('yarn', ['bin', 'tsc'], {\n stdio: 'pipe',\n encoding: 'utf-8',\n cwd: root,\n });\n\n tsc = result.stdout.trim();\n } else {\n const result = spawn.sync('npm', ['bin'], {\n stdio: 'pipe',\n encoding: 'utf-8',\n cwd: root,\n });\n\n tsc = path.resolve(result.stdout.trim(), 'tsc');\n }\n } catch (e) {\n tsc = path.resolve(root, 'node_modules', '.bin', 'tsc');\n }\n\n if (platform() === 'win32' && !tsc.endsWith('.cmd')) {\n tsc += '.cmd';\n }\n }\n\n if (!(await fs.pathExists(tsc))) {\n try {\n tsc = await which('tsc');\n\n if (await fs.pathExists(tsc)) {\n report.warn(\n `Failed to locate 'tsc' in the workspace. Falling back to the globally installed version. Consider adding ${kleur.blue(\n 'typescript'\n )} to your ${kleur.blue(\n 'devDependencies'\n )} or specifying the ${kleur.blue(\n 'tsc'\n )} option for the typescript target.`\n );\n }\n } catch (e) {\n // Ignore\n }\n }\n\n if (tsc == null || !(await fs.pathExists(tsc))) {\n throw new Error(\n `The ${kleur.blue(\n 'tsc'\n )} binary doesn't seem to be installed under ${kleur.blue(\n 'node_modules'\n )} or present in $PATH. Make sure you have added ${kleur.blue(\n 'typescript'\n )} to your ${kleur.blue('devDependencies')} or specify the ${kleur.blue(\n 'tsc'\n )} option for typescript.`\n );\n }\n\n const tsbuildinfo = path.join(\n output,\n project.replace(/\\.json$/, '.tsbuildinfo')\n );\n\n try {\n await del([tsbuildinfo]);\n } catch (e) {\n // Ignore\n }\n\n const result = spawn.sync(\n tsc,\n [\n '--pretty',\n '--declaration',\n '--declarationMap',\n '--emitDeclarationOnly',\n '--project',\n project,\n '--outDir',\n output,\n ],\n {\n stdio: 'inherit',\n cwd: root,\n }\n );\n\n if (result.status === 0) {\n await del([tsbuildinfo]);\n\n report.success(\n `Wrote definition files to ${kleur.blue(path.relative(root, output))}`\n );\n\n const pkg = JSON.parse(\n await fs.readFile(path.join(root, 'package.json'), 'utf-8')\n );\n\n if ('types' in pkg) {\n if (!pkg.types.endsWith('.d.ts')) {\n report.error(\n `The ${kleur.blue('types')} field in ${kleur.blue(\n 'package.json'\n )} doesn't point to a definition file. Verify the path points to the correct file under ${kleur.blue(\n path.relative(root, output)\n )}.`\n );\n\n throw new Error(\"Found incorrect path in 'types' field.\");\n }\n\n const typesPath = path.join(root, pkg.types);\n\n if (!(await fs.pathExists(typesPath))) {\n report.error(\n `The ${kleur.blue('types')} field in ${kleur.blue(\n 'package.json'\n )} points to a non-existent file: ${kleur.blue(\n pkg.types\n )}.\\nVerify the path points to the correct file under ${kleur.blue(\n path.relative(root, output)\n )}.`\n );\n\n throw new Error(\"Found incorrect path in 'types' field.\");\n }\n } else {\n report.warn(\n `No ${kleur.blue('types')} field found in ${kleur.blue(\n 'package.json'\n )}.\\nConsider adding it so consumers can use the types.`\n );\n }\n } else {\n throw new Error('Failed to build definition files.');\n }\n } catch (e: unknown) {\n if (e != null && typeof e === 'object') {\n if ('stdout' in e && e.stdout != null) {\n report.error(\n `Errors found when building definition files:\\n${e.stdout.toString()}`\n );\n } else if ('message' in e && typeof e.message === 'string') {\n report.error(e.message);\n } else {\n throw e;\n }\n } else {\n throw e;\n }\n\n throw new Error('Failed to build definition files.');\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"typescript.js","names":["_kleur","_interopRequireDefault","require","_path","_fsExtra","_which","_crossSpawn","_del","_json","_os","obj","__esModule","default","build","source","root","output","report","options","info","kleur","blue","path","relative","del","project","tsconfig","join","fs","pathExists","config","JSON5","parse","readFile","compilerOptions","conflicts","noEmit","undefined","push","emitDeclarationOnly","declarationDir","outDir","length","warn","reduce","acc","curr","gray","yellow","e","Error","tsc","resolve","execpath","process","env","npm_execpath","cli","split","pop","includes","result","spawn","sync","stdio","encoding","cwd","stdout","trim","platform","endsWith","which","tsbuildinfo","replace","status","success","pkg","JSON","getGeneratedTypesPath","indexDTsName","basename","potentialPaths","dirname","potentialPath","typesPath","types","generatedTypesPath","error","toString","message"],"sources":["../../src/targets/typescript.ts"],"sourcesContent":["import kleur from 'kleur';\nimport path from 'path';\nimport fs from 'fs-extra';\nimport which from 'which';\nimport spawn from 'cross-spawn';\nimport del from 'del';\nimport JSON5 from 'json5';\nimport { platform } from 'os';\nimport type { Input } from '../types';\n\ntype Options = Input & {\n options?: { project?: string; tsc?: string };\n};\n\nexport default async function build({\n source,\n root,\n output,\n report,\n options,\n}: Options) {\n report.info(\n `Cleaning up previous build at ${kleur.blue(path.relative(root, output))}`\n );\n\n await del([output]);\n\n report.info(`Generating type definitions with ${kleur.blue('tsc')}`);\n\n const project = options?.project ? options.project : 'tsconfig.json';\n const tsconfig = path.join(root, project);\n\n try {\n if (await fs.pathExists(tsconfig)) {\n try {\n const config = JSON5.parse(await fs.readFile(tsconfig, 'utf-8'));\n\n if (config.compilerOptions) {\n const conflicts: string[] = [];\n\n if (config.compilerOptions.noEmit !== undefined) {\n conflicts.push('compilerOptions.noEmit');\n }\n\n if (config.compilerOptions.emitDeclarationOnly !== undefined) {\n conflicts.push('compilerOptions.emitDeclarationOnly');\n }\n\n if (config.compilerOptions.declarationDir) {\n conflicts.push('compilerOptions.declarationDir');\n }\n\n if (\n config.compilerOptions.outDir &&\n path.join(root, config.compilerOptions.outDir) !== output\n ) {\n conflicts.push('compilerOptions.outDir');\n }\n\n if (conflicts.length) {\n report.warn(\n `Found following options in the config file which can conflict with the CLI options. Please remove them from ${kleur.blue(\n project\n )}:${conflicts.reduce(\n (acc, curr) =>\n acc + `\\n${kleur.gray('-')} ${kleur.yellow(curr)}`,\n ''\n )}`\n );\n }\n }\n } catch (e) {\n report.warn(\n `Couldn't parse '${project}'. There might be validation errors.`\n );\n }\n } else {\n throw new Error(\n `Couldn't find a ${kleur.blue('tsconfig.json')} in the project root.`\n );\n }\n\n let tsc;\n\n if (options?.tsc) {\n tsc = path.resolve(root, options.tsc);\n\n if (!(await fs.pathExists(tsc))) {\n throw new Error(\n `The ${kleur.blue(\n 'tsc'\n )} binary doesn't seem to be installed at ${kleur.blue(\n tsc\n )}. Please specify the correct path in options or remove it to use the workspace's version.`\n );\n }\n } else {\n const execpath = process.env.npm_execpath;\n const cli = execpath?.split('/').pop()?.includes('yarn') ? 'yarn' : 'npm';\n\n if (cli === 'yarn') {\n const result = spawn.sync('yarn', ['bin', 'tsc'], {\n stdio: 'pipe',\n encoding: 'utf-8',\n cwd: root,\n });\n\n tsc = result.stdout.trim();\n } else {\n tsc = path.resolve(root, 'node_modules', '.bin', 'tsc');\n }\n\n if (platform() === 'win32' && !tsc.endsWith('.cmd')) {\n tsc += '.cmd';\n }\n }\n\n if (!(await fs.pathExists(tsc))) {\n try {\n tsc = await which('tsc');\n\n if (await fs.pathExists(tsc)) {\n report.warn(\n `Failed to locate ${kleur.blue(\n 'tsc'\n )} in the workspace. Falling back to the binary found in ${kleur.blue(\n 'PATH'\n )} at ${kleur.blue(tsc)}. Consider adding ${kleur.blue(\n 'typescript'\n )} to your ${kleur.blue(\n 'devDependencies'\n )} or specifying the ${kleur.blue(\n 'tsc'\n )} option for the typescript target.`\n );\n }\n } catch (e) {\n // Ignore\n }\n }\n\n if (tsc == null || !(await fs.pathExists(tsc))) {\n throw new Error(\n `The ${kleur.blue(\n 'tsc'\n )} binary doesn't seem to be installed under ${kleur.blue(\n 'node_modules'\n )} or present in $PATH. Make sure you have added ${kleur.blue(\n 'typescript'\n )} to your ${kleur.blue('devDependencies')} or specify the ${kleur.blue(\n 'tsc'\n )} option for typescript.`\n );\n }\n\n const tsbuildinfo = path.join(\n output,\n project.replace(/\\.json$/, '.tsbuildinfo')\n );\n\n try {\n await del([tsbuildinfo]);\n } catch (e) {\n // Ignore\n }\n\n const result = spawn.sync(\n tsc,\n [\n '--pretty',\n '--declaration',\n '--declarationMap',\n '--emitDeclarationOnly',\n '--project',\n project,\n '--outDir',\n output,\n ],\n {\n stdio: 'inherit',\n cwd: root,\n }\n );\n\n if (result.status === 0) {\n await del([tsbuildinfo]);\n\n report.success(\n `Wrote definition files to ${kleur.blue(path.relative(root, output))}`\n );\n\n const pkg = JSON.parse(\n await fs.readFile(path.join(root, 'package.json'), 'utf-8')\n );\n\n const getGeneratedTypesPath = async () => {\n if (pkg.source) {\n const indexDTsName =\n path.basename(pkg.source).replace(/\\.(jsx?|tsx?)$/, '') + '.d.ts';\n\n const potentialPaths = [\n path.join(output, path.dirname(pkg.source), indexDTsName),\n path.join(\n output,\n path.dirname(path.relative(source, path.join(root, pkg.source))),\n indexDTsName\n ),\n ];\n\n for (const potentialPath of potentialPaths) {\n if (await fs.pathExists(potentialPath)) {\n return path.relative(root, potentialPath);\n }\n }\n }\n\n return null;\n };\n\n if ('types' in pkg) {\n const typesPath = path.join(root, pkg.types);\n\n if (!(await fs.pathExists(typesPath))) {\n const generatedTypesPath = await getGeneratedTypesPath();\n\n if (!generatedTypesPath) {\n report.warn(\n `Failed to detect the entry point for the generated types. Make sure you have a valid ${kleur.blue(\n 'source'\n )} field in your ${kleur.blue('package.json')}.`\n );\n }\n\n report.error(\n `The ${kleur.blue('types')} field in ${kleur.blue(\n 'package.json'\n )} points to a non-existent file: ${kleur.blue(\n pkg.types\n )}.\\nVerify the path points to the correct file under ${kleur.blue(\n path.relative(root, output)\n )}${\n generatedTypesPath\n ? ` (found ${kleur.blue(generatedTypesPath)}).`\n : '.'\n }`\n );\n\n throw new Error(\"Found incorrect path in 'types' field.\");\n }\n } else {\n const generatedTypesPath = await getGeneratedTypesPath();\n\n report.warn(\n `No ${kleur.blue('types')} field found in ${kleur.blue(\n 'package.json'\n )}.\\nConsider ${\n generatedTypesPath\n ? `pointing it to ${kleur.blue(generatedTypesPath)}`\n : 'adding it'\n } so that consumers of your package can use the types.`\n );\n }\n } else {\n throw new Error('Failed to build definition files.');\n }\n } catch (e: unknown) {\n if (e != null && typeof e === 'object') {\n if ('stdout' in e && e.stdout != null) {\n report.error(\n `Errors found when building definition files:\\n${e.stdout.toString()}`\n );\n } else if ('message' in e && typeof e.message === 'string') {\n report.error(e.message);\n } else {\n throw e;\n }\n } else {\n throw e;\n }\n\n throw new Error('Failed to build definition files.');\n }\n}\n"],"mappings":"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"}
package/lib/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../src/types.ts"],"sourcesContent":["export type Log = (message: string) => void;\nexport type Report = {\n info: Log;\n warn: Log;\n success: Log;\n error: Log;\n};\n\nexport type Input = {\n root: string;\n source: string;\n output: string;\n report: Report;\n};\n\nexport type Target = 'aar' | 'commonjs' | 'module' | 'typescript';\n\nexport type Options = {\n source?: string;\n output?: string;\n targets?: (Target | [Target, object])[];\n};\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../src/types.ts"],"sourcesContent":["export type Log = (message: string) => void;\nexport type Report = {\n info: Log;\n warn: Log;\n success: Log;\n error: Log;\n};\n\nexport type Input = {\n root: string;\n source: string;\n output: string;\n report: Report;\n};\n\nexport type Target = 'commonjs' | 'module' | 'typescript';\n\nexport type Options = {\n source?: string;\n output?: string;\n targets?: (Target | [Target, object])[];\n exclude?: string;\n};\n"],"mappings":""}
@@ -4,29 +4,20 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = androidAssemble;
7
-
8
7
  var _path = _interopRequireDefault(require("path"));
9
-
10
8
  var _kleur = _interopRequireDefault(require("kleur"));
11
-
12
9
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
13
-
14
10
  var _child_process = require("child_process");
15
-
16
11
  var _os = require("os");
17
-
18
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
13
  async function androidAssemble({
21
14
  root,
22
15
  androidPath,
23
16
  report
24
17
  }) {
25
18
  const cwd = _path.default.relative(root, androidPath);
26
-
27
19
  report.info(`Assembling Android project in ${_kleur.default.blue(cwd)} with ${_kleur.default.blue('gradle')}`);
28
20
  const gradleWrapper = (0, _os.platform)() === 'win32' ? 'gradlew.bat' : './gradlew';
29
-
30
21
  if (await _fsExtra.default.pathExists(_path.default.join(androidPath, gradleWrapper))) {
31
22
  (0, _child_process.execFileSync)(gradleWrapper, ['assemble'], {
32
23
  cwd: androidPath
@@ -1 +1 @@
1
- {"version":3,"file":"androidAssemble.js","names":["androidAssemble","root","androidPath","report","cwd","path","relative","info","kleur","blue","gradleWrapper","platform","fs","pathExists","join","execFileSync","Error"],"sources":["../../src/utils/androidAssemble.ts"],"sourcesContent":["import path from 'path';\nimport kleur from 'kleur';\nimport fs from 'fs-extra';\nimport { execFileSync } from 'child_process';\nimport { platform } from 'os';\nimport type { Report } from '../types';\n\ntype Options = {\n root: string;\n androidPath: string;\n report: Report;\n};\n\nexport default async function androidAssemble({\n root,\n androidPath,\n report,\n}: Options) {\n const cwd = path.relative(root, androidPath);\n\n report.info(\n `Assembling Android project in ${kleur.blue(cwd)} with ${kleur.blue(\n 'gradle'\n )}`\n );\n\n const gradleWrapper = platform() === 'win32' ? 'gradlew.bat' : './gradlew';\n if (await fs.pathExists(path.join(androidPath, gradleWrapper))) {\n execFileSync(gradleWrapper, ['assemble'], { cwd: androidPath });\n } else {\n throw new Error(\n `The ${kleur.blue(\n 'gradlew'\n )} script doesn't seem to present in ${kleur.blue(\n androidPath\n )}. Make sure you have added it by running ${kleur.blue(\n 'gradle wrapper'\n )} in that directory.`\n );\n }\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;AASe,eAAeA,eAAf,CAA+B;EAC5CC,IAD4C;EAE5CC,WAF4C;EAG5CC;AAH4C,CAA/B,EAIH;EACV,MAAMC,GAAG,GAAGC,aAAA,CAAKC,QAAL,CAAcL,IAAd,EAAoBC,WAApB,CAAZ;;EAEAC,MAAM,CAACI,IAAP,CACG,iCAAgCC,cAAA,CAAMC,IAAN,CAAWL,GAAX,CAAgB,SAAQI,cAAA,CAAMC,IAAN,CACvD,QADuD,CAEvD,EAHJ;EAMA,MAAMC,aAAa,GAAG,IAAAC,YAAA,QAAe,OAAf,GAAyB,aAAzB,GAAyC,WAA/D;;EACA,IAAI,MAAMC,gBAAA,CAAGC,UAAH,CAAcR,aAAA,CAAKS,IAAL,CAAUZ,WAAV,EAAuBQ,aAAvB,CAAd,CAAV,EAAgE;IAC9D,IAAAK,2BAAA,EAAaL,aAAb,EAA4B,CAAC,UAAD,CAA5B,EAA0C;MAAEN,GAAG,EAAEF;IAAP,CAA1C;EACD,CAFD,MAEO;IACL,MAAM,IAAIc,KAAJ,CACH,OAAMR,cAAA,CAAMC,IAAN,CACL,SADK,CAEL,sCAAqCD,cAAA,CAAMC,IAAN,CACrCP,WADqC,CAErC,4CAA2CM,cAAA,CAAMC,IAAN,CAC3C,gBAD2C,CAE3C,qBAPE,CAAN;EASD;AACF"}
1
+ {"version":3,"file":"androidAssemble.js","names":["_path","_interopRequireDefault","require","_kleur","_fsExtra","_child_process","_os","obj","__esModule","default","androidAssemble","root","androidPath","report","cwd","path","relative","info","kleur","blue","gradleWrapper","platform","fs","pathExists","join","execFileSync","Error"],"sources":["../../src/utils/androidAssemble.ts"],"sourcesContent":["import path from 'path';\nimport kleur from 'kleur';\nimport fs from 'fs-extra';\nimport { execFileSync } from 'child_process';\nimport { platform } from 'os';\nimport type { Report } from '../types';\n\ntype Options = {\n root: string;\n androidPath: string;\n report: Report;\n};\n\nexport default async function androidAssemble({\n root,\n androidPath,\n report,\n}: Options) {\n const cwd = path.relative(root, androidPath);\n\n report.info(\n `Assembling Android project in ${kleur.blue(cwd)} with ${kleur.blue(\n 'gradle'\n )}`\n );\n\n const gradleWrapper = platform() === 'win32' ? 'gradlew.bat' : './gradlew';\n if (await fs.pathExists(path.join(androidPath, gradleWrapper))) {\n execFileSync(gradleWrapper, ['assemble'], { cwd: androidPath });\n } else {\n throw new Error(\n `The ${kleur.blue(\n 'gradlew'\n )} script doesn't seem to present in ${kleur.blue(\n androidPath\n )}. Make sure you have added it by running ${kleur.blue(\n 'gradle wrapper'\n )} in that directory.`\n );\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,QAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,GAAA,GAAAJ,OAAA;AAA8B,SAAAD,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AASf,eAAeG,eAAeA,CAAC;EAC5CC,IAAI;EACJC,WAAW;EACXC;AACO,CAAC,EAAE;EACV,MAAMC,GAAG,GAAGC,aAAI,CAACC,QAAQ,CAACL,IAAI,EAAEC,WAAW,CAAC;EAE5CC,MAAM,CAACI,IAAI,CACR,iCAAgCC,cAAK,CAACC,IAAI,CAACL,GAAG,CAAE,SAAQI,cAAK,CAACC,IAAI,CACjE,QACF,CAAE,EACJ,CAAC;EAED,MAAMC,aAAa,GAAG,IAAAC,YAAQ,EAAC,CAAC,KAAK,OAAO,GAAG,aAAa,GAAG,WAAW;EAC1E,IAAI,MAAMC,gBAAE,CAACC,UAAU,CAACR,aAAI,CAACS,IAAI,CAACZ,WAAW,EAAEQ,aAAa,CAAC,CAAC,EAAE;IAC9D,IAAAK,2BAAY,EAACL,aAAa,EAAE,CAAC,UAAU,CAAC,EAAE;MAAEN,GAAG,EAAEF;IAAY,CAAC,CAAC;EACjE,CAAC,MAAM;IACL,MAAM,IAAIc,KAAK,CACZ,OAAMR,cAAK,CAACC,IAAI,CACf,SACF,CAAE,sCAAqCD,cAAK,CAACC,IAAI,CAC/CP,WACF,CAAE,4CAA2CM,cAAK,CAACC,IAAI,CACrD,gBACF,CAAE,qBACJ,CAAC;EACH;AACF"}
@@ -4,31 +4,22 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = compile;
7
-
8
7
  var _path = _interopRequireDefault(require("path"));
9
-
10
8
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
11
-
12
9
  var _kleur = _interopRequireDefault(require("kleur"));
13
-
14
10
  var babel = _interopRequireWildcard(require("@babel/core"));
15
-
16
11
  var _browserslist = _interopRequireDefault(require("browserslist"));
17
-
18
12
  var _glob = _interopRequireDefault(require("glob"));
19
-
20
13
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
-
22
14
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
-
24
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
-
26
16
  async function compile({
27
17
  root,
28
18
  source,
29
19
  output,
30
20
  babelrc = false,
31
21
  configFile = false,
22
+ exclude,
32
23
  modules,
33
24
  copyFlow,
34
25
  sourceMaps = true,
@@ -39,30 +30,23 @@ async function compile({
39
30
  cwd: source,
40
31
  absolute: true,
41
32
  nodir: true,
42
- ignore: '**/{__tests__,__fixtures__,__mocks__}/**'
33
+ ignore: exclude
43
34
  });
44
-
45
35
  report.info(`Compiling ${_kleur.default.blue(String(files.length))} files in ${_kleur.default.blue(_path.default.relative(root, source))} with ${_kleur.default.blue('babel')}`);
46
36
  const pkg = JSON.parse(await _fsExtra.default.readFile(_path.default.join(root, 'package.json'), 'utf-8'));
47
-
48
37
  if (copyFlow) {
49
38
  if (!Object.keys(pkg.devDependencies || {}).includes('flow-bin')) {
50
39
  report.warn(`The ${_kleur.default.blue('copyFlow')} option was specified, but couldn't find ${_kleur.default.blue('flow-bin')} in ${_kleur.default.blue('package.json')}.\nIf the project is using ${_kleur.default.blue('flow')}, then make sure you have added ${_kleur.default.blue('flow-bin')} to your ${_kleur.default.blue('devDependencies')}, otherwise remove the ${_kleur.default.blue('copyFlow')} option.`);
51
40
  }
52
41
  }
53
-
54
42
  await Promise.all(files.map(async filepath => {
55
43
  const outputFilename = _path.default.join(output, _path.default.relative(source, filepath)).replace(/\.(jsx?|tsx?)$/, '.js');
56
-
57
44
  await _fsExtra.default.mkdirp(_path.default.dirname(outputFilename));
58
-
59
45
  if (!/\.(jsx?|tsx?)$/.test(filepath)) {
60
46
  // Copy files which aren't source code
61
47
  _fsExtra.default.copy(filepath, outputFilename);
62
-
63
48
  return;
64
49
  }
65
-
66
50
  const content = await _fsExtra.default.readFile(filepath, 'utf-8');
67
51
  const result = await babel.transformAsync(content, {
68
52
  cwd: root,
@@ -76,50 +60,58 @@ async function compile({
76
60
  presets: [[require.resolve('@babel/preset-env'), {
77
61
  targets: _browserslist.default.findConfig(root) ?? {
78
62
  browsers: ['>1%', 'last 2 chrome versions', 'last 2 edge versions', 'last 2 firefox versions', 'last 2 safari versions', 'not dead', 'not ie <= 11', 'not op_mini all', 'not android <= 4.4', 'not samsung <= 4'],
79
- node: '16'
63
+ node: '18'
80
64
  },
81
65
  useBuiltIns: false,
82
66
  modules
83
67
  }], require.resolve('@babel/preset-react'), require.resolve('@babel/preset-typescript'), require.resolve('@babel/preset-flow')]
84
68
  })
85
69
  });
86
-
87
70
  if (result == null) {
88
71
  throw new Error('Output code was null');
89
72
  }
90
-
91
73
  let code = result.code;
92
-
93
74
  if (sourceMaps && result.map) {
94
75
  const mapFilename = outputFilename + '.map';
95
- code += '\n//# sourceMappingURL=' + _path.default.basename(mapFilename); // Don't inline the source code, it can be retrieved from the source file
76
+ code += '\n//# sourceMappingURL=' + _path.default.basename(mapFilename);
96
77
 
78
+ // Don't inline the source code, it can be retrieved from the source file
97
79
  result.map.sourcesContent = undefined;
98
-
99
- _fsExtra.default.writeFileSync(mapFilename, JSON.stringify(result.map));
80
+ await _fsExtra.default.writeJSON(mapFilename, result.map);
100
81
  }
101
-
102
82
  await _fsExtra.default.writeFile(outputFilename, code);
103
-
104
83
  if (copyFlow) {
105
84
  _fsExtra.default.copy(filepath, outputFilename + '.flow');
106
85
  }
107
86
  }));
108
87
  report.success(`Wrote files to ${_kleur.default.blue(_path.default.relative(root, output))}`);
109
-
88
+ const getGeneratedEntryPath = async () => {
89
+ if (pkg.source) {
90
+ const indexName = _path.default.basename(pkg.source).replace(/\.(jsx?|tsx?)$/, '') + '.js';
91
+ const potentialPath = _path.default.join(output, _path.default.dirname(_path.default.relative(source, _path.default.join(root, pkg.source))), indexName);
92
+ if (await _fsExtra.default.pathExists(potentialPath)) {
93
+ return _path.default.relative(root, potentialPath);
94
+ }
95
+ }
96
+ return null;
97
+ };
110
98
  if (field in pkg) {
111
99
  try {
112
100
  require.resolve(_path.default.join(root, pkg[field]));
113
101
  } catch (e) {
114
102
  if (e != null && typeof e === 'object' && 'code' in e && e.code === 'MODULE_NOT_FOUND') {
115
- report.error(`The ${_kleur.default.blue(field)} field in ${_kleur.default.blue('package.json')} points to a non-existent file: ${_kleur.default.blue(pkg[field])}.\nVerify the path points to the correct file under ${_kleur.default.blue(_path.default.relative(root, output))}.`);
103
+ const generatedEntryPath = await getGeneratedEntryPath();
104
+ if (!generatedEntryPath) {
105
+ report.warn(`Failed to detect the entry point for the generated files. Make sure you have a valid ${_kleur.default.blue('source')} field in your ${_kleur.default.blue('package.json')}.`);
106
+ }
107
+ report.error(`The ${_kleur.default.blue(field)} field in ${_kleur.default.blue('package.json')} points to a non-existent file: ${_kleur.default.blue(pkg[field])}.\nVerify the path points to the correct file under ${_kleur.default.blue(_path.default.relative(root, output))}${generatedEntryPath ? ` (found ${_kleur.default.blue(generatedEntryPath)}).` : '.'}`);
116
108
  throw new Error(`Found incorrect path in '${field}' field.`);
117
109
  }
118
-
119
110
  throw e;
120
111
  }
121
112
  } else {
122
- report.warn(`No ${_kleur.default.blue(field)} field found in ${_kleur.default.blue('package.json')}. Add it to your ${_kleur.default.blue('package.json')} so that consumers of your package can use it.`);
113
+ const generatedEntryPath = await getGeneratedEntryPath();
114
+ report.warn(`No ${_kleur.default.blue(field)} field found in ${_kleur.default.blue('package.json')}. Consider ${generatedEntryPath ? `pointing it to ${_kleur.default.blue(generatedEntryPath)}` : 'adding it'} so that consumers of your package can use it.`);
123
115
  }
124
116
  }
125
117
  //# sourceMappingURL=compile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","names":["compile","root","source","output","babelrc","configFile","modules","copyFlow","sourceMaps","report","field","files","glob","sync","cwd","absolute","nodir","ignore","info","kleur","blue","String","length","path","relative","pkg","JSON","parse","fs","readFile","join","Object","keys","devDependencies","includes","warn","Promise","all","map","filepath","outputFilename","replace","mkdirp","dirname","test","copy","content","result","babel","transformAsync","sourceRoot","sourceFileName","filename","presets","require","resolve","targets","browserslist","findConfig","browsers","node","useBuiltIns","Error","code","mapFilename","basename","sourcesContent","undefined","writeFileSync","stringify","writeFile","success","e","error"],"sources":["../../src/utils/compile.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport kleur from 'kleur';\nimport * as babel from '@babel/core';\nimport browserslist from 'browserslist';\nimport glob from 'glob';\nimport type { Input } from '../types';\n\ntype Options = Input & {\n babelrc?: boolean | null;\n configFile?: string | false | null;\n sourceMaps?: boolean;\n copyFlow?: boolean;\n modules: 'commonjs' | false;\n field: 'main' | 'module';\n};\n\nexport default async function compile({\n root,\n source,\n output,\n babelrc = false,\n configFile = false,\n modules,\n copyFlow,\n sourceMaps = true,\n report,\n field,\n}: Options) {\n const files = glob.sync('**/*', {\n cwd: source,\n absolute: true,\n nodir: true,\n ignore: '**/{__tests__,__fixtures__,__mocks__}/**',\n });\n\n report.info(\n `Compiling ${kleur.blue(String(files.length))} files in ${kleur.blue(\n path.relative(root, source)\n )} with ${kleur.blue('babel')}`\n );\n\n const pkg = JSON.parse(\n await fs.readFile(path.join(root, 'package.json'), 'utf-8')\n );\n\n if (copyFlow) {\n if (!Object.keys(pkg.devDependencies || {}).includes('flow-bin')) {\n report.warn(\n `The ${kleur.blue(\n 'copyFlow'\n )} option was specified, but couldn't find ${kleur.blue(\n 'flow-bin'\n )} in ${kleur.blue(\n 'package.json'\n )}.\\nIf the project is using ${kleur.blue(\n 'flow'\n )}, then make sure you have added ${kleur.blue(\n 'flow-bin'\n )} to your ${kleur.blue(\n 'devDependencies'\n )}, otherwise remove the ${kleur.blue('copyFlow')} option.`\n );\n }\n }\n\n await Promise.all(\n files.map(async (filepath) => {\n const outputFilename = path\n .join(output, path.relative(source, filepath))\n .replace(/\\.(jsx?|tsx?)$/, '.js');\n\n await fs.mkdirp(path.dirname(outputFilename));\n\n if (!/\\.(jsx?|tsx?)$/.test(filepath)) {\n // Copy files which aren't source code\n fs.copy(filepath, outputFilename);\n return;\n }\n\n const content = await fs.readFile(filepath, 'utf-8');\n const result = await babel.transformAsync(content, {\n cwd: root,\n babelrc: babelrc,\n configFile: configFile,\n sourceMaps,\n sourceRoot: path.relative(path.dirname(outputFilename), source),\n sourceFileName: path.relative(source, filepath),\n filename: filepath,\n ...(babelrc || configFile\n ? null\n : {\n presets: [\n [\n require.resolve('@babel/preset-env'),\n {\n targets: browserslist.findConfig(root) ?? {\n browsers: [\n '>1%',\n 'last 2 chrome versions',\n 'last 2 edge versions',\n 'last 2 firefox versions',\n 'last 2 safari versions',\n 'not dead',\n 'not ie <= 11',\n 'not op_mini all',\n 'not android <= 4.4',\n 'not samsung <= 4',\n ],\n node: '16',\n },\n useBuiltIns: false,\n modules,\n },\n ],\n require.resolve('@babel/preset-react'),\n require.resolve('@babel/preset-typescript'),\n require.resolve('@babel/preset-flow'),\n ],\n }),\n });\n\n if (result == null) {\n throw new Error('Output code was null');\n }\n\n let code = result.code;\n\n if (sourceMaps && result.map) {\n const mapFilename = outputFilename + '.map';\n\n code += '\\n//# sourceMappingURL=' + path.basename(mapFilename);\n\n // Don't inline the source code, it can be retrieved from the source file\n result.map.sourcesContent = undefined;\n\n fs.writeFileSync(mapFilename, JSON.stringify(result.map));\n }\n\n await fs.writeFile(outputFilename, code);\n\n if (copyFlow) {\n fs.copy(filepath, outputFilename + '.flow');\n }\n })\n );\n\n report.success(`Wrote files to ${kleur.blue(path.relative(root, output))}`);\n\n if (field in pkg) {\n try {\n require.resolve(path.join(root, pkg[field]));\n } catch (e: unknown) {\n if (\n e != null &&\n typeof e === 'object' &&\n 'code' in e &&\n e.code === 'MODULE_NOT_FOUND'\n ) {\n report.error(\n `The ${kleur.blue(field)} field in ${kleur.blue(\n 'package.json'\n )} points to a non-existent file: ${kleur.blue(\n pkg[field]\n )}.\\nVerify the path points to the correct file under ${kleur.blue(\n path.relative(root, output)\n )}.`\n );\n\n throw new Error(`Found incorrect path in '${field}' field.`);\n }\n\n throw e;\n }\n } else {\n report.warn(\n `No ${kleur.blue(field)} field found in ${kleur.blue(\n 'package.json'\n )}. Add it to your ${kleur.blue(\n 'package.json'\n )} so that consumers of your package can use it.`\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"compile.js","names":["_path","_interopRequireDefault","require","_fsExtra","_kleur","babel","_interopRequireWildcard","_browserslist","_glob","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","compile","root","source","output","babelrc","configFile","exclude","modules","copyFlow","sourceMaps","report","field","files","glob","sync","cwd","absolute","nodir","ignore","info","kleur","blue","String","length","path","relative","pkg","JSON","parse","fs","readFile","join","keys","devDependencies","includes","warn","Promise","all","map","filepath","outputFilename","replace","mkdirp","dirname","test","copy","content","result","transformAsync","sourceRoot","sourceFileName","filename","presets","resolve","targets","browserslist","findConfig","browsers","node","useBuiltIns","Error","code","mapFilename","basename","sourcesContent","undefined","writeJSON","writeFile","success","getGeneratedEntryPath","indexName","potentialPath","pathExists","e","generatedEntryPath","error"],"sources":["../../src/utils/compile.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport kleur from 'kleur';\nimport * as babel from '@babel/core';\nimport browserslist from 'browserslist';\nimport glob from 'glob';\nimport type { Input } from '../types';\n\ntype Options = Input & {\n babelrc?: boolean | null;\n configFile?: string | false | null;\n sourceMaps?: boolean;\n copyFlow?: boolean;\n modules: 'commonjs' | false;\n field: 'main' | 'module';\n exclude: string;\n};\n\nexport default async function compile({\n root,\n source,\n output,\n babelrc = false,\n configFile = false,\n exclude,\n modules,\n copyFlow,\n sourceMaps = true,\n report,\n field,\n}: Options) {\n const files = glob.sync('**/*', {\n cwd: source,\n absolute: true,\n nodir: true,\n ignore: exclude,\n });\n\n report.info(\n `Compiling ${kleur.blue(String(files.length))} files in ${kleur.blue(\n path.relative(root, source)\n )} with ${kleur.blue('babel')}`\n );\n\n const pkg = JSON.parse(\n await fs.readFile(path.join(root, 'package.json'), 'utf-8')\n );\n\n if (copyFlow) {\n if (!Object.keys(pkg.devDependencies || {}).includes('flow-bin')) {\n report.warn(\n `The ${kleur.blue(\n 'copyFlow'\n )} option was specified, but couldn't find ${kleur.blue(\n 'flow-bin'\n )} in ${kleur.blue(\n 'package.json'\n )}.\\nIf the project is using ${kleur.blue(\n 'flow'\n )}, then make sure you have added ${kleur.blue(\n 'flow-bin'\n )} to your ${kleur.blue(\n 'devDependencies'\n )}, otherwise remove the ${kleur.blue('copyFlow')} option.`\n );\n }\n }\n\n await Promise.all(\n files.map(async (filepath) => {\n const outputFilename = path\n .join(output, path.relative(source, filepath))\n .replace(/\\.(jsx?|tsx?)$/, '.js');\n\n await fs.mkdirp(path.dirname(outputFilename));\n\n if (!/\\.(jsx?|tsx?)$/.test(filepath)) {\n // Copy files which aren't source code\n fs.copy(filepath, outputFilename);\n return;\n }\n\n const content = await fs.readFile(filepath, 'utf-8');\n const result = await babel.transformAsync(content, {\n cwd: root,\n babelrc: babelrc,\n configFile: configFile,\n sourceMaps,\n sourceRoot: path.relative(path.dirname(outputFilename), source),\n sourceFileName: path.relative(source, filepath),\n filename: filepath,\n ...(babelrc || configFile\n ? null\n : {\n presets: [\n [\n require.resolve('@babel/preset-env'),\n {\n targets: browserslist.findConfig(root) ?? {\n browsers: [\n '>1%',\n 'last 2 chrome versions',\n 'last 2 edge versions',\n 'last 2 firefox versions',\n 'last 2 safari versions',\n 'not dead',\n 'not ie <= 11',\n 'not op_mini all',\n 'not android <= 4.4',\n 'not samsung <= 4',\n ],\n node: '18',\n },\n useBuiltIns: false,\n modules,\n },\n ],\n require.resolve('@babel/preset-react'),\n require.resolve('@babel/preset-typescript'),\n require.resolve('@babel/preset-flow'),\n ],\n }),\n });\n\n if (result == null) {\n throw new Error('Output code was null');\n }\n\n let code = result.code;\n\n if (sourceMaps && result.map) {\n const mapFilename = outputFilename + '.map';\n\n code += '\\n//# sourceMappingURL=' + path.basename(mapFilename);\n\n // Don't inline the source code, it can be retrieved from the source file\n result.map.sourcesContent = undefined;\n\n await fs.writeJSON(mapFilename, result.map);\n }\n\n await fs.writeFile(outputFilename, code);\n\n if (copyFlow) {\n fs.copy(filepath, outputFilename + '.flow');\n }\n })\n );\n\n report.success(`Wrote files to ${kleur.blue(path.relative(root, output))}`);\n\n const getGeneratedEntryPath = async () => {\n if (pkg.source) {\n const indexName =\n path.basename(pkg.source).replace(/\\.(jsx?|tsx?)$/, '') + '.js';\n\n const potentialPath = path.join(\n output,\n path.dirname(path.relative(source, path.join(root, pkg.source))),\n indexName\n );\n\n if (await fs.pathExists(potentialPath)) {\n return path.relative(root, potentialPath);\n }\n }\n\n return null;\n };\n\n if (field in pkg) {\n try {\n require.resolve(path.join(root, pkg[field]));\n } catch (e: unknown) {\n if (\n e != null &&\n typeof e === 'object' &&\n 'code' in e &&\n e.code === 'MODULE_NOT_FOUND'\n ) {\n const generatedEntryPath = await getGeneratedEntryPath();\n\n if (!generatedEntryPath) {\n report.warn(\n `Failed to detect the entry point for the generated files. Make sure you have a valid ${kleur.blue(\n 'source'\n )} field in your ${kleur.blue('package.json')}.`\n );\n }\n\n report.error(\n `The ${kleur.blue(field)} field in ${kleur.blue(\n 'package.json'\n )} points to a non-existent file: ${kleur.blue(\n pkg[field]\n )}.\\nVerify the path points to the correct file under ${kleur.blue(\n path.relative(root, output)\n )}${\n generatedEntryPath\n ? ` (found ${kleur.blue(generatedEntryPath)}).`\n : '.'\n }`\n );\n\n throw new Error(`Found incorrect path in '${field}' field.`);\n }\n\n throw e;\n }\n } else {\n const generatedEntryPath = await getGeneratedEntryPath();\n\n report.warn(\n `No ${kleur.blue(field)} field found in ${kleur.blue(\n 'package.json'\n )}. Consider ${\n generatedEntryPath\n ? `pointing it to ${kleur.blue(generatedEntryPath)}`\n : 'adding it'\n } so that consumers of your package can use it.`\n );\n }\n}\n"],"mappings":"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"}
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.warn = exports.success = exports.info = exports.exit = exports.error = void 0;
7
-
8
7
  var _kleur = _interopRequireDefault(require("kleur"));
9
-
10
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
9
  const logger = (type, color) => (...messages) => {
13
10
  console.log(color(_kleur.default.bold(type)), ...messages.map(message => {
14
11
  if (typeof message === 'string') {
@@ -18,7 +15,6 @@ const logger = (type, color) => (...messages) => {
18
15
  }
19
16
  }));
20
17
  };
21
-
22
18
  const info = logger('ℹ', _kleur.default.blue);
23
19
  exports.info = info;
24
20
  const warn = logger('⚠', _kleur.default.yellow);
@@ -27,11 +23,9 @@ const error = logger('✖', _kleur.default.red);
27
23
  exports.error = error;
28
24
  const success = logger('✔', _kleur.default.green);
29
25
  exports.success = success;
30
-
31
26
  const exit = (...messages) => {
32
27
  error(...messages);
33
28
  process.exit(1);
34
29
  };
35
-
36
30
  exports.exit = exit;
37
31
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","names":["logger","type","color","messages","console","log","kleur","bold","map","message","split","join","info","blue","warn","yellow","error","red","success","green","exit","process"],"sources":["../../src/utils/logger.ts"],"sourcesContent":["import kleur from 'kleur';\n\nconst logger =\n (type: string, color: Function) =>\n (...messages: unknown[]) => {\n console.log(\n color(kleur.bold(type)),\n ...messages.map((message) => {\n if (typeof message === 'string') {\n return message.split('\\n').join(`\\n `);\n } else {\n return message;\n }\n })\n );\n };\n\nexport const info = logger('ℹ', kleur.blue);\nexport const warn = logger('⚠', kleur.yellow);\nexport const error = logger('✖', kleur.red);\nexport const success = logger('✔', kleur.green);\n\nexport const exit = (...messages: unknown[]) => {\n error(...messages);\n process.exit(1);\n};\n"],"mappings":";;;;;;;AAAA;;;;AAEA,MAAMA,MAAM,GACV,CAACC,IAAD,EAAeC,KAAf,KACA,CAAC,GAAGC,QAAJ,KAA4B;EAC1BC,OAAO,CAACC,GAAR,CACEH,KAAK,CAACI,cAAA,CAAMC,IAAN,CAAWN,IAAX,CAAD,CADP,EAEE,GAAGE,QAAQ,CAACK,GAAT,CAAcC,OAAD,IAAa;IAC3B,IAAI,OAAOA,OAAP,KAAmB,QAAvB,EAAiC;MAC/B,OAAOA,OAAO,CAACC,KAAR,CAAc,IAAd,EAAoBC,IAApB,CAA0B,MAA1B,CAAP;IACD,CAFD,MAEO;MACL,OAAOF,OAAP;IACD;EACF,CANE,CAFL;AAUD,CAbH;;AAeO,MAAMG,IAAI,GAAGZ,MAAM,CAAC,GAAD,EAAMM,cAAA,CAAMO,IAAZ,CAAnB;;AACA,MAAMC,IAAI,GAAGd,MAAM,CAAC,GAAD,EAAMM,cAAA,CAAMS,MAAZ,CAAnB;;AACA,MAAMC,KAAK,GAAGhB,MAAM,CAAC,GAAD,EAAMM,cAAA,CAAMW,GAAZ,CAApB;;AACA,MAAMC,OAAO,GAAGlB,MAAM,CAAC,GAAD,EAAMM,cAAA,CAAMa,KAAZ,CAAtB;;;AAEA,MAAMC,IAAI,GAAG,CAAC,GAAGjB,QAAJ,KAA4B;EAC9Ca,KAAK,CAAC,GAAGb,QAAJ,CAAL;EACAkB,OAAO,CAACD,IAAR,CAAa,CAAb;AACD,CAHM"}
1
+ {"version":3,"file":"logger.js","names":["_kleur","_interopRequireDefault","require","obj","__esModule","default","logger","type","color","messages","console","log","kleur","bold","map","message","split","join","info","blue","exports","warn","yellow","error","red","success","green","exit","process"],"sources":["../../src/utils/logger.ts"],"sourcesContent":["import kleur from 'kleur';\n\nconst logger =\n (type: string, color: Function) =>\n (...messages: unknown[]) => {\n console.log(\n color(kleur.bold(type)),\n ...messages.map((message) => {\n if (typeof message === 'string') {\n return message.split('\\n').join(`\\n `);\n } else {\n return message;\n }\n })\n );\n };\n\nexport const info = logger('ℹ', kleur.blue);\nexport const warn = logger('⚠', kleur.yellow);\nexport const error = logger('✖', kleur.red);\nexport const success = logger('✔', kleur.green);\n\nexport const exit = (...messages: unknown[]) => {\n error(...messages);\n process.exit(1);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0B,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE1B,MAAMG,MAAM,GACVA,CAACC,IAAY,EAAEC,KAAe,KAC9B,CAAC,GAAGC,QAAmB,KAAK;EAC1BC,OAAO,CAACC,GAAG,CACTH,KAAK,CAACI,cAAK,CAACC,IAAI,CAACN,IAAI,CAAC,CAAC,EACvB,GAAGE,QAAQ,CAACK,GAAG,CAAEC,OAAO,IAAK;IAC3B,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;MAC/B,OAAOA,OAAO,CAACC,KAAK,CAAC,IAAI,CAAC,CAACC,IAAI,CAAE,MAAK,CAAC;IACzC,CAAC,MAAM;MACL,OAAOF,OAAO;IAChB;EACF,CAAC,CACH,CAAC;AACH,CAAC;AAEI,MAAMG,IAAI,GAAGZ,MAAM,CAAC,GAAG,EAAEM,cAAK,CAACO,IAAI,CAAC;AAACC,OAAA,CAAAF,IAAA,GAAAA,IAAA;AACrC,MAAMG,IAAI,GAAGf,MAAM,CAAC,GAAG,EAAEM,cAAK,CAACU,MAAM,CAAC;AAACF,OAAA,CAAAC,IAAA,GAAAA,IAAA;AACvC,MAAME,KAAK,GAAGjB,MAAM,CAAC,GAAG,EAAEM,cAAK,CAACY,GAAG,CAAC;AAACJ,OAAA,CAAAG,KAAA,GAAAA,KAAA;AACrC,MAAME,OAAO,GAAGnB,MAAM,CAAC,GAAG,EAAEM,cAAK,CAACc,KAAK,CAAC;AAACN,OAAA,CAAAK,OAAA,GAAAA,OAAA;AAEzC,MAAME,IAAI,GAAGA,CAAC,GAAGlB,QAAmB,KAAK;EAC9Cc,KAAK,CAAC,GAAGd,QAAQ,CAAC;EAClBmB,OAAO,CAACD,IAAI,CAAC,CAAC,CAAC;AACjB,CAAC;AAACP,OAAA,CAAAO,IAAA,GAAAA,IAAA"}
@@ -4,17 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = prompts;
7
-
8
7
  var _prompts = _interopRequireDefault(require("prompts"));
9
-
10
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
9
  function prompts(args, options) {
13
10
  return (0, _prompts.default)(args, {
14
11
  onCancel() {
15
12
  process.exit(1);
16
13
  },
17
-
18
14
  ...options
19
15
  });
20
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","names":["prompts","args","options","promptsModule","onCancel","process","exit"],"sources":["../../src/utils/prompts.ts"],"sourcesContent":["import promptsModule from 'prompts';\n\nexport default function prompts(\n args: promptsModule.PromptObject | promptsModule.PromptObject[],\n options?: promptsModule.Options\n) {\n return promptsModule(args, {\n onCancel() {\n process.exit(1);\n },\n ...options,\n });\n}\n\nexport type PromptObject<T extends string = string> =\n promptsModule.PromptObject<T>;\n"],"mappings":";;;;;;;AAAA;;;;AAEe,SAASA,OAAT,CACbC,IADa,EAEbC,OAFa,EAGb;EACA,OAAO,IAAAC,gBAAA,EAAcF,IAAd,EAAoB;IACzBG,QAAQ,GAAG;MACTC,OAAO,CAACC,IAAR,CAAa,CAAb;IACD,CAHwB;;IAIzB,GAAGJ;EAJsB,CAApB,CAAP;AAMD"}
1
+ {"version":3,"file":"prompts.js","names":["_prompts","_interopRequireDefault","require","obj","__esModule","default","prompts","args","options","promptsModule","onCancel","process","exit"],"sources":["../../src/utils/prompts.ts"],"sourcesContent":["import promptsModule from 'prompts';\n\nexport default function prompts(\n args: promptsModule.PromptObject | promptsModule.PromptObject[],\n options?: promptsModule.Options\n) {\n return promptsModule(args, {\n onCancel() {\n process.exit(1);\n },\n ...options,\n });\n}\n\nexport type PromptObject<T extends string = string> =\n promptsModule.PromptObject<T>;\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAoC,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAErB,SAASG,OAAOA,CAC7BC,IAA+D,EAC/DC,OAA+B,EAC/B;EACA,OAAO,IAAAC,gBAAa,EAACF,IAAI,EAAE;IACzBG,QAAQA,CAAA,EAAG;MACTC,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,GAAGJ;EACL,CAAC,CAAC;AACJ"}