Some checks failed
NYX Security Scan / nyx-scan (pull_request) Failing after 5m58s
Three independent breakages, all present on main before this branch:
1. `npm ci` always exited non-zero. The root package.json carried
"install": "node-gyp-build", but binding.gyp lives in native/, so the
script ran in a directory with nothing to build:
gyp: binding.gyp not found (cwd: <repo root>)
native/package.json already declares that same install script in the
right place, alongside its binding.gyp and "gypfile": true, so the
root copy was a duplicate in the wrong package. Removing it also
clears the now-inaccurate hasInstallScript flag from the lockfile.
`npm ci` exits 0 again; the addon still builds from native/.
2. `npm run build` failed at the first step. @rollup/plugin-typescript
requires tslib as a peer, and nothing depended on it directly — it was
only present transitively as an optional dev dep, so a clean install
could omit it entirely. Declared explicitly.
3. rollup.config.js used ESM syntax while package.json has no
"type": "module", so Node parsed it as CommonJS and threw
"Cannot use import statement outside a module". Node 24 recovers by
reparsing (with a warning); Node 18 fails outright. Renamed to
rollup.config.mjs, which is unambiguous on both. Setting
"type": "module" instead would have broken jest.config.js, which is
CommonJS.
Verified on Node 18.19.1 and Node 24.18.0: npm ci exits 0, npm run build
produces all three bundles plus declarations, and 76/76 tests pass.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
41 lines
975 B
JavaScript
41 lines
975 B
JavaScript
import typescript from '@rollup/plugin-typescript';
|
|
import resolve from '@rollup/plugin-node-resolve';
|
|
import commonjs from '@rollup/plugin-commonjs';
|
|
|
|
const target = process.env.TARGET || 'node';
|
|
|
|
const config = {
|
|
input: target === 'browser' ? 'src/browser.ts' : 'src/node.ts',
|
|
plugins: [
|
|
resolve(),
|
|
commonjs(),
|
|
typescript({
|
|
tsconfig: './tsconfig.json',
|
|
declaration: false,
|
|
declarationDir: undefined
|
|
})
|
|
]
|
|
};
|
|
|
|
if (target === 'node') {
|
|
config.output = [
|
|
{
|
|
file: 'dist/node/index.js',
|
|
format: 'cjs',
|
|
exports: 'named'
|
|
},
|
|
{
|
|
file: 'dist/esm/index.js',
|
|
format: 'es'
|
|
}
|
|
];
|
|
config.external = ['crypto', 'https', 'fs', 'path'];
|
|
} else if (target === 'browser') {
|
|
config.output = {
|
|
file: 'dist/browser/index.js',
|
|
format: 'es',
|
|
name: 'Nomyo'
|
|
};
|
|
}
|
|
|
|
export default config;
|