Commit Graph

159 Commits

Author SHA1 Message Date
Jarred Sumner
43de33afc7 Web Streams API (#176)
* [bun.js] `WritableStream`, `ReadableStream`, `TransformStream`, `WritableStreamDefaultController`, `ReadableStreamDefaultController` & more

* Implement `Blob.stream()`

* Update streams.test.js

* Fix sourcemaps crash

* [TextEncoder] 3x faster in hot loops

* reading almost works

* start to implement native streams

* Implement `Blob.stream()`

* Implement `Bun.file(pathOrFd).stream()`

* Add an extra function

* [fs.readFile] Improve performance

* make jsc bindings a little easier to work with

* fix segfault

* faster async/await + readablestream optimizations

* WebKit updates

* More WebKit updates

* Add releaseWEakrefs binding

* `bun:jsc`

* More streams

* Update streams.test.js

* Update Makefile

* Update mimalloc

* Update WebKit

* Create bun-jsc.test.js

* Faster ReadableStream

* Fix off by one & exceptions

* Handle empty files/blobs

* Update streams.test.js

* Move streams to it's own file

* temp

* impl #1

* take two

* good enough for now

* Implement `readableStreamToArray`, `readableStreamToArrayBuffer`, `concatArrayBuffers`

* jsxOptimizationInlining

* Fix crash

* Add `jsxOptimizationInline` to Bun.Transpiler

* Update Transpiler types

* Update js_ast.zig

* Automatically choose production mode when NODE_ENV="production"

* Update cli.zig

* [jsx] Handle defaultProps when inlining

* Update transpiler.test.js

* uncomment some tests

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-06-07 22:32:46 -07:00
Jarred Sumner
a37f86e89d bun:sqlite (#167)
* ✂️

* Add the slow version

* draw the rest of the owl

* Fix crash when allocating lots of memory

* [Bun.Transipiler] Support passing objects

* [JS Parser] Support passing objects to macros via Bun.Transpiler

* Update JSSQLStatement.cpp

* Embed SQLite

* Add SQLite to Dockerfile

* [sqlite] Add quick one-off queries without creating a whole object

* [sqlite] Add `columnsCount`, rename raw() to `values()`, remove `rebind`

* Implement `bun:sqlite`

* return null

* Fix updating query

* Update bun.d.ts

* more tests

* Support variadic arguments, write tests and add types

* Update sqlite.d.ts

* Update sqlite.d.ts

* latest

* Implement `Database.loadExtension` and `Database.setCustomSQLite`

* Support `require.resolve`

* [napi] Improve string performance

* [bun.js] Support some of `node:module`

* another test

* [sqlite] Support serialize & deserialize

* [`bun:ffi`] Implement `CFunction` and `linkSymbols`

* [bun.js] Fix crash in `Buffer.from`

* Update sqlite.test.js

* Document linkSymbols

* docs

* Update README.md
2022-05-16 15:46:20 -07:00
Jarred Sumner
3c87fbfd37 [bun.js] Implement import.meta.require
This allows synchronous dynamic loading of `.node`, `.json`, and `.toml` files.

It is not a CommonJS require, but it can be used that way so long as the content is not JavaScript.
2022-05-11 00:56:35 -07:00
Jarred Sumner
a7b0bc8790 it can call functions 2022-05-05 21:35:08 -07:00
Jarred Sumner
30ca112260 napi_threadsafe_function 2022-05-05 21:35:08 -07:00
Jarred Sumner
d6ce585ef3 cleanup hook 2022-05-05 21:35:08 -07:00
Jarred Sumner
c80e048ab3 implement napi_async_work 2022-05-05 21:35:08 -07:00
Jarred Sumner
8b1924f6c2 Add docs for FFI 2022-05-03 01:25:46 -07:00
Jarred Sumner
125a4c747b [bun:ffi] cleanup 2022-05-02 03:40:14 -07:00
Jarred Sumner
516b54578d [bun:ffi] it works 2022-04-29 23:21:14 -07:00
wangao
64a2dda02f [node] Add more fs constants (#144)
Move fs constants to node_fs_constants.zig,
and we static append the constants definition
to fs.export.js.

Issue: #130
2022-04-18 06:14:21 -07:00
Jarred Sumner
743ad44c0a Make sendfile more reliable 2022-04-12 03:46:21 -07:00
Jarred Sumner
9db701ab41 wip fixes to sendfile() blocking 2022-04-12 00:43:23 -07:00
Jarred Sumner
1d79703d24 slight perf improvement to concurrently queueing tasks 2022-04-11 19:09:14 -07:00
Jarred Sumner
3e969244ac [bun.js] Add a Server.stop function 2022-04-11 04:58:29 -07:00
Jarred Sumner
34c478a4c4 make checking for bun modules a compile time step 2022-04-10 19:45:43 -07:00
Jarred Sumner
da3f131185 Update javascript.zig 2022-04-06 06:14:36 -07:00
Jarred SUmner
30542225c6 fix bug with io sometimes sleeping permanetly 2022-04-04 23:25:54 -07:00
Jarred Sumner
d820a9890f Make Bun.file() -> HTMLRewriter -> HTTP response work 2022-04-04 01:04:14 -07:00
Jarred Sumner
b099e7232f Decrement task counter 2022-04-01 23:36:48 -07:00
Jarred Sumner
e0011fd6ba [bun.js] Use Headers from WebKit instead of custom 2022-04-01 01:17:36 -07:00
Jarred Sumner
4dedb51a23 [bun.js] Fix import.meta.resolve when the path points to a bundled file 2022-03-30 18:56:07 -07:00
Jarred Sumner
3434b9ecf3 Implement error page for HTTP server 2022-03-24 19:08:20 -07:00
Jarred SUmner
5e5f0bd293 [bun.js] Implement Bun.write() 2022-03-23 01:46:47 -07:00
Jarred SUmner
9974142eef Handle integer sizes greater than i32 2022-03-22 04:44:39 -07:00
Jarred Sumner
7cd93e6670 [bun.js] 2/? Implement Response.file, sendfile edition 2022-03-21 06:32:14 -07:00
Jarred Sumner
fa343fa8ad [bun.js] 1/? Implement Response.file 2022-03-21 02:21:51 -07:00
Jarred Sumner
2509613bbe microptimize 2022-03-20 06:34:05 -07:00
Jarred Sumner
bc85dd2330 the events, they loop 2022-03-20 04:38:04 -07:00
Jarred Sumner
ce742f665a generate separate interop code for bun 2022-03-19 00:46:24 -07:00
Jarred Sumner
1be9e3cf2d handle ShadowRealm 2022-03-18 20:04:33 -07:00
Jarred Sumner
07379ecb4e [bun.js] Fix missing .prototype on builtins 2022-03-18 04:37:46 -07:00
Jarred Sumner
6b33912f42 Fix crash when printing errors that are an unexpected type 2022-03-17 20:52:10 -07:00
Jarred Sumner
86a4ab704d Move Bun to JSC.API 2022-03-17 18:28:24 -07:00
Jarred Sumner
74f4c8bcab query_string_map -> url 2022-03-17 01:27:35 -07:00
Jarred Sumner
09a7b01ee7 cleanup error printing 2022-03-16 05:50:52 -07:00
Jarred Sumner
3b78cfe71a Add a way to run serial tasks on a different thread 2022-03-16 05:04:23 -07:00
Jarred Sumner
8a52e09e8b Update javascript.zig 2022-03-15 04:49:52 -07:00
Jarred Sumner
a168c51395 Fix a couple memory leaks in bun dev 2022-03-14 23:43:20 -07:00
Jarred Sumner
4ab4ae77ac Reference-counting for Blob and Headers 2022-03-14 01:31:56 -07:00
Jarred Sumner
f4504292cf [bun.js] Implement Blob 2022-03-13 06:08:10 -07:00
Jarred Sumner
d6831cf801 [Bun.js] Implement HTMLRewriter
https://developers.cloudflare.com/workers/runtime-apis/html-rewriter
2022-03-12 01:14:45 -08:00
Jarred Sumner
64f1af0aa6 skeleton 2022-03-11 04:49:25 -08:00
Jarred Sumner
44b0c8153a Source Maps for client-side errors & columns 2022-03-11 00:03:09 -08:00
Jarred Sumner
c8f6337f1f twiddle with formatting 2022-03-10 06:55:43 -08:00
Jarred Sumner
7998a43b04 [bun.js] Map the sources when handling the error 2022-03-10 05:41:52 -08:00
Jarred Sumner
701d6ec45d rename _global -> bun 2022-03-08 18:54:54 -08:00
Jarred Sumner
33950c0ae7 Fix https://github.com/Jarred-Sumner/bun/issues/122 2022-03-08 18:14:26 -08:00
Jarred Sumner
880f6a17b8 [bun.js] WIP sourcemap support 2022-03-08 04:46:25 -08:00
Jarred Sumner
51fbbea1d3 upgrade zig 2022-03-04 00:20:22 -08:00