From c5ce2c321d4c7e03158c7927ef59fc1ad445b5ef Mon Sep 17 00:00:00 2001 From: alina sireneva Date: Wed, 3 Apr 2024 18:08:07 +0300 Subject: [PATCH] build: some fixes + made @mtcute/test esm-only --- .../src/highlevel/methods/auth/start-test.ts | 4 +- .../core/src/highlevel/utils/query-batcher.ts | 2 +- packages/test/build.config.cjs | 1 + packages/test/package.json | 5 +- scripts/build-package.js | 58 ++++++++++++++----- 5 files changed, 47 insertions(+), 23 deletions(-) create mode 100644 packages/test/build.config.cjs diff --git a/packages/core/src/highlevel/methods/auth/start-test.ts b/packages/core/src/highlevel/methods/auth/start-test.ts index ca3537e2..6ea020d5 100644 --- a/packages/core/src/highlevel/methods/auth/start-test.ts +++ b/packages/core/src/highlevel/methods/auth/start-test.ts @@ -66,7 +66,7 @@ export async function startTest( let dcId = await client.getPrimaryDcId() if (params.dcId) { - if (!availableDcs.find((dc) => dc.id === params!.dcId)) { + if (!availableDcs.find((dc) => dc.id === params.dcId)) { throw new MtArgumentError(`DC ID is invalid (${dcId})`) } dcId = params.dcId @@ -85,7 +85,7 @@ export async function startTest( code: () => code, codeSentCallback: (sent) => { for (let i = 0; i < sent.length; i++) { - code += phone![5] + code += phone[5] } }, }) diff --git a/packages/core/src/highlevel/utils/query-batcher.ts b/packages/core/src/highlevel/utils/query-batcher.ts index abc5e811..f5c73920 100644 --- a/packages/core/src/highlevel/utils/query-batcher.ts +++ b/packages/core/src/highlevel/utils/query-batcher.ts @@ -95,7 +95,7 @@ export function batchedQuery(params: { } return new Promise((resolve, reject) => { - arr!.push([item, resolve, reject]) + arr.push([item, resolve, reject]) }) } diff --git a/packages/test/build.config.cjs b/packages/test/build.config.cjs new file mode 100644 index 00000000..17718026 --- /dev/null +++ b/packages/test/build.config.cjs @@ -0,0 +1 @@ +module.exports = () => ({ buildCjs: false }) diff --git a/packages/test/package.json b/packages/test/package.json index aacf8ac6..d44e9fe5 100644 --- a/packages/test/package.json +++ b/packages/test/package.json @@ -37,10 +37,7 @@ }, "distOnlyFields": { "exports": { - ".": { - "import": "./esm/index.js", - "require": "./cjs/index.js" - } + ".": "./esm/index.js" } } } diff --git a/scripts/build-package.js b/scripts/build-package.js index 255d23e7..23c9865c 100644 --- a/scripts/build-package.js +++ b/scripts/build-package.js @@ -8,7 +8,8 @@ if (process.argv.length < 3) { process.exit(0) } -const packageDir = path.join(__dirname, '../packages', process.argv[2]) +const packagesDir = path.join(__dirname, '../packages') +const packageDir = path.join(packagesDir, process.argv[2]) const outDir = path.join(packageDir, 'dist') function exec(cmd, params) { @@ -178,30 +179,55 @@ if (buildConfig.buildTs) { console.log('[i] Building typescript (CJS)...') const originalFiles = {} - // todo - get rid of these, use @esm-replace-import instead - if (buildConfig.esmOnlyDirectives) { - for (const f of glob.sync(path.join(packageDir, '**/*.ts'))) { - const content = fs.readFileSync(f, 'utf8') - if (!content.includes('@only-if-esm')) continue - originalFiles[f] = content + for (const f of glob.sync(path.join(packagesDir, '**/*.ts'))) { + const content = fs.readFileSync(f, 'utf8') + if (!content.includes('@only-if-esm')) continue + originalFiles[f] = content - fs.writeFileSync(f, content.replace(/@only-if-esm.*?@\/only-if-esm/gs, '')) - } + fs.writeFileSync(f, content.replace(/@only-if-esm.*?@\/only-if-esm/gs, '')) } - if (buildConfig.esmImportDirectives) { - for (const f of glob.sync(path.join(packageDir, '**/*.ts'))) { - const content = fs.readFileSync(f, 'utf8') - if (!content.includes('@esm-replace-import')) continue - originalFiles[f] = content + for (const f of glob.sync(path.join(packagesDir, '**/*.ts'))) { + const content = fs.readFileSync(f, 'utf8') + if (!content.includes('@esm-replace-import')) continue + originalFiles[f] = content - fs.writeFileSync(f, content.replace(/@esm-replace-import.*?await import/gs, 'require')) + fs.writeFileSync(f, content.replace(/@esm-replace-import.*?await import/gs, 'require')) + } + + // set type=commonjs in all package.json-s + for (const pkg of fs.readdirSync(packagesDir)) { + const pkgJson = path.join(packagesDir, pkg, 'package.json') + if (!fs.existsSync(pkgJson)) continue + + const orig = fs.readFileSync(pkgJson, 'utf8') + originalFiles[pkgJson] = orig + + fs.writeFileSync(pkgJson, JSON.stringify({ + ...JSON.parse(orig), + type: 'commonjs', + }, null, 2)) + + // maybe also dist/package.json + const distPkgJson = path.join(packagesDir, pkg, 'dist/package.json') + + if (fs.existsSync(distPkgJson)) { + const orig = fs.readFileSync(distPkgJson, 'utf8') + originalFiles[distPkgJson] = orig + + fs.writeFileSync(distPkgJson, JSON.stringify({ + ...JSON.parse(orig), + type: 'commonjs', + }, null, 2)) } } let error = false try { - exec('pnpm exec tsc --module commonjs --outDir dist/cjs', { cwd: packageDir, stdio: 'inherit' }) + exec('pnpm exec tsc --outDir dist/cjs', { + cwd: packageDir, + stdio: 'inherit', + }) } catch (e) { error = e }