forked from vercel/next.js
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
93 lines (84 loc) · 2.14 KB
/
server.js
File metadata and controls
93 lines (84 loc) · 2.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import { Writable } from 'stream'
import path from 'path'
import crypto from 'crypto'
import { Buffer } from 'buffer'
import vm from 'vm'
import assert from 'assert'
import constants from 'constants'
import domain from 'domain'
import http from 'http'
import https from 'https'
import os from 'os'
import punycode from 'punycode'
import process from 'process'
import querystring from 'querystring'
import stringDecoder from 'string_decoder'
import sys from 'sys'
import timers from 'timers'
import tty from 'tty'
import util from 'util'
import zlib from 'zlib'
import 'setimmediate'
export async function getServerSideProps() {
const result = await new Promise((resolve) => {
let closedStream = false
const writable = new Writable({
write(_chunk, _encoding, callback) {
callback()
},
})
writable.on('finish', () => {
closedStream = true
})
writable.end()
assert.ok(true)
assert.ok(!!domain)
assert.ok(!!http)
assert.ok(!!https)
assert.ok(!!punycode)
assert.ok(!!stringDecoder)
assert.ok(!!sys.debuglog)
assert.ok(!!timers.setInterval)
assert.ok(!!tty.ReadStream)
assert.ok(!!util.inspect)
assert.ok(!!zlib.Gzip)
setImmediate(() => {
resolve({
assert: true,
buffer: Buffer.from('hello world').toString('utf8'),
constants: constants.E2BIG,
hash: crypto.createHash('sha256').update('hello world').digest('hex'),
domain: true,
os: os.EOL,
path: path.join('/hello/world', 'test.txt'),
process: process.title,
querystring: querystring.stringify({ a: 'b' }),
stream: closedStream,
stringDecoder: true,
sys: true,
timers: true,
tty: true,
util: true,
http: true,
https: true,
vm: vm.runInNewContext('a + 5', { a: 100 }),
zlib: true,
})
})
})
return {
props: {
result,
},
}
}
export default function NodeModules({ result }) {
return (
<>
<pre
id="node-browser-polyfills"
dangerouslySetInnerHTML={{ __html: JSON.stringify(result, null, ' ') }}
></pre>
</>
)
}