react-native-builder-bob 0.38.2 → 0.38.4
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.
|
@@ -7,6 +7,10 @@ var _mockStdin = require("mock-stdin");
|
|
|
7
7
|
var _path = require("path");
|
|
8
8
|
var _init = require("../init");
|
|
9
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
_globals.jest.mock('../../package.json', () => ({
|
|
11
|
+
name: 'react-native-builder-bob',
|
|
12
|
+
version: '0.5.0'
|
|
13
|
+
}));
|
|
10
14
|
let io;
|
|
11
15
|
const root = '/path/to/library';
|
|
12
16
|
const enter = '\x0D';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.test.js","names":["_globals","require","_fsExtra","_mockFs","_interopRequireDefault","_mockStdin","_path","_init","e","__esModule","default","io","root","enter","waitFor","callback","interval","timeout","Promise","resolve","reject","intervalId","setInterval","clearInterval","undefined","error","beforeEach","stdin","mockFs","JSON","stringify","
|
|
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","it","spyOn","process","stdout","mockImplementation","chdir","run","lastCall","write","Error","test","String","send","expect","toHaveBeenLastCalledWith","stringMatching","all","init","readFile","join","toMatchSnapshot"],"sources":["../../src/__tests__/init.test.ts"],"sourcesContent":["import { afterEach, beforeEach, expect, it, 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\nit('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":";;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AAA+B,SAAAG,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE/BG,aAAI,CAACC,IAAI,CAAC,oBAAoB,EAAE,OAAO;EACrCC,IAAI,EAAE,0BAA0B;EAChCC,OAAO,EAAE;AACX,CAAC,CAAC,CAAC;AAEH,IAAIC,EAAwC;AAE5C,MAAMC,IAAI,GAAG,kBAAkB;AAE/B,MAAMC,KAAK,GAAG,MAAM;AAEpB,MAAMC,OAAO,GAAG,MAAOC,QAAoB,IAAK;EAC9C,MAAMC,QAAQ,GAAG,EAAE;EAEnB,IAAIC,OAAO,GAAG,EAAE;EAEhB,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtC,MAAMC,UAAU,GAAGC,WAAW,CAAC,MAAM;MACnC,IAAI;QACFP,QAAQ,CAAC,CAAC;QACVQ,aAAa,CAACF,UAAU,CAAC;QACzBF,OAAO,CAACK,SAAS,CAAC;MACpB,CAAC,CAAC,OAAOC,KAAK,EAAE;QACd,IAAIR,OAAO,IAAI,CAAC,EAAE;UAChBM,aAAa,CAACF,UAAU,CAAC;UACzBD,MAAM,CAACK,KAAK,CAAC;QACf;QAEAR,OAAO,IAAID,QAAQ;MACrB;IACF,CAAC,EAAEA,QAAQ,CAAC;EACd,CAAC,CAAC;AACJ,CAAC;AAED,IAAAU,mBAAU,EAAC,MAAM;EACff,EAAE,GAAG,IAAAgB,gBAAK,EAAC,CAAC;EAEZ,IAAAC,eAAM,EAAC;IACL,CAAChB,IAAI,GAAG;MACN,cAAc,EAAEiB,IAAI,CAACC,SAAS,CAAC;QAC7BrB,IAAI,EAAE,SAAS;QACfC,OAAO,EAAE;MACX,CAAC,CAAC;MACF,KAAK,EAAE;QACL,UAAU,EAAE;MACd;IACF;EACF,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,IAAAqB,kBAAS,EAAC,MAAM;EACdpB,EAAE,EAAEqB,OAAO,CAAC,CAAC;EACbJ,eAAM,CAACI,OAAO,CAAC,CAAC;EAChBzB,aAAI,CAAC0B,eAAe,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF,IAAAC,WAAE,EAAC,+BAA+B,EAAE,YAAY;EAC9C3B,aAAI,CAAC4B,KAAK,CAACC,OAAO,CAACC,MAAM,EAAE,OAAO,CAAC,CAACC,kBAAkB,CAAC,MAAM,IAAI,CAAC;EAElEF,OAAO,CAACG,KAAK,CAAC3B,IAAI,CAAC;EAEnB,MAAM4B,GAAG,GAAG,MAAAA,CAAA,KAAY;IACtB,MAAM1B,OAAO,CAAC,MAAM;MAClB,MAAM2B,QAAQ,GAAIL,OAAO,CAACC,MAAM,CAACK,KAAK,CAAelC,IAAI,CAACiC,QAAQ;MAElE,IAAIA,QAAQ,IAAI,IAAI,EAAE;QACpB,MAAM,IAAIE,KAAK,CAAC,WAAW,CAAC;MAC9B;MAEA,IAAI,oCAAoC,CAACC,IAAI,CAACC,MAAM,CAACJ,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QAClE9B,EAAE,EAAEmC,IAAI,CAAC,GAAG,CAAC;MACf;IACF,CAAC,CAAC;IAEF,MAAMhC,OAAO,CAAC,MACZ,IAAAiC,eAAM,EAACX,OAAO,CAACC,MAAM,CAACK,KAAK,CAAC,CAACM,wBAAwB,CACnDD,eAAM,CAACE,cAAc,CAAC,8BAA8B,CACtD,CACF,CAAC;IAEDtC,EAAE,EAAEmC,IAAI,CAACjC,KAAK,CAAC;IAEf,MAAMC,OAAO,CAAC,MACZ,IAAAiC,eAAM,EAACX,OAAO,CAACC,MAAM,CAACK,KAAK,CAAC,CAACM,wBAAwB,CACnDD,eAAM,CAACE,cAAc,CAAC,iDAAiD,CACzE,CACF,CAAC;IAEDtC,EAAE,EAAEmC,IAAI,CAACjC,KAAK,CAAC;IAEf,MAAMC,OAAO,CAAC,MACZ,IAAAiC,eAAM,EAACX,OAAO,CAACC,MAAM,CAACK,KAAK,CAAC,CAACM,wBAAwB,CACnDD,eAAM,CAACE,cAAc,CAAC,qCAAqC,CAC7D,CACF,CAAC;IAEDtC,EAAE,EAAEmC,IAAI,CAACjC,KAAK,CAAC;IAEf,MAAMC,OAAO,CAAC,MACZ,IAAAiC,eAAM,EAACX,OAAO,CAACC,MAAM,CAACK,KAAK,CAAC,CAACM,wBAAwB,CACnDD,eAAM,CAACE,cAAc,CACnB,mGACF,CACF,CACF,CAAC;IAEDtC,EAAE,EAAEmC,IAAI,CAACjC,KAAK,CAAC;EACjB,CAAC;EAED,MAAMK,OAAO,CAACgC,GAAG,CAAC,CAACV,GAAG,CAAC,CAAC,EAAE,IAAAW,UAAI,EAAC,CAAC,CAAC,CAAC;EAElC,IAAAJ,eAAM,EAACX,OAAO,CAACC,MAAM,CAACK,KAAK,CAAC,CAACM,wBAAwB,CACnDD,eAAM,CAACE,cAAc,CAAC,0BAA0B,CAClD,CAAC;EAED,IAAAF,eAAM,EAAC,MAAM,IAAAK,iBAAQ,EAAC,IAAAC,UAAI,EAACzC,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC0C,eAAe,CAAC,CAAC;EAE5E,IAAAP,eAAM,EAAC,MAAM,IAAAK,iBAAQ,EAAC,IAAAC,UAAI,EAACzC,IAAI,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC0C,eAAe,CAAC,CAAC;AAC/E,CAAC,CAAC","ignoreList":[]}
|
package/lib/init.js
CHANGED
|
@@ -182,7 +182,8 @@ async function init() {
|
|
|
182
182
|
if (esm) {
|
|
183
183
|
let replace = false;
|
|
184
184
|
const exportsField = {
|
|
185
|
-
'.': {}
|
|
185
|
+
'.': {},
|
|
186
|
+
'./package.json': './package.json'
|
|
186
187
|
};
|
|
187
188
|
const importField = {
|
|
188
189
|
...(types.import ? {
|
|
@@ -210,10 +211,6 @@ async function init() {
|
|
|
210
211
|
} else if (targets.includes('module')) {
|
|
211
212
|
exportsField['.'] = importField;
|
|
212
213
|
}
|
|
213
|
-
if (pkg.codegenConfig && !pkg.codegenConfig.includesGeneratedCode) {
|
|
214
|
-
// @ts-expect-error The exports is not strictly types therefore it doesn't know about the package.json property
|
|
215
|
-
exportsField['./package.json'] = './package.json';
|
|
216
|
-
}
|
|
217
214
|
if (pkg.exports && JSON.stringify(pkg.exports) !== JSON.stringify(exportsField)) {
|
|
218
215
|
replace = (await (0, _prompts.default)({
|
|
219
216
|
type: 'confirm',
|
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","codegenConfig","includesGeneratedCode","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 };\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 (pkg.codegenConfig && !pkg.codegenConfig.includesGeneratedCode) {\n // @ts-expect-error The exports is not strictly types therefore it doesn't know about the package.json property\n exportsField['./package.json'] = './package.json';\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","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":[]}
|
package/lib/utils/compile.js
CHANGED
|
@@ -67,7 +67,8 @@ async function compile({
|
|
|
67
67
|
|
|
68
68
|
// If codegen is used in the app, then we need to preserve TypeScript source
|
|
69
69
|
// So we copy the file as is instead of transforming it
|
|
70
|
-
|
|
70
|
+
const codegenEnabled = 'codegenConfig' in pkg;
|
|
71
|
+
if (codegenEnabled && (0, _isCodegenSpec.isCodegenSpec)(filepath)) {
|
|
71
72
|
_fsExtra.default.copy(filepath, _path.default.join(output, _path.default.relative(source, filepath)));
|
|
72
73
|
return;
|
|
73
74
|
}
|
|
@@ -79,7 +80,7 @@ async function compile({
|
|
|
79
80
|
modules === 'preserve' ? true : false,
|
|
80
81
|
rewriteImportExtensions: esm,
|
|
81
82
|
jsxRuntime,
|
|
82
|
-
codegenEnabled
|
|
83
|
+
codegenEnabled
|
|
83
84
|
},
|
|
84
85
|
cwd: root,
|
|
85
86
|
babelrc: babelrc,
|
package/lib/utils/compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","names":["_path","_interopRequireDefault","require","_fsExtra","_kleur","babel","_interopRequireWildcard","_glob","_isCodegenSpec","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","sourceExt","compile","root","source","output","esm","babelrc","configFile","exclude","modules","copyFlow","sourceMaps","report","jsxRuntime","variants","files","glob","sync","cwd","absolute","nodir","ignore","info","kleur","blue","String","length","path","relative","pkg","JSON","parse","fs","readFile","join","keys","devDependencies","includes","warn","mkdirp","writeJSON","type","Promise","all","map","filepath","outputFilename","replace","dirname","test","copy","content","isCodegenSpec","result","transformAsync","caller","name","supportsStaticESM","rewriteImportExtensions","codegenEnabled","sourceRoot","sourceFileName","filename","presets","resolve","Error","code","mapFilename","basename","sourcesContent","undefined","writeFile","success","getGeneratedEntryPath","ext","indexName","potentialPath","pathExists","fields","commonjs","module","push","value","main","exports","import","generatedEntryPath","some","field","startsWith","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 glob from 'glob';\nimport type { Input, Variants } from '../types';\nimport { isCodegenSpec } from './isCodegenSpec';\n\nexport type CompileOptions = {\n esm?: boolean;\n babelrc?: boolean | null;\n configFile?: string | false | null;\n sourceMaps?: boolean;\n copyFlow?: boolean;\n jsxRuntime?: 'automatic' | 'classic';\n};\n\ntype Options = Input &\n CompileOptions & {\n modules: 'commonjs' | 'preserve';\n variants: Variants;\n exclude: string;\n };\n\nconst sourceExt = /\\.([cm])?[jt]sx?$/;\n\nexport default async function compile({\n root,\n source,\n output,\n esm = false,\n babelrc = false,\n configFile = false,\n exclude,\n modules,\n copyFlow,\n sourceMaps = true,\n report,\n jsxRuntime = 'automatic',\n variants,\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 fs.mkdirp(output);\n\n // Imports are not rewritten to include the extension if `esm` is not enabled\n // Ideally we should always treat ESM syntax as CommonJS if `esm` is not enabled\n // This would maintain compatibility for legacy setups where `import`/`export` didn't require file extensions\n // However NextJS has non-standard behavior and breaks if we add `type: 'commonjs'` for code with import/export\n // So we skip generating `package.json` if `esm` is not enabled and `modules` is not `commonjs`\n // This means that user can't use `type: 'module'` in root `package.json` without enabling `esm` for `module` target\n if (esm || modules === 'commonjs') {\n await fs.writeJSON(path.join(output, 'package.json'), {\n type: modules === 'commonjs' ? 'commonjs' : 'module',\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(sourceExt, '.$1js');\n\n await fs.mkdirp(path.dirname(outputFilename));\n\n if (!sourceExt.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\n // If codegen is used in the app, then we need to preserve TypeScript source\n // So we copy the file as is instead of transforming it\n if (isCodegenSpec(filepath)) {\n fs.copy(filepath, path.join(output, path.relative(source, filepath)));\n return;\n }\n\n const result = await babel.transformAsync(content, {\n caller: {\n name: 'react-native-builder-bob',\n supportsStaticESM:\n /\\.m[jt]s$/.test(filepath) || // If a file is explicitly marked as ESM, then preserve the syntax\n modules === 'preserve'\n ? true\n : false,\n rewriteImportExtensions: esm,\n jsxRuntime,\n codegenEnabled: 'codegenConfig' in pkg,\n },\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: [require.resolve('../../babel-preset')],\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 for (const ext of ['.js', '.cjs', '.mjs']) {\n const indexName =\n // The source field may not have an extension, so we add it instead of replacing directly\n path.basename(pkg.source).replace(sourceExt, '') + ext;\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\n return null;\n };\n\n const fields: { name: string; value: string | undefined }[] = [];\n\n if (variants.commonjs && variants.module) {\n if (modules === 'commonjs') {\n fields.push({ name: 'main', value: pkg.main });\n } else {\n fields.push({ name: 'module', value: pkg.module });\n }\n } else {\n fields.push({ name: 'main', value: pkg.main });\n }\n\n if (esm) {\n if (variants.commonjs && variants.module) {\n if (modules === 'commonjs') {\n fields.push(\n typeof pkg.exports?.['.']?.require === 'string'\n ? {\n name: \"exports['.'].require\",\n value: pkg.exports?.['.']?.require,\n }\n : {\n name: \"exports['.'].require.default\",\n value: pkg.exports?.['.']?.require?.default,\n }\n );\n } else {\n fields.push(\n typeof pkg.exports?.['.']?.import === 'string'\n ? {\n name: \"exports['.'].import\",\n value: pkg.exports?.['.']?.import,\n }\n : {\n name: \"exports['.'].import.default\",\n value: pkg.exports?.['.']?.import?.default,\n }\n );\n }\n } else {\n fields.push({\n name: \"exports['.'].default\",\n value: pkg.exports?.['.']?.default,\n });\n }\n } else {\n if (modules === 'commonjs' && pkg.exports?.['.']?.require) {\n report.warn(\n `The ${kleur.blue('esm')} option is disabled, but the ${kleur.blue(\n \"exports['.'].require\"\n )} field is set in ${kleur.blue(\n 'package.json'\n )}. This is likely a mistake.`\n );\n } else if (modules === 'preserve' && pkg.exports?.['.']?.import) {\n report.warn(\n `The ${kleur.blue('esm')} option is disabled, but the ${kleur.blue(\n \"exports['.'].import\"\n )} field is set in ${kleur.blue(\n 'package.json'\n )}. This is likely a mistake.`\n );\n }\n }\n\n const generatedEntryPath = await getGeneratedEntryPath();\n\n if (fields.some((field) => field.value)) {\n await Promise.all(\n fields.map(async ({ name, value }) => {\n if (!value) {\n return;\n }\n\n if (name.startsWith('exports') && value && !/^\\.\\//.test(value)) {\n report.error(\n `The ${kleur.blue(name)} field in ${kleur.blue(\n `package.json`\n )} should be a relative path starting with ${kleur.blue(\n './'\n )}. Found: ${kleur.blue(value)}`\n );\n\n throw new Error(`Found incorrect path in '${name}' field.`);\n }\n\n try {\n require.resolve(path.join(root, value));\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 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(name)} field in ${kleur.blue(\n 'package.json'\n )} points to a non-existent file: ${kleur.blue(\n value\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 '${name}' field.`);\n }\n\n throw e;\n }\n })\n );\n\n if (\n modules === 'commonjs' &&\n pkg.exports?.['.']?.import === `./${generatedEntryPath}`\n ) {\n report.warn(\n `The the ${kleur.blue(\n \"exports['.'].import\"\n )} field points to a CommonJS module. This is likely a mistake.`\n );\n } else if (\n modules === 'preserve' &&\n pkg.exports?.['.']?.require === `./${generatedEntryPath}`\n ) {\n report.warn(\n `The the ${kleur.blue(\n \"exports['.'].import\"\n )} field points to a ES module. This is likely a mistake.`\n );\n }\n } else {\n report.warn(\n `No ${fields\n .map((field) => kleur.blue(field.name))\n .join(' or ')} field found in ${kleur.blue('package.json')}. Consider ${\n generatedEntryPath\n ? `pointing to ${kleur.blue(generatedEntryPath)}`\n : `adding ${fields.length > 1 ? 'them' : 'it'}`\n } so that consumers of your package can import your package.`\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"compile.js","names":["_path","_interopRequireDefault","require","_fsExtra","_kleur","babel","_interopRequireWildcard","_glob","_isCodegenSpec","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","sourceExt","compile","root","source","output","esm","babelrc","configFile","exclude","modules","copyFlow","sourceMaps","report","jsxRuntime","variants","files","glob","sync","cwd","absolute","nodir","ignore","info","kleur","blue","String","length","path","relative","pkg","JSON","parse","fs","readFile","join","keys","devDependencies","includes","warn","mkdirp","writeJSON","type","Promise","all","map","filepath","outputFilename","replace","dirname","test","copy","content","codegenEnabled","isCodegenSpec","result","transformAsync","caller","name","supportsStaticESM","rewriteImportExtensions","sourceRoot","sourceFileName","filename","presets","resolve","Error","code","mapFilename","basename","sourcesContent","undefined","writeFile","success","getGeneratedEntryPath","ext","indexName","potentialPath","pathExists","fields","commonjs","module","push","value","main","exports","import","generatedEntryPath","some","field","startsWith","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 glob from 'glob';\nimport type { Input, Variants } from '../types';\nimport { isCodegenSpec } from './isCodegenSpec';\n\nexport type CompileOptions = {\n esm?: boolean;\n babelrc?: boolean | null;\n configFile?: string | false | null;\n sourceMaps?: boolean;\n copyFlow?: boolean;\n jsxRuntime?: 'automatic' | 'classic';\n};\n\ntype Options = Input &\n CompileOptions & {\n modules: 'commonjs' | 'preserve';\n variants: Variants;\n exclude: string;\n };\n\nconst sourceExt = /\\.([cm])?[jt]sx?$/;\n\nexport default async function compile({\n root,\n source,\n output,\n esm = false,\n babelrc = false,\n configFile = false,\n exclude,\n modules,\n copyFlow,\n sourceMaps = true,\n report,\n jsxRuntime = 'automatic',\n variants,\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 fs.mkdirp(output);\n\n // Imports are not rewritten to include the extension if `esm` is not enabled\n // Ideally we should always treat ESM syntax as CommonJS if `esm` is not enabled\n // This would maintain compatibility for legacy setups where `import`/`export` didn't require file extensions\n // However NextJS has non-standard behavior and breaks if we add `type: 'commonjs'` for code with import/export\n // So we skip generating `package.json` if `esm` is not enabled and `modules` is not `commonjs`\n // This means that user can't use `type: 'module'` in root `package.json` without enabling `esm` for `module` target\n if (esm || modules === 'commonjs') {\n await fs.writeJSON(path.join(output, 'package.json'), {\n type: modules === 'commonjs' ? 'commonjs' : 'module',\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(sourceExt, '.$1js');\n\n await fs.mkdirp(path.dirname(outputFilename));\n\n if (!sourceExt.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\n // If codegen is used in the app, then we need to preserve TypeScript source\n // So we copy the file as is instead of transforming it\n const codegenEnabled = 'codegenConfig' in pkg;\n\n if (codegenEnabled && isCodegenSpec(filepath)) {\n fs.copy(filepath, path.join(output, path.relative(source, filepath)));\n return;\n }\n\n const result = await babel.transformAsync(content, {\n caller: {\n name: 'react-native-builder-bob',\n supportsStaticESM:\n /\\.m[jt]s$/.test(filepath) || // If a file is explicitly marked as ESM, then preserve the syntax\n modules === 'preserve'\n ? true\n : false,\n rewriteImportExtensions: esm,\n jsxRuntime,\n codegenEnabled,\n },\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: [require.resolve('../../babel-preset')],\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 for (const ext of ['.js', '.cjs', '.mjs']) {\n const indexName =\n // The source field may not have an extension, so we add it instead of replacing directly\n path.basename(pkg.source).replace(sourceExt, '') + ext;\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\n return null;\n };\n\n const fields: { name: string; value: string | undefined }[] = [];\n\n if (variants.commonjs && variants.module) {\n if (modules === 'commonjs') {\n fields.push({ name: 'main', value: pkg.main });\n } else {\n fields.push({ name: 'module', value: pkg.module });\n }\n } else {\n fields.push({ name: 'main', value: pkg.main });\n }\n\n if (esm) {\n if (variants.commonjs && variants.module) {\n if (modules === 'commonjs') {\n fields.push(\n typeof pkg.exports?.['.']?.require === 'string'\n ? {\n name: \"exports['.'].require\",\n value: pkg.exports?.['.']?.require,\n }\n : {\n name: \"exports['.'].require.default\",\n value: pkg.exports?.['.']?.require?.default,\n }\n );\n } else {\n fields.push(\n typeof pkg.exports?.['.']?.import === 'string'\n ? {\n name: \"exports['.'].import\",\n value: pkg.exports?.['.']?.import,\n }\n : {\n name: \"exports['.'].import.default\",\n value: pkg.exports?.['.']?.import?.default,\n }\n );\n }\n } else {\n fields.push({\n name: \"exports['.'].default\",\n value: pkg.exports?.['.']?.default,\n });\n }\n } else {\n if (modules === 'commonjs' && pkg.exports?.['.']?.require) {\n report.warn(\n `The ${kleur.blue('esm')} option is disabled, but the ${kleur.blue(\n \"exports['.'].require\"\n )} field is set in ${kleur.blue(\n 'package.json'\n )}. This is likely a mistake.`\n );\n } else if (modules === 'preserve' && pkg.exports?.['.']?.import) {\n report.warn(\n `The ${kleur.blue('esm')} option is disabled, but the ${kleur.blue(\n \"exports['.'].import\"\n )} field is set in ${kleur.blue(\n 'package.json'\n )}. This is likely a mistake.`\n );\n }\n }\n\n const generatedEntryPath = await getGeneratedEntryPath();\n\n if (fields.some((field) => field.value)) {\n await Promise.all(\n fields.map(async ({ name, value }) => {\n if (!value) {\n return;\n }\n\n if (name.startsWith('exports') && value && !/^\\.\\//.test(value)) {\n report.error(\n `The ${kleur.blue(name)} field in ${kleur.blue(\n `package.json`\n )} should be a relative path starting with ${kleur.blue(\n './'\n )}. Found: ${kleur.blue(value)}`\n );\n\n throw new Error(`Found incorrect path in '${name}' field.`);\n }\n\n try {\n require.resolve(path.join(root, value));\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 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(name)} field in ${kleur.blue(\n 'package.json'\n )} points to a non-existent file: ${kleur.blue(\n value\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 '${name}' field.`);\n }\n\n throw e;\n }\n })\n );\n\n if (\n modules === 'commonjs' &&\n pkg.exports?.['.']?.import === `./${generatedEntryPath}`\n ) {\n report.warn(\n `The the ${kleur.blue(\n \"exports['.'].import\"\n )} field points to a CommonJS module. This is likely a mistake.`\n );\n } else if (\n modules === 'preserve' &&\n pkg.exports?.['.']?.require === `./${generatedEntryPath}`\n ) {\n report.warn(\n `The the ${kleur.blue(\n \"exports['.'].import\"\n )} field points to a ES module. This is likely a mistake.`\n );\n }\n } else {\n report.warn(\n `No ${fields\n .map((field) => kleur.blue(field.name))\n .join(' or ')} field found in ${kleur.blue('package.json')}. Consider ${\n generatedEntryPath\n ? `pointing to ${kleur.blue(generatedEntryPath)}`\n : `adding ${fields.length > 1 ? 'them' : 'it'}`\n } so that consumers of your package can import your package.`\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-builder-bob",
|
|
3
|
-
"version": "0.38.
|
|
3
|
+
"version": "0.38.4",
|
|
4
4
|
"description": "CLI to build JavaScript files for React Native libraries",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native",
|
|
@@ -88,5 +88,5 @@
|
|
|
88
88
|
"mock-fs": "^5.2.0",
|
|
89
89
|
"mock-stdin": "^1.0.0"
|
|
90
90
|
},
|
|
91
|
-
"gitHead": "
|
|
91
|
+
"gitHead": "19f5a457eb7d2632807899168159328c8d45d373"
|
|
92
92
|
}
|