remix-nlux
Version:
Remix IDE NLUX integration. Remix IDE is the leading IDE for building and deploying smart contracts on Ethereum. NLUX is a JavaScript and React library for building conversational AI experiences.
78 lines (73 loc) • 2.57 kB
text/typescript
import commonjs from '@rollup/plugin-commonjs';
import {nodeResolve} from '@rollup/plugin-node-resolve';
import replace from '@rollup/plugin-replace';
import strip from '@rollup/plugin-strip';
import terser from '@rollup/plugin-terser';
import csso from 'postcss-csso';
import postcssImport from 'postcss-import';
import {LogLevel, RollupOptions} from 'rollup';
import esbuild from 'rollup-plugin-esbuild';
import postcss from 'rollup-plugin-postcss';
import {generateDts} from '../../../pipeline/utils/rollup/generateDts';
import {generateOutputConfig} from '../../../pipeline/utils/rollup/generateOutputConfig';
const isProduction = process.env.NODE_ENV === 'production';
const packageName = '@nlux/highlighter';
const outputFile = 'highlighter';
const folder = isProduction ? 'prod' : 'dev';
const cssEntry = (input: string, output: string) => ({
input,
logLevel: 'warn' as LogLevel,
plugins: [
postcss({
extract: true,
sourceMap: !isProduction,
plugins: [
postcssImport({
plugins: [csso({comments: false, restructure: false})],
}),
],
}),
],
output: [
{
file: output,
sourcemap: !isProduction,
strict: true,
},
],
});
const packageConfig: () => Promise<RollupOptions[]> = async () => ([
{
input: './src/index.ts',
logLevel: 'silent',
treeshake: 'smallest',
strictDeprecations: true,
plugins: [
commonjs(),
esbuild(),
isProduction && strip({
include: '**/*.(mjs|js|ts)',
functions: ['debug', 'console.log', 'console.info'],
}),
!isProduction && nodeResolve(),
replace({
preventAssignment: false,
}),
replace({
values: {
'process.env.NLUX_DEBUG_ENABLED': JSON.stringify(isProduction ? 'false' : 'true'),
},
preventAssignment: true,
}),
terser(),
],
external: [
'@nlux/core',
],
output: generateOutputConfig(packageName, outputFile, isProduction),
},
generateDts(outputFile, isProduction),
cssEntry('./src/themes/stackoverflow/dark.css', `../../../dist/${folder}/${outputFile}/dark-theme.css`),
cssEntry('./src/themes/stackoverflow/light.css', `../../../dist/${folder}/${outputFile}/light-theme.css`),
]);
export default packageConfig;