@depack/nodejs
v1.1.4
Published
Mocks Of Built-In Node.JS Modules To Use For Compilation.
Downloads
110
Maintainers
Readme
@depack/nodejs
@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