diff --git a/nodelibs/browser/assert/strict.js b/nodelibs/browser/assert/strict.js new file mode 100644 index 0000000..3f66e5d --- /dev/null +++ b/nodelibs/browser/assert/strict.js @@ -0,0 +1,29 @@ +import { strict } from '../assert.js'; +export { strict as default, strict } from '../assert.js'; +import '../chunk-70ce19f7.js'; +import '../chunk-6cc4de3c.js'; +import '../chunk-debdd147.js'; + +const { + fail, + AssertionError, + ok, + equal, + notEqual, + deepEqual, + notDeepEqual, + deepStrictEqual, + notDeepStrictEqual, + strictEqual, + notStrictEqual, + throws, + rejects, + doesNotThrow, + doesNotReject, + ifError, + match, + doesNotMatch, + CallTracker +} = strict; + +export { AssertionError, CallTracker, deepEqual, deepStrictEqual, doesNotMatch, doesNotReject, doesNotThrow, equal, fail, ifError, match, notDeepEqual, notDeepStrictEqual, notEqual, notStrictEqual, ok, rejects, strictEqual, throws }; diff --git a/nodelibs/browser/chunk-ea28c117.js b/nodelibs/browser/chunk-c84486c7.js similarity index 90% rename from nodelibs/browser/chunk-ea28c117.js rename to nodelibs/browser/chunk-c84486c7.js index ea9670e..e6620f5 100644 --- a/nodelibs/browser/chunk-ea28c117.js +++ b/nodelibs/browser/chunk-c84486c7.js @@ -2,7 +2,7 @@ function unimplemented () { throw new Error('Node.js fs promises module is not supported by JSPM core in the browser'); } -var fsPromises = { +var promises = { access: unimplemented, copyFile: unimplemented, open: unimplemented, @@ -30,9 +30,9 @@ var fsPromises = { readFile: unimplemented }; -var promises = /*#__PURE__*/Object.freeze({ +var promises$1 = /*#__PURE__*/Object.freeze({ __proto__: null, - 'default': fsPromises, + 'default': promises, access: unimplemented, copyFile: unimplemented, open: unimplemented, @@ -60,4 +60,4 @@ var promises = /*#__PURE__*/Object.freeze({ readFile: unimplemented }); -export { fsPromises as f, promises as p, unimplemented as u }; +export { promises as a, promises$1 as p, unimplemented as u }; diff --git a/nodelibs/browser/dns/promises.js b/nodelibs/browser/dns/promises.js new file mode 100644 index 0000000..19a51b7 --- /dev/null +++ b/nodelibs/browser/dns/promises.js @@ -0,0 +1,27 @@ +function unimplemented () { + throw new Error('Node.js dns is not supported by JSPM core outside of Node.js'); +} + +var promises = { + lookup: unimplemented, + lookupService: unimplemented, + Resolver: unimplemented, + getServers: unimplemented, + resolve: unimplemented, + resolve4: unimplemented, + resolve6: unimplemented, + resolveAny: unimplemented, + resolveCname: unimplemented, + resolveMx: unimplemented, + resolveNaptr: unimplemented, + resolveNs: unimplemented, + resolvePtr: unimplemented, + resolveSoa: unimplemented, + resolveSrv: unimplemented, + resolveTxt: unimplemented, + reverse: unimplemented, + setServers: unimplemented +}; + +export default promises; +export { unimplemented as Resolver, unimplemented as getServers, unimplemented as lookup, unimplemented as lookupService, unimplemented as resolve, unimplemented as resolve4, unimplemented as resolve6, unimplemented as resolveAny, unimplemented as resolveCname, unimplemented as resolveMx, unimplemented as resolveNaptr, unimplemented as resolveNs, unimplemented as resolvePtr, unimplemented as resolveSoa, unimplemented as resolveSrv, unimplemented as resolveTxt, unimplemented as reverse, unimplemented as setServers }; diff --git a/nodelibs/browser/fs.js b/nodelibs/browser/fs.js index feca392..efc9e45 100644 --- a/nodelibs/browser/fs.js +++ b/nodelibs/browser/fs.js @@ -1,5 +1,5 @@ -import { p as promises } from './chunk-ea28c117.js'; -export { p as promises } from './chunk-ea28c117.js'; +import { p as promises } from './chunk-c84486c7.js'; +export { p as promises } from './chunk-c84486c7.js'; function unimplemented () { throw new Error('Node.js fs module is not supported by JSPM core in the browser'); diff --git a/nodelibs/browser/fs-promises.js b/nodelibs/browser/fs/promises.js similarity index 65% rename from nodelibs/browser/fs-promises.js rename to nodelibs/browser/fs/promises.js index e2ab04f..2a270c7 100644 --- a/nodelibs/browser/fs-promises.js +++ b/nodelibs/browser/fs/promises.js @@ -1 +1 @@ -export { u as access, u as appendFile, u as chmod, u as chown, u as copyFile, f as default, u as lchmod, u as lchown, u as link, u as lstat, u as mkdir, u as mkdtemp, u as open, u as opendir, u as readFile, u as readdir, u as readlink, u as realpath, u as rename, u as rmdir, u as stat, u as symlink, u as truncate, u as unlink, u as utimes, u as writeFile } from './chunk-ea28c117.js'; +export { u as access, u as appendFile, u as chmod, u as chown, u as copyFile, a as default, u as lchmod, u as lchown, u as link, u as lstat, u as mkdir, u as mkdtemp, u as open, u as opendir, u as readFile, u as readdir, u as readlink, u as realpath, u as rename, u as rmdir, u as stat, u as symlink, u as truncate, u as unlink, u as utimes, u as writeFile } from '../chunk-c84486c7.js'; diff --git a/nodelibs/browser/path/posix.js b/nodelibs/browser/path/posix.js new file mode 100644 index 0000000..43ee671 --- /dev/null +++ b/nodelibs/browser/path/posix.js @@ -0,0 +1,42 @@ +import { posix as posix$1 } from '../path.js'; +export { posix } from '../path.js'; +import '../chunk-ff683bf6.js'; +import '../chunk-debdd147.js'; + +const { + resolve, + normalize, + isAbsolute, + join, + relative, + _makeLong, + dirname, + basename, + extname, + format, + parse, + sep, + delimiter, + win32 +} = posix$1; + +var posix = { + resolve, + normalize, + isAbsolute, + join, + relative, + _makeLong, + dirname, + basename, + extname, + format, + parse, + sep, + delimiter, + posix: posix$1, + win32 +}; + +export default posix; +export { _makeLong, basename, delimiter, dirname, extname, format, isAbsolute, join, normalize, parse, relative, resolve, sep, win32 }; diff --git a/nodelibs/browser/path/win32.js b/nodelibs/browser/path/win32.js new file mode 100644 index 0000000..05cce47 --- /dev/null +++ b/nodelibs/browser/path/win32.js @@ -0,0 +1,29 @@ +import { posix } from '../path.js'; +export { posix } from '../path.js'; +import '../chunk-ff683bf6.js'; +import '../chunk-debdd147.js'; + +function unimplemented () { + throw new Error('Node.js path/win32 module is not supported by JSPM core in the browser'); +} + +const win32 = { + resolve: unimplemented, + normalize: unimplemented, + isAbsolute: unimplemented, + join: unimplemented, + relative: unimplemented, + _makeLong: unimplemented, + dirname: unimplemented, + basename: unimplemented, + extname: unimplemented, + format: unimplemented, + parse: unimplemented, + sep: unimplemented, + delimiter: unimplemented, + posix, +}; +win32.win32 = win32; + +export default win32; +export { unimplemented as _makeLong, unimplemented as basename, unimplemented as delimiter, unimplemented as dirname, unimplemented as extname, unimplemented as format, unimplemented as isAbsolute, unimplemented as join, unimplemented as normalize, unimplemented as parse, unimplemented as relative, unimplemented as resolve, unimplemented as sep, win32 }; diff --git a/nodelibs/browser/stream.js b/nodelibs/browser/stream.js index 47f3cfe..928c4e8 100644 --- a/nodelibs/browser/stream.js +++ b/nodelibs/browser/stream.js @@ -1,5 +1,6 @@ import { y } from './chunk-fc3dcdfd.js'; import { a as dew$1, b as dew$2, c as dew$3, e as dew$4, f as dew$5, g as dew$6, h as dew$7, d as dew$8 } from './chunk-59a7ef50.js'; +import { promisify } from './util.js'; import './chunk-b5c7359e.js'; import './chunk-bd86cb5d.js'; import './chunk-6cc4de3c.js'; @@ -141,5 +142,10 @@ var finished = stream.finished; var pipeline = stream.pipeline; var Stream = stream.Stream; +const promises = { + finished: promisify(stream.finished), + pipeline: promisify(stream.pipeline) +}; + export default stream; -export { Duplex, PassThrough, Readable, Stream, Transform, Writable, finished, pipeline }; +export { Duplex, PassThrough, Readable, Stream, Transform, Writable, finished, pipeline, promises }; diff --git a/nodelibs/browser/stream/promises.js b/nodelibs/browser/stream/promises.js new file mode 100644 index 0000000..fc5b48e --- /dev/null +++ b/nodelibs/browser/stream/promises.js @@ -0,0 +1,13 @@ +import { promises } from '../stream.js'; +export { promises as default } from '../stream.js'; +import '../chunk-fc3dcdfd.js'; +import '../chunk-59a7ef50.js'; +import '../chunk-b5c7359e.js'; +import '../chunk-bd86cb5d.js'; +import '../chunk-6cc4de3c.js'; +import '../chunk-debdd147.js'; +import '../util.js'; + +const { finished, pipeline } = promises; + +export { finished, pipeline }; diff --git a/nodelibs/browser/timers/promises.js b/nodelibs/browser/timers/promises.js new file mode 100644 index 0000000..64a3dd6 --- /dev/null +++ b/nodelibs/browser/timers/promises.js @@ -0,0 +1,18 @@ +import { promisify } from '../util.js'; +import timers from '../timers.js'; +import '../chunk-bd86cb5d.js'; +import '../chunk-6cc4de3c.js'; +import '../chunk-debdd147.js'; + +const setTimeout = promisify(timers.setTimeout), + setImmediate = promisify(timers.setImmediate), + setInterval = promisify(timers.setInterval); + +var promises = { + setTimeout, + setImmediate, + setInterval +}; + +export default promises; +export { setImmediate, setInterval, setTimeout }; diff --git a/nodelibs/browser/util.js b/nodelibs/browser/util.js index 90546f7..bc6bf71 100644 --- a/nodelibs/browser/util.js +++ b/nodelibs/browser/util.js @@ -27,5 +27,6 @@ var isSymbol = X.isSymbol; var isUndefined = X.isUndefined; var log = X.log; var promisify = X.promisify; +var types = X.types; -export { _extend, callbackify, debuglog, deprecate, format, inherits, inspect, isArray, isBoolean, isBuffer, isDate, isError, isFunction, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isRegExp, isString, isSymbol, isUndefined, log, promisify }; +export { _extend, callbackify, debuglog, deprecate, format, inherits, inspect, isArray, isBoolean, isBuffer, isDate, isError, isFunction, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isRegExp, isString, isSymbol, isUndefined, log, promisify, types }; diff --git a/nodelibs/browser/util/types.js b/nodelibs/browser/util/types.js new file mode 100644 index 0000000..fe83671 --- /dev/null +++ b/nodelibs/browser/util/types.js @@ -0,0 +1,52 @@ +import { types } from '../util.js'; +export { types as default } from '../util.js'; +import '../chunk-bd86cb5d.js'; +import '../chunk-6cc4de3c.js'; +import '../chunk-debdd147.js'; + +const { + isExternal, + isDate, + isArgumentsObject, + isBigIntObject, + isBooleanObject, + isNumberObject, + isStringObject, + isSymbolObject, + isNativeError, + isRegExp, + isAsyncFunction, + isGeneratorFunction, + isGeneratorObject, + isPromise, + isMap, + isSet, + isMapIterator, + isSetIterator, + isWeakMap, + isWeakSet, + isArrayBuffer, + isDataView, + isSharedArrayBuffer, + isProxy, + isModuleNamespaceObject, + isAnyArrayBuffer, + isBoxedPrimitive, + isArrayBufferView, + isTypedArray, + isUint8Array, + isUint8ClampedArray, + isUint16Array, + isUint32Array, + isInt8Array, + isInt16Array, + isInt32Array, + isFloat32Array, + isFloat64Array, + isBigInt64Array, + isBigUint64Array, + isKeyObject, + isCryptoKey +} = types; + +export { isAnyArrayBuffer, isArgumentsObject, isArrayBuffer, isArrayBufferView, isAsyncFunction, isBigInt64Array, isBigIntObject, isBigUint64Array, isBooleanObject, isBoxedPrimitive, isCryptoKey, isDataView, isDate, isExternal, isFloat32Array, isFloat64Array, isGeneratorFunction, isGeneratorObject, isInt16Array, isInt32Array, isInt8Array, isKeyObject, isMap, isMapIterator, isModuleNamespaceObject, isNativeError, isNumberObject, isPromise, isProxy, isRegExp, isSet, isSetIterator, isSharedArrayBuffer, isStringObject, isSymbolObject, isTypedArray, isUint16Array, isUint32Array, isUint8Array, isUint8ClampedArray, isWeakMap, isWeakSet }; diff --git a/nodelibs/browser/zlib.js b/nodelibs/browser/zlib.js index 5aa3c4e..be739de 100644 --- a/nodelibs/browser/zlib.js +++ b/nodelibs/browser/zlib.js @@ -6,6 +6,7 @@ import './chunk-bd86cb5d.js'; import { X } from './chunk-6cc4de3c.js'; import './chunk-fc3dcdfd.js'; import './chunk-59a7ef50.js'; +import './util.js'; var exports$c = {}, _dewExec$c = false; diff --git a/nodelibs/deno/assert/strict.ts b/nodelibs/deno/assert/strict.ts new file mode 100644 index 0000000..bc31762 --- /dev/null +++ b/nodelibs/deno/assert/strict.ts @@ -0,0 +1,26 @@ +import { strict } from '../assert.ts'; + +export { + fail, + AssertionError, + ok, + equal, + notEqual, + deepEqual, + notDeepEqual, + deepStrictEqual, + notDeepStrictEqual, + strictEqual, + notStrictEqual, + throws, + rejects, + doesNotThrow, + doesNotReject, + // ifError, + match, + doesNotMatch, + // CallTracker +} from '../assert.ts'; + +export { strict } +export default strict; diff --git a/nodelibs/deno/fs.ts b/nodelibs/deno/fs.ts index 5000fb6..2cf8f25 100644 --- a/nodelibs/deno/fs.ts +++ b/nodelibs/deno/fs.ts @@ -1,10 +1,16 @@ import { notImplemented } from 'https://deno.land/std@0.103.0/node/_utils.ts'; export * from 'https://deno.land/std@0.103.0/node/fs.ts'; import fs from 'https://deno.land/std@0.103.0/node/fs.ts'; +import * as promises from './fs/promises.ts'; + +export { promises } export function writev () { notImplemented('fs.writev'); } +// @ts-ignore fs.writev = writev; +fs.promises = promises; + export default fs; diff --git a/nodelibs/deno/fs-promises.ts b/nodelibs/deno/fs/promises.ts similarity index 95% rename from nodelibs/deno/fs-promises.ts rename to nodelibs/deno/fs/promises.ts index e876565..b3f4ec2 100644 --- a/nodelibs/deno/fs-promises.ts +++ b/nodelibs/deno/fs/promises.ts @@ -1,5 +1,5 @@ -import { promisify } from './util.ts'; -import * as fs from './fs.ts'; +import { promisify } from '../util.ts'; +import * as fs from '../fs.ts'; // Can be directly aliased pending https://github.com/denoland/deno_std/pull/1083 diff --git a/nodelibs/deno/path/posix.ts b/nodelibs/deno/path/posix.ts new file mode 100644 index 0000000..1f7119d --- /dev/null +++ b/nodelibs/deno/path/posix.ts @@ -0,0 +1,38 @@ +import { posix } from 'https://deno.land/std@0.103.0/node/path.ts'; + +export const { + resolve, + normalize, + isAbsolute, + join, + relative, + // _makeLong, + dirname, + basename, + extname, + format, + parse, + sep, + delimiter, + // win32 +} = posix; + +export { posix } + +export default { + resolve, + normalize, + isAbsolute, + join, + relative, + // _makeLong, + dirname, + basename, + extname, + format, + parse, + sep, + delimiter, + posix, + // win32 +}; diff --git a/nodelibs/deno/path/win32.ts b/nodelibs/deno/path/win32.ts new file mode 100644 index 0000000..ee2a8b9 --- /dev/null +++ b/nodelibs/deno/path/win32.ts @@ -0,0 +1,38 @@ +import { win32 } from 'https://deno.land/std@0.103.0/node/path.ts'; + +export const { + resolve, + normalize, + isAbsolute, + join, + relative, + // _makeLong, + dirname, + basename, + extname, + format, + parse, + sep, + delimiter, + // posix +} = win32; + +export { win32 } + +export default { + resolve, + normalize, + isAbsolute, + join, + relative, + // _makeLong, + dirname, + basename, + extname, + format, + parse, + sep, + delimiter, + // posix, + win32 +}; diff --git a/nodelibs/deno/stream/promises.ts b/nodelibs/deno/stream/promises.ts new file mode 100644 index 0000000..ac6402a --- /dev/null +++ b/nodelibs/deno/stream/promises.ts @@ -0,0 +1,4 @@ +import { promises } from '../stream.ts'; + +export const { finished, pipeline } = promises; +export default promises; diff --git a/nodelibs/deno/timers/promises.ts b/nodelibs/deno/timers/promises.ts new file mode 100644 index 0000000..3d804cb --- /dev/null +++ b/nodelibs/deno/timers/promises.ts @@ -0,0 +1,12 @@ +import { promisify } from '../util.ts'; +import timers from '../timers.ts'; + +export const setTimeout = promisify(timers.setTimeout), + setImmediate = promisify(timers.setImmediate), + setInterval = promisify(timers.setInterval); + +export default { + setTimeout, + setImmediate, + setInterval +}; diff --git a/nodelibs/deno/util/types.ts b/nodelibs/deno/util/types.ts new file mode 100644 index 0000000..f46025c --- /dev/null +++ b/nodelibs/deno/util/types.ts @@ -0,0 +1,47 @@ +import { types } from 'https://deno.land/std@0.103.0/node/util.ts'; +export { types as default } from 'https://deno.land/std@0.103.0/node/util.ts'; + +export const { + // isExternal, + isDate, + isArgumentsObject, + isBigIntObject, + isBooleanObject, + isNumberObject, + isStringObject, + isSymbolObject, + isNativeError, + isRegExp, + isAsyncFunction, + isGeneratorFunction, + isGeneratorObject, + isPromise, + isMap, + isSet, + isMapIterator, + isSetIterator, + isWeakMap, + isWeakSet, + isArrayBuffer, + isDataView, + isSharedArrayBuffer, + // isProxy, + isModuleNamespaceObject, + isAnyArrayBuffer, + isBoxedPrimitive, + isArrayBufferView, + isTypedArray, + isUint8Array, + isUint8ClampedArray, + isUint16Array, + isUint32Array, + isInt8Array, + isInt16Array, + isInt32Array, + isFloat32Array, + isFloat64Array, + isBigInt64Array, + isBigUint64Array, + // isKeyObject, + // isCryptoKey +} = types; diff --git a/nodelibs/node/assert/strict.js b/nodelibs/node/assert/strict.js new file mode 100644 index 0000000..cdb8831 --- /dev/null +++ b/nodelibs/node/assert/strict.js @@ -0,0 +1,2 @@ +export { default } from 'node:assert/strict'; +export * from 'node:assert/strict'; diff --git a/nodelibs/node/dns/promises.js b/nodelibs/node/dns/promises.js new file mode 100644 index 0000000..5501a6c --- /dev/null +++ b/nodelibs/node/dns/promises.js @@ -0,0 +1,2 @@ +export { default } from 'node:dns/promises'; +export * from 'node:dns/promises'; diff --git a/nodelibs/node/fs-promises.js b/nodelibs/node/fs/promises.js similarity index 100% rename from nodelibs/node/fs-promises.js rename to nodelibs/node/fs/promises.js diff --git a/nodelibs/node/path/posix.js b/nodelibs/node/path/posix.js new file mode 100644 index 0000000..57a7e8f --- /dev/null +++ b/nodelibs/node/path/posix.js @@ -0,0 +1,2 @@ +export { default } from 'node:path/posix'; +export * from 'node:path/posix'; diff --git a/nodelibs/node/path/win32.js b/nodelibs/node/path/win32.js new file mode 100644 index 0000000..0bd7b88 --- /dev/null +++ b/nodelibs/node/path/win32.js @@ -0,0 +1,2 @@ +export { default } from 'node:path/win32'; +export * from 'node:path/win32'; diff --git a/nodelibs/node/stream/promises.js b/nodelibs/node/stream/promises.js new file mode 100644 index 0000000..28933c0 --- /dev/null +++ b/nodelibs/node/stream/promises.js @@ -0,0 +1,2 @@ +export { default } from 'node:stream/promises'; +export * from 'node:stream/promises'; diff --git a/nodelibs/node/stream/web.js b/nodelibs/node/stream/web.js new file mode 100644 index 0000000..d32f09f --- /dev/null +++ b/nodelibs/node/stream/web.js @@ -0,0 +1,2 @@ +export { default } from 'node:stream/web'; +export * from 'node:stream/web'; diff --git a/nodelibs/node/timers/promises.js b/nodelibs/node/timers/promises.js new file mode 100644 index 0000000..5088377 --- /dev/null +++ b/nodelibs/node/timers/promises.js @@ -0,0 +1,2 @@ +export { default } from 'node:timers/promises'; +export * from 'node:timers/promises'; diff --git a/nodelibs/node/util/types.js b/nodelibs/node/util/types.js new file mode 100644 index 0000000..d4e24b9 --- /dev/null +++ b/nodelibs/node/util/types.js @@ -0,0 +1,2 @@ +export { default } from 'node:util/types'; +export * from 'node:util/types'; diff --git a/package.json b/package.json index 0e6a6cc..7b08f5b 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "timers-browserify": "^2.0.12", "tty-browserify": "^0.0.1", "url": "^0.11.0", - "util": "^0.12.3", + "util": "^0.12.4", "vm-browserify": "^1.1.2" }, "exports": { @@ -53,10 +53,10 @@ "node": "./nodelibs/node/dns.js", "default": "./nodelibs/browser/dns.js" }, - "./nodelibs/fs/promises": { - "deno": "./nodelibs/deno/fs-promises.ts", - "node": "./nodelibs/deno/fs-promises.js", - "default": "./nodelibs/browser/fs-promises.js" + "./nodelibs/dns/promises": { + "deno": "./nodelibs/browser/dns/promises.js", + "node": "./nodelibs/node/dns/promises.js", + "default": "./nodelibs/browser/dns/promises.js" }, "./nodelibs/http": { "deno": "./nodelibs/browser/http.js", diff --git a/rollup.config.mjs b/rollup.config.mjs index 64f3dc4..d76f3b1 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -5,7 +5,18 @@ import rimraf from 'rimraf'; rimraf.sync('./nodelibs/browser'); const input = Object.fromEntries( - readdirSync('./src-browser') + [ + ...readdirSync('./src-browser'), + 'assert/strict.js', + 'fs/promises.js', + 'dns/promises.js', + 'path/posix.js', + 'path/win32.js', + 'stream/promises.js', + // 'stream/web.js', + 'timers/promises.js', + 'util/types.js' + ] .filter(n => !n.startsWith('_') && n.endsWith('.js')) .map(n => [n.slice(0, -3), './src-browser/' + n]) ); diff --git a/src-browser/assert/strict.js b/src-browser/assert/strict.js new file mode 100644 index 0000000..2c64f55 --- /dev/null +++ b/src-browser/assert/strict.js @@ -0,0 +1,26 @@ +import { strict } from '../assert.js'; + +export const { + fail, + AssertionError, + ok, + equal, + notEqual, + deepEqual, + notDeepEqual, + deepStrictEqual, + notDeepStrictEqual, + strictEqual, + notStrictEqual, + throws, + rejects, + doesNotThrow, + doesNotReject, + ifError, + match, + doesNotMatch, + CallTracker +} = strict; + +export { strict } +export default strict; diff --git a/src-browser/dns/promises.js b/src-browser/dns/promises.js new file mode 100644 index 0000000..50b6730 --- /dev/null +++ b/src-browser/dns/promises.js @@ -0,0 +1,45 @@ +function unimplemented () { + throw new Error('Node.js dns is not supported by JSPM core outside of Node.js'); +} + +export { + unimplemented as lookup, + unimplemented as lookupService, + unimplemented as Resolver, + unimplemented as getServers, + unimplemented as resolve, + unimplemented as resolve4, + unimplemented as resolve6, + unimplemented as resolveAny, + unimplemented as resolveCname, + unimplemented as resolveMx, + unimplemented as resolveNaptr, + unimplemented as resolveNs, + unimplemented as resolvePtr, + unimplemented as resolveSoa, + unimplemented as resolveSrv, + unimplemented as resolveTxt, + unimplemented as reverse, + unimplemented as setServers +}; + +export default { + lookup: unimplemented, + lookupService: unimplemented, + Resolver: unimplemented, + getServers: unimplemented, + resolve: unimplemented, + resolve4: unimplemented, + resolve6: unimplemented, + resolveAny: unimplemented, + resolveCname: unimplemented, + resolveMx: unimplemented, + resolveNaptr: unimplemented, + resolveNs: unimplemented, + resolvePtr: unimplemented, + resolveSoa: unimplemented, + resolveSrv: unimplemented, + resolveTxt: unimplemented, + reverse: unimplemented, + setServers: unimplemented +}; diff --git a/src-browser/fs.js b/src-browser/fs.js index 50c04c5..f315112 100644 --- a/src-browser/fs.js +++ b/src-browser/fs.js @@ -1,4 +1,4 @@ -import * as promises from './fs-promises.js'; +import * as promises from './fs/promises.js'; function unimplemented () { throw new Error('Node.js fs module is not supported by JSPM core in the browser'); diff --git a/src-browser/fs-promises.js b/src-browser/fs/promises.js similarity index 100% rename from src-browser/fs-promises.js rename to src-browser/fs/promises.js diff --git a/src-browser/path/posix.js b/src-browser/path/posix.js new file mode 100644 index 0000000..bc8588d --- /dev/null +++ b/src-browser/path/posix.js @@ -0,0 +1,38 @@ +import { posix } from '../path.js'; + +export const { + resolve, + normalize, + isAbsolute, + join, + relative, + _makeLong, + dirname, + basename, + extname, + format, + parse, + sep, + delimiter, + win32 +} = posix; + +export { posix } + +export default { + resolve, + normalize, + isAbsolute, + join, + relative, + _makeLong, + dirname, + basename, + extname, + format, + parse, + sep, + delimiter, + posix, + win32 +}; diff --git a/src-browser/path/win32.js b/src-browser/path/win32.js new file mode 100644 index 0000000..174680c --- /dev/null +++ b/src-browser/path/win32.js @@ -0,0 +1,42 @@ +import { posix } from './posix.js'; + +function unimplemented () { + throw new Error('Node.js path/win32 module is not supported by JSPM core in the browser'); +} + +export { + unimplemented as resolve, + unimplemented as normalize, + unimplemented as isAbsolute, + unimplemented as join, + unimplemented as relative, + unimplemented as _makeLong, + unimplemented as dirname, + unimplemented as basename, + unimplemented as extname, + unimplemented as format, + unimplemented as parse, + unimplemented as sep, + unimplemented as delimiter, + posix +} + +export const win32 = { + resolve: unimplemented, + normalize: unimplemented, + isAbsolute: unimplemented, + join: unimplemented, + relative: unimplemented, + _makeLong: unimplemented, + dirname: unimplemented, + basename: unimplemented, + extname: unimplemented, + format: unimplemented, + parse: unimplemented, + sep: unimplemented, + delimiter: unimplemented, + posix, +}; +win32.win32 = win32; + +export default win32; diff --git a/src-browser/stream.js b/src-browser/stream.js index 588a62d..566bb5a 100644 --- a/src-browser/stream.js +++ b/src-browser/stream.js @@ -1,5 +1,7 @@ import stream from 'stream-browserify'; +import { promisify } from './util.js'; export default stream; + export var Readable = stream.Readable; export var Writable = stream.Writable; export var Duplex = stream.Duplex; @@ -8,3 +10,8 @@ export var PassThrough = stream.PassThrough; export var finished = stream.finished; export var pipeline = stream.pipeline; export var Stream = stream.Stream; + +export const promises = { + finished: promisify(stream.finished), + pipeline: promisify(stream.pipeline) +}; diff --git a/src-browser/stream/promises.js b/src-browser/stream/promises.js new file mode 100644 index 0000000..fc747e5 --- /dev/null +++ b/src-browser/stream/promises.js @@ -0,0 +1,4 @@ +import { promises } from '../stream.js'; + +export const { finished, pipeline } = promises; +export default promises; diff --git a/src-browser/timers.js b/src-browser/timers.js index 7ebb555..65f4cb3 100644 --- a/src-browser/timers.js +++ b/src-browser/timers.js @@ -1,5 +1,6 @@ import timers from 'timers-browserify'; export default timers; + export var _unrefActive = timers._unrefActive; export var active = timers.active; export var clearImmediate = timers.clearImmediate; diff --git a/src-browser/timers/promises.js b/src-browser/timers/promises.js new file mode 100644 index 0000000..46ea73f --- /dev/null +++ b/src-browser/timers/promises.js @@ -0,0 +1,12 @@ +import { promisify } from '../util.js'; +import timers from '../timers.js'; + +export const setTimeout = promisify(timers.setTimeout), + setImmediate = promisify(timers.setImmediate), + setInterval = promisify(timers.setInterval); + +export default { + setTimeout, + setImmediate, + setInterval +}; diff --git a/src-browser/util.js b/src-browser/util.js index a82c307..6858746 100644 --- a/src-browser/util.js +++ b/src-browser/util.js @@ -24,3 +24,4 @@ export var isSymbol = util.isSymbol; export var isUndefined = util.isUndefined; export var log = util.log; export var promisify = util.promisify; +export var types = util.types; diff --git a/src-browser/util/types.js b/src-browser/util/types.js new file mode 100644 index 0000000..8dafd5e --- /dev/null +++ b/src-browser/util/types.js @@ -0,0 +1,48 @@ +import { types } from '../util.js'; +export { types as default } from '../util.js'; + +export const { + isExternal, + isDate, + isArgumentsObject, + isBigIntObject, + isBooleanObject, + isNumberObject, + isStringObject, + isSymbolObject, + isNativeError, + isRegExp, + isAsyncFunction, + isGeneratorFunction, + isGeneratorObject, + isPromise, + isMap, + isSet, + isMapIterator, + isSetIterator, + isWeakMap, + isWeakSet, + isArrayBuffer, + isDataView, + isSharedArrayBuffer, + isProxy, + isModuleNamespaceObject, + isAnyArrayBuffer, + isBoxedPrimitive, + isArrayBufferView, + isTypedArray, + isUint8Array, + isUint8ClampedArray, + isUint16Array, + isUint32Array, + isInt8Array, + isInt16Array, + isInt32Array, + isFloat32Array, + isFloat64Array, + isBigInt64Array, + isBigUint64Array, + isKeyObject, + isCryptoKey +} = types; + diff --git a/test/test.html b/test/test.html index ff70c6c..626c6ef 100644 --- a/test/test.html +++ b/test/test.html @@ -3,20 +3,26 @@ import * as empty from '../nodelibs/@empty.js'; import * as emptyDew from '../nodelibs/@empty.dew.js'; import * as assert from '../nodelibs/browser/assert.js'; + import * as assertStrict from '../nodelibs/browser/assert/strict.js'; import * as buffer from '../nodelibs/browser/buffer.js'; import * as console from '../nodelibs/browser/console.js'; import * as constants from '../nodelibs/browser/constants.js'; import * as crypto from '../nodelibs/browser/crypto.js'; import * as domain from '../nodelibs/browser/domain.js'; import * as events from '../nodelibs/browser/events.js'; + import * as fs from '../nodelibs/browser/fs.js'; + import * as fsPromises from '../nodelibs/browser/fs/promises.js'; import * as http from '../nodelibs/browser/http.js'; import * as https from '../nodelibs/browser/https.js'; import * as os from '../nodelibs/browser/os.js'; import * as path from '../nodelibs/browser/path.js'; + import * as pathPosix from '../nodelibs/browser/path/posix.js'; + import * as pathWin32 from '../nodelibs/browser/path/win32.js'; import * as process from '../nodelibs/browser/process.js'; import * as punycode from '../nodelibs/browser/punycode.js'; import * as querystring from '../nodelibs/browser/querystring.js'; import * as stream from '../nodelibs/browser/stream.js'; + import * as streamPromises from '../nodelibs/browser/stream/promises.js'; import * as string_decoder from '../nodelibs/browser/string_decoder.js'; import * as sys from '../nodelibs/browser/sys.js'; import * as timers from '../nodelibs/browser/timers.js'; @@ -26,7 +32,11 @@ import * as vm from '../nodelibs/browser/vm.js'; import * as zlib from '../nodelibs/browser/zlib.js'; - if (Object.keys(buffer).length < 2) + if (Object.keys(assert).length < 2) + console.error('Invalid exports.'); + else if (Object.keys(assertStrict).length < 2) + console.error('Invalid exports.'); + else if (Object.keys(buffer).length < 2) console.error('Invalid exports.'); else if (Object.keys(console).length < 2) console.error('Invalid exports.'); @@ -38,6 +48,10 @@ console.error('Invalid exports.'); else if (Object.keys(events).length < 2) console.error('Invalid exports.'); + else if (Object.keys(fs).length < 2) + console.error('Invalid exports.'); + else if (Object.keys(fsPromises).length < 2) + console.error('Invalid exports.'); else if (Object.keys(http).length < 2) console.error('Invalid exports.'); else if (Object.keys(https).length < 2)