Share a secret across ES6 specific modules, so that other modules cannot access the secret?

/#!/JoePea joe at trusktr.io
Mon Apr 16 16:24:52 UTC 2018


I think it'd be nice if there was something also easier, based only on file
names or directory structure.

```js
// log-foo.js
import Foo from './Foo'
console.log(Foo)
```

```js
// Foo.js
class Foo {}
export Foo for './log-foo'

// or with expressions, all files in this folder
export Foo for './*'
```

I know, someone can stick a file in there then, but at least it gives a
"don't mess with this unless you know what you're doing" message like many
other things in JavaScript (f.e. redefining a configurable property even if
writable is false).

We'll, I suppose even with public keys, a use can just replace your module
in the file system with their own, so the same "be careful" principal still
applies there.

Of course, network-modules won't have the filesystem-module problem, so
probably both filename approach and box approach would be secure with
network modules (just needs infrastructure for passing that info around).

On Sun, Apr 15, 2018, 11:58 AM Mike Samuel <mikesamuel at gmail.com> wrote:

> The box function defined in github.com/mikesamuel/tc39-module-keys
> enables things like this.
>
>
> On Sun, Apr 23, 2017 at 4:42 PM, /#!/JoePea <joe at trusktr.io> wrote:
>
>> Is there a way to share some secret value across a few modules, and
>> prevent other modules? f.e. prevent modules of an app dev who is importing
>> modules of a library where the library wants to share private stuff across
>> its modules. Is this possible to implement somehow?
>>
>> WeakMaps can be encapsulated inside a module to implement "private"
>> properties for a class defined inside that module and then exported. But
>> "protected" can't be implemented with a WeakMap shared with modules because
>> then end-user app code can import the WeakMap and read all the stuff. Is
>> there some way to share a WeakMap private with classes defined across
>> modules?
>>
>> */#!/*JoePea
>>
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20180416/e98ab604/attachment.html>


More information about the es-discuss mailing list