repo_description: Design circuit boards with code! ✨ Get software-like design reuse 🚀, validation, version control and collaboration in hardware; starting with electronics ⚡️
repo_topics: agent ai cad eda electronics
code: //@ts-check
  
  'use strict';
  
  const path = require('path');
  
  //@ts-check
  /** @typedef {import('webpack').Configuration} WebpackConfig **/
  
  /** @type WebpackConfig */
  const extensionConfig = {
      target: 'node', // vscode extensions run in a Node.js-context 📖 -> https://webpack.js.org/configuration/node/
      mode: 'none', // this leaves the source code as close as possible to the original (when packaging we set this to 'production')
  
      entry: './src/extension.ts', // the entry point of this extension, 📖 -> https://webpack.js.org/configuration/entry-context/
      output: {
          // the bundle is stored in the 'dist' folder (check package.json), 📖 -> https://webpack.js.org/configuration/output/
          path: path.resolve(__dirname, 'dist'),
          filename: 'extension.js',
          libraryTarget: 'commonjs2',
      },
      externals: {
          vscode: 'commonjs vscode', // the vscode-module is created on-the-fly and must be excluded. Add other modules that cannot be webpack'ed, 📖 -> https://webpack.js.org/configuration/externals/
          // modules added here also need to be added in the .vscodeignore file
          ws: 'commonjs ws', // ws uses optional native addons (bufferutil) that can't be webpack'd
      },
      resolve: {
          // support reading TypeScript and JavaScript files, 📖 -> https://github.com/TypeStrong/ts-loader
          extensions: ['.ts', '.js', '.hbs'],
          fallback: {
              bufferutil: false,
              'utf-8-validate': false,
          },
      },
      module: {
          exprContextCritical: false,
          rules: [
              {
                  test: /\.ts$/,
                  exclude: [/node_modules/, /dashboard/, /webviews/, /ui-server/],
                  use: [
                      {
                          loader: 'ts-loader',
                      },
                  ],
              },
              {
                  test: /\.hbs$/,
                  type: 'asset/source',
              },
          ],
      },
      devtool: 'source-map',
      ignoreWarnings: [
          /vscode-languageserver-types\/lib\/umd\/main\.js/,
      ],
      infrastructureLogging: {
          level: 'log', // enables logging required for problem matchers
      },
  };
  module.exports = [extensionConfig];
  