.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-json / esbuild.js
diff --git a/.config/coc/extensions/node_modules/coc-json/esbuild.js b/.config/coc/extensions/node_modules/coc-json/esbuild.js
new file mode 100644 (file)
index 0000000..d0caa01
--- /dev/null
@@ -0,0 +1,50 @@
+const path = require('path')
+
+let entryPlugin = {
+  name: 'entry',
+  setup(build) {
+    build.onResolve({filter: /^(index|server)\.ts$/}, args => {
+      return {
+        path: args.path,
+        namespace: 'entry-ns'
+      }
+    })
+    build.onLoad({filter: /.*/, namespace: 'entry-ns'}, args => {
+      let contents = ''
+      if (args.path == 'index.ts') {
+        contents = `
+        import {activate} from './src/index'
+        export {activate}
+        `
+      } else if (args.path == 'server.ts') {
+        contents = `require('./server/node/jsonServerMain')`
+      } else {
+        throw new Error('Bad path')
+      }
+      return {
+        contents,
+        resolveDir: __dirname
+      }
+    })
+  }
+}
+
+async function start() {
+  await require('esbuild').build({
+    entryPoints: ['index.ts', 'server.ts'],
+    define: {'process.env.NODE_ENV': JSON.stringify("production")},
+    bundle: true,
+    platform: 'node',
+    target: 'node12.16',
+    mainFields: ['module', 'main'],
+    minify: true,
+    sourcemap: true,
+    external: ['coc.nvim'],
+    outdir: path.resolve(__dirname, 'lib'),
+    plugins: [entryPlugin]
+  })
+}
+
+start().catch(e => {
+  console.error(e)
+})