Vm2: Estendendo require () ainda mais

Criado em 15 jul. 2016  ·  4Comentários  ·  Fonte: patriksimek/vm2

Eu gostaria de uma opção que é uma função que leva vm2 require como um argumento e retorna uma nova função que deve ser usada em vez de vm2 require .

feature request stale

Comentários muito úteis

Algo relevante: estou usando um sistema de arquivos personalizado para o código enviado pelo usuário. Existe uma maneira de lidar manualmente com as necessidades locais, como require('./otherUserSubmittedFile') , obtendo o arquivo do sistema de arquivos personalizado e entregando-o a vm2 para o sandbox?

Atualização :
Muito rudimentar, mas implementou algo na linha de arquivos personalizados / virtuais: https://github.com/bartjoyce/vm2-with-custom-fs

O uso seria algo assim:

NodeVM.file('/customfs/main.js', {
  require: {
    external: true,
    root: '/customfs/', // restrict local requires to within the custom fs
  },
  customfs: {
    getFileContents: (filename) => /* handle /customfs/ file read */,
    exists: (filename) => /* ... */,
    isDirectory: (filename) => /* ... */
  }
})

Todos 4 comentários

Algo relevante: estou usando um sistema de arquivos personalizado para o código enviado pelo usuário. Existe uma maneira de lidar manualmente com as necessidades locais, como require('./otherUserSubmittedFile') , obtendo o arquivo do sistema de arquivos personalizado e entregando-o a vm2 para o sandbox?

Atualização :
Muito rudimentar, mas implementou algo na linha de arquivos personalizados / virtuais: https://github.com/bartjoyce/vm2-with-custom-fs

O uso seria algo assim:

NodeVM.file('/customfs/main.js', {
  require: {
    external: true,
    root: '/customfs/', // restrict local requires to within the custom fs
  },
  customfs: {
    getFileContents: (filename) => /* handle /customfs/ file read */,
    exists: (filename) => /* ... */,
    isDirectory: (filename) => /* ... */
  }
})

@bartjoyce Eu preciso da mesma coisa! Seu link está quebrado, você o moveu para algum lugar?

@callumlocke Desde então, mudei para outros projetos e parei de manter o código. O código que escrevi está aqui: https://github.com/bartjoyce/vm2/

São 30 commits atrás, mas pelo menos você pode ver as modificações que fiz.

Compromisso importante é este: https://github.com/bartjoyce/vm2/commit/302e910610c0e1f1ef7a1d15a19a02828715f630

Fiz alterações adicionais em vm2 que não estão em meu repo. Se você quiser ver também, me avise.

Este problema foi marcado automaticamente como obsoleto porque não teve atividades recentes. Ele será fechado se nenhuma outra atividade ocorrer. Obrigado por suas contribuições.

Esta página foi útil?
0 / 5 - 0 avaliações