@depack/nodejs

    1.1.4 • Public • Published

    @depack/nodejs

    npm version

    @depack/nodejs is Mocks Of Built-In Node.JS Modules To Use For Compilation. It is used in Depack for compilation of Node.JS programs using Google Closure Compiler.

    yarn add -E @depack/nodejs

    Table Of Contents

    API

    The package publishes the builtin-modules folder with the source code of modules that will be mocked. It provides a simple function to get the path to the folder that contains builtin-modules.

    import nodejs from '@depack/nodejs'

    getCorePath(
      version?: string,
    ): string

    Returns the path to resolved builtin-modules within this package. Currently, only v8 is supported and will be returned by default.

    /* alanode example/ */
    import nodejs from '@depack/nodejs'
    
    const res = nodejs()
    console.log(res)
    node_modules/@depack/nodejs/builtin-modules/v8
    

    The process of generation of mocks consists of iterating though the list from require('module').builtinModules, requiring each of them and seeing what keys exist. They should align with the Node.JS externs generated using @depack/externs.

    Example

    This is an example of generated mock for the querystring built-in Node.JS module:

    export default querystring
    export const {
      decode,
      encode,
      escape,
      parse,
      stringify,
      unescape,
    } = querystring

    Ignored API

    Some imported modules will contain API properties which are not documented and will not form part of externs. They are ignored and should not be used if not documented. There are also instances when externs have not implemented certain APIs. The full list is given below:

    export default {
      os: ['getNetworkInterfaces', 'tmpDir'],
      fs: ['F_OK', 'FileReadStream', 'FileWriteStream', 'R_OK', 'W_OK', 'X_OK'],
      // missing in externs
      assert: ['strict', 'rejects', 'doesNotReject'],
      zlib: ['codes', 'Z_MIN_WINDOWBITS', 'Z_MIN_MEMLEVEL', 'Z_MIN_LEVEL',
        'Z_MIN_CHUNK', 'Z_MAX_WINDOWBITS', 'Z_MAX_MEMLEVEL', 'Z_MAX_LEVEL',
        'Z_MAX_CHUNK', 'Z_DEFAULT_WINDOWBITS', 'Z_DEFAULT_MEMLEVEL',
        'Z_DEFAULT_LEVEL', 'Z_DEFAULT_CHUNK', 'ZLIB_VERNUM', 'UNZIP',
        'INFLATERAW', 'INFLATE', 'GZIP', 'GUNZIP', 'DEFLATERAW', 'DEFLATE'],
      vm: ['createScript'],
      // missing in externs
      v8: ['serialize', 'deserialize', 'cachedDataVersionTag', 'Serializer',
        'Deserializer', 'DefaultSerializer', 'DefaultDeserializer'],
      // missing in externs
      cluster: ['domain', 'SCHED_NONE', 'SCHED_RR', 'schedulingPolicy'],
      module: ['wrapper', 'globalPaths'],
      stream: ['super_'],
      // missing in externs
      crypto: ['Cipheriv', 'Decipheriv', 'DiffieHellmanGroup', 'Sign', 'constants',
        'createDiffieHellmanGroup', 'prng', 'rng', 'setEngine'],
      url: ['resolveObject'],
      events: ['usingDomains', 'listenerCount', 'init', 'defaultMaxListeners'],
      querystring: ['unescapeBuffer'],
    }

    There also remains errors and warnings that have not been ignored or fixed yet, they can be found here: https://github.com/dpck/externs#wip.


    Depack does not support:

    • [ ] inspector
    • [ ] string_decoder
    • [ ] sys

    Copyright

    Art Deco © Art Deco for Depack 2019 Tech Nation Visa Tech Nation Visa Sucks

    Install

    npm i @depack/nodejs

    DownloadsWeekly Downloads

    4

    Version

    1.1.4

    License

    MIT

    Unpacked Size

    25 kB

    Total Files

    51

    Last publish

    Collaborators

    • zvr