{"bugs":{"url":"https://github.com/Sneezry/vscode-express/issues"},"dist":{"shasum":"477975350b3aed5c90d16d6abf14d932e013b261","tarball":"https://registry.npmjs.org/vscode-express/-/vscode-express-1.0.0-rc.tgz","fileCount":5,"integrity":"sha512-UYKvJAmuzN167R7ErgbuHznyWERtbboGRBTrrSqaFzIIl8vA2FIMR4rXo5C0MAeez2plQjkMJOoP+Xbxq6oetQ==","signatures":[{"sig":"MEUCIQCMVfV3fXmQ3z0DRZxSuGdZyxqvk4WLG7r3YzmA1FbqEgIgSA9ueq4wvmip7YknmxW4Ym/96lFSZrK+GwSiGTzzXZU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10149,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdSa2CRA9TVsSAnZWagAAjS4QAKR6qxJZcHt35Q324J9Y\n9CiMo2L5G7AdXz4AdHxyUxrGy/ShwNQU372f/Fff4YFoa5n7kvVXyGHO9vL6\nWMyjQdDkG4T+2iFv6jy/6537G6/G/iKu4VHTrYppkCXQi7AYmO3VQ5NAE3Yx\nZli+mjRKzIaR+5+54gtTWXgyiGcRGQ2ZipjtjB6rV+fRGhK41cYRVTz3TfM/\n5AQCXfTvMFEeysccrSLIqr/2zdm8olz4to601jgk9eOKSpLCbiUHWdW78F2R\nb+Ps2d76mi3Mgc9ahqj/9emlqmJ4m4+XN9tUJcL48scZ0lX+/bBHufj4AKb0\nRiq3FZJ/H2AAO+OK2u3Misx2r7rYbS74LbGsjfiNR69B4wWdmGare+9R8FOe\nCHPqVvFnmjHHDb+aVxcw/y6Srd9et1Z9oibgpOx7l55J0eundDLvoYILt/q8\nx/D2sa1BcPYXSYuBzpBr9O7/P4JO6DxAAZT8cwF1U9NuJuzbTSqdT1Yqs9Od\n136uqpnXRQ8etxE1QQsJPCNpHIwCiOGow5z3YQ497noIyd0jzJJcQ5AXlFMJ\nFJeFrrz4elyWI02wIbtayqv6odhRUt0A9mVc8VqFVY1foSHmyQ23pQ+FOogB\nfKWyZdbMbkh7C7YEV5RMOmvaQIJWu8H0RU6+GxkKxPNIm7DhjfgXxLKmEx5i\nImDC\r\n=959G\r\n-----END PGP SIGNATURE-----\r\n"},"main":"out/index.js","name":"vscode-express","_from":"file:vscode-express-1.0.0-rc.tgz","author":{"name":"Zhe Li"},"readme":"# vscode-express\r\n\r\nCreate an HTTP server in VS Code for user interface of VS Code extension.\r\n\r\n## Get Started\r\n\r\n### Install\r\n\r\n```\r\nnpm install vscode-express --save\r\n```\r\n\r\n### Import and Initialize\r\n\r\n```typescript\r\nimport * as vscode from 'vscode';\r\nimport {VSCExpress} from 'vscode-express';\r\n\r\nexport function activate(context: vscode.ExtensionContext) {\r\n    // initial vscode express\r\n    const vscexpress = new VSCExpress(context, 'view');\r\n    // register command\r\n    context.subscriptions.push(vscode.commands.registerCommand('extension.vscexpress', () => {\r\n        vscexpress.open('index.html', 'VS Code Express Example', vscode.ViewColumn.One);\r\n    }));\r\n\r\n    // rest code...\r\n}\r\n```\r\n\r\n### In Web\r\n\r\nInsert script below in your web page:\r\n\r\n```javascript\r\nconst callbackStack = [];\r\nconst vscode = acquireVsCodeApi();\r\n\r\nfunction command(cmd, callback) {\r\n  if (!cmd) {\r\n    return;\r\n  }\r\n  let args = Array.from(arguments);\r\n  if (typeof args[args.length - 1] === 'function') {\r\n    callback = args[args.length - 1];\r\n    args.length = args.length - 1;\r\n  } else {\r\n    callback = undefined;\r\n  }\r\n  args.shift();\r\n  const messageId = new Date().getTime() + Math.random();\r\n  \r\n  callbackStack.push({\r\n    messageId,\r\n    callback\r\n  });\r\n\r\n  vscode.postMessage({\r\n    messageId,\r\n    command: cmd,\r\n    parameter: args\r\n  });\r\n}\r\n\r\nwindow.addEventListener('message', event => {\r\n  const message = event.data;\r\n\r\n  for (let index = 0; index < callbackStack.length; index++) {\r\n    const callbackItem = callbackStack[index];\r\n    if (callbackItem.messageId === message.messageId) {\r\n      if (callbackItem.callback) {\r\n        callbackItem.callback(message.payload);\r\n      }\r\n      callbackStack.splice(index, 1);\r\n      break;\r\n    }\r\n  }\r\n});\r\n```\r\n\r\nAnd call VS Code command with `command` function. Such as:\r\n\r\n```javascript\r\ncommand('extension.sayHello');\r\n```\r\n\r\nYou can also do something after the command executed with callback:\r\n\r\n```javascript\r\ncommand('extension.sayHello', function(res) {\r\n    // res.code === 0 with success,\r\n    // res.message is error message if error occurred\r\n    // do something\r\n});\r\n```\r\n\r\nIf you need pass parameter to the command, send it with `command`:\r\n\r\n```javascript\r\ncommand('extension.command', 'arg1', 'arg2', callback);\r\n```\r\n\r\n## Example\r\n\r\n<https://github.com/Sneezry/vscode-express-example>\r\n\r\n## Build from Source\r\n\r\n```\r\ngit clone https://github.com/Sneezry/vscode-express.git\r\ncd vscode express\r\n```\r\n\r\nAnd you need add `prepare` script in `package.json` for `npm install`:\r\n\r\n```\r\n  ...\r\n  \"fix\": \"gts fix\",\r\n  \"prepare\": \"node ./node_modules/vscode/bin/install\"\r\n}\r\n```\r\n\r\nThen run `npm install`\r\n\r\n```\r\nnpm install\r\nnpm run compile\r\n```\r\n\r\nTo run the example, compile the code first, then open the example folder with VS Code:\r\n\r\n```\r\ncode example\r\n```\r\n\r\nIn VS Code, press `F5` to start debug.\r\n\r\n## License\r\n\r\nMIT License","engines":{"vscode":"^1.30.0"},"license":"MIT","scripts":{"fix":"gts fix","check":"gts check","clean":"gts clean","compile":"tsc -p ./"},"_npmUser":{"name":"sneezry","email":"lizhe@lizhe.org"},"homepage":"https://github.com/Sneezry/vscode-express#readme","keywords":["vscode","express"],"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/Sneezry/vscode-express.git","type":"git"},"_npmVersion":"6.4.1","description":"Create an HTTP server in VS Code for user interface of VS Code extension.","directories":{},"maintainers":[{"name":"sneezry","email":"lizhe@lizhe.org"}],"_nodeVersion":"8.12.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"gts":"^0.5.4","vscode":"^1.1.30","typescript":"^2.8.1","@types/uuid":"^3.4.3","@types/express":"^4.11.1"},"_npmOperationalInternal":{"tmp":"tmp/vscode-express_1.0.0-rc_1551181494121_0.8251853136626754","host":"s3://npm-registry-packages"},"_id":"vscode-express@1.0.0-rc","version":"1.0.0-rc"}