Commit Graph

39 Commits

Author SHA1 Message Date
Colin McDonnell
f7f1b60444 Add bun-types, add typechecking, add child_process types (#1475)
* Add bun-types to packages

* Improve typing

* Fix types in tests

* Fix dts tests

* Run formatter

* Fix all type errors

* Add strict mode, fix type errors

* Add ffi changes

* Move workflows to root

* Add workflows

* Remove labeler

* Add child_process types

* Fix synthetic defaults issue

* Remove docs

* Move scripts

* Run prettier

* Include examples in typechecking

* captureStackTrace types

* moved captureStackTrace types to globals

* Address reviews

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
2022-11-09 15:40:40 -08:00
Dylan Conway
54e7a6f57a typescript decorators round 2 (#1445)
* __decorateClass, __decorateParam, lit test, wiptest test

* decorator factories test

* parameter decorator test

* test for decorators with constructor parameter properties

* Fix issue with `CryptoKey` and `SubtleCrypto` constructors

* Limit concurrency for GitHub Actions due to issues with cache poisoning
If multiple actions are running, sometimes the cache is poisoned from another action. We need to fix this, but this is an interim measure to make actions less flaky

* Make these tests better

* Move this to dependencies so the .a files upload

* Fixup

* temporary fix

* Limit concurrency for MacOS Object actions

* try againn

* againn

* Make `"tls"` an explicit object we pass instead of implicit top-level options

cc @Electroid @colinhacks

* Update server.zig

* Prefer `BUN_PORT` over `PORT`

* Fix typo in homebrew action

* Run homebrew action when release is edited

* Check published_at instead of draft in GitHub action

* Implement `process.release`

* Add missing dependencies to `make devcontainer`

* Allow overriding node polyfills via `BUN_OVERRIDE_MODULE_PATH`

* Add a stub for io_darwin on linux

cc @sno2 hopefully this helps but i'm not sure

* Add missing `break`

* Download more RAM

* feat(core): optimize zig slice (#1408)

* feat(core): optimize zig slice

* address concerns

* Remove webcrypto from vendor-without-check

* Update default tsconfig (#1418)

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>

* Enable `BUN_OVERRIDE_MODULE_PATH` in `bun wiptest`

* Upgrade WebKit

* space

* Support getting cached values and pending activity in the bindings generator

* Remove ✂️ function

* constructor creation, initializers, handle static and computed fields with decorators

* Updating libuwebsockets C API (#1423)

* fix for repeated regex match calls and fix for '^' in character classes (#1419)

* tests and formatting

* fix for ^ in character class

* formatting

* test for repeated match and exec calls

* create oniguruma regex for each exec/test

* check errorCode from creating oniguruma regexp and always return {} on failure

* oops

* call onig_initialize once

* fix incorrect escaping, removed unnecessary oniguruma settings

* tests for "-" and "^" in character classes

* free regex object before returns

* force gc for some tests

* Update React fizz server (#1432)

* Update fizz server

* Use production build

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>

* more decorator tests

* optional setup function for loading elements, simulate clicks in lit test

* fix createWriteStream (#1433)

* fix createWriteStream

* remove comment

* Update build docs and commands for dev containers (#1438)

* Update build documentation for dev containers

* Add devcontainer-rebuild make target

* Add make devcontainer-sh target

* Fix missing .PHONY for vendor-without-check (#1437)

* Fix check for ninja on Debian/Ubuntu (#1436)

Even though the package is named ninja-build, the ninja binary is still
named ninja, so use `which ninja` to check for it

* Fix #1410

woops

* await on DOMContentLoaded for elements instead of setup function

* avoid lowering class if no decorators

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Ashcon Partovi <ashcon@partovi.net>
Co-authored-by: Carter Snook <cartersnook04@gmail.com>
Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
Co-authored-by: Ciro Spaciari <ciro.spaciari@gmail.com>
Co-authored-by: Lawrence Chen <54008264+lawrencecchen@users.noreply.github.com>
Co-authored-by: João Paquim <jpaquim@users.noreply.github.com>
2022-11-01 21:25:30 -07:00
Jarred Sumner
b74351e55f Support a default object in CommonJS wrapper
Fixes https://github.com/oven-sh/bun/issues/1284

Related to https://github.com/oven-sh/bun/issues/1285
2022-09-28 14:37:35 -07:00
Jarred Sumner
d7759b88ee Handle default better with ESM node 2022-09-07 19:56:11 -07:00
Jarred Sumner
7bb75f5553 Add dynamic require support 2022-06-24 06:59:47 -07:00
Jarred Sumner
78bf1150ff Fix defaultProps with JSX optimization 2022-06-09 05:09:00 -07:00
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
ce742f665a generate separate interop code for bun 2022-03-19 00:46:24 -07:00
Jarred Sumner
857e9bee00 Embed React Fast Refresh in Bun
Fixes https://github.com/Jarred-Sumner/bun/issues/62

If the project has it's own copy of react fast refresh and is bundling, it will use that instead.
2022-01-29 23:48:39 -08:00
Jarred Sumner
92f3efeac2 [bundler][JS transpiler] Improve reliability of ESM <> CommonJS interop
This fixes a number of issues caused by not using live bindings when referencing bundled code. This also fixes an issue with libraries looping over `Object.keys(moduleNamespace)`
2021-12-16 01:29:45 -08:00
Jarred Sumner
c07de8c4d3 [JS transpiler] Simplify CommonJS interop callback 2021-12-15 17:08:04 -08:00
Jarred Sumner
14b51ef57c Disable Object.freeze 2021-11-08 15:53:37 -08:00
Jarred Sumner
65ea1e4647 [Bun.js] Fix entry point to only call default if it was a CommonJS transformed function 2021-10-30 03:11:58 -07:00
Jarred Sumner
f226f52200 Fix edgecase with cjs -> esm interop runtime code when module.exports was marked as not extensible 2021-09-30 22:34:17 -07:00
Jarred Sumner
f78f4854a4 Handle more edgecases in our CJS2ESM conversion code 2021-09-23 21:45:15 -07:00
Jarred Sumner
638b204d1e Add __exportValue and __exportDefault to runtime 2021-09-23 19:20:33 -07:00
Jarred Sumner
2177dda242 Fix bug when multiple-levels of nested exports when bundled have a boolean .default value 2021-09-23 17:34:54 -07:00
Jarred Sumner
472589aa14 Fix require bug in runtime.js 2021-09-15 21:30:12 -07:00
Jarred Sumner
359df89fe3 Fix "browser" map resolution, _almost_ fix symbol collisions, cache absolute paths for file entries 2021-09-12 23:40:12 -07:00
Jarred Sumner
dca47a565e ok 2021-09-12 01:53:32 -07:00
Jarred Sumner
350569655b Support bundling dynamically imported modules. 2021-09-12 00:39:57 -07:00
Jarred Sumner
125d88bd65 bun:error.js into separate module, ensure we don't include fast refresh in Bun.js, log build errors to browser console, don't warn for node_modules, 2021-09-11 01:48:23 -07:00
Jarred Sumner
fc907e2f81 current 2021-09-09 23:33:34 -07:00
Jarred Sumner
2fa09f7c09 Fix UMD, fix PNPM, importing require'd modules in app code
Former-commit-id: 3d831ad95904d2123964f2ebccff48f1e9f954e9
2021-09-02 11:51:52 -07:00
Jarred Sumner
4b7917ba8f latest
Former-commit-id: 20b96180ffc41610dfb21a041d1258f2ff8d4196
2021-09-01 14:00:46 -07:00
Jarred Sumner
bd9f137b1b latest
Former-commit-id: 096ec1222ad723d006b0151f10cb0c1b95e2bfd3
2021-08-29 21:48:14 -07:00
Jarred Sumner
c92c7beece Log level + onimportcss
Former-commit-id: 12ba9b9bc288573e3a5099adfa14c486c4cc980c
2021-08-19 00:44:44 -07:00
Jarred Sumner
afcbcd231c Fix CSS bug, dont' run HMR code on server
Former-commit-id: 541084b7238d54d77cb13402274718311f2030b4
2021-08-17 12:26:06 -07:00
Jarred Sumner
574be79253 alright thats the rename
Former-commit-id: 0faf61249e76382dfb1aa8721249474eae920753
2021-08-17 01:44:30 -07:00
Jarred Sumner
41260ecd18 Support multiple route dirs, fix bundling JSX, fix cjs bug, remove warning about unbundled modules in speedy env,
Former-commit-id: ae718dbd05397bed9bc49a77fae20de70b635e82
2021-08-15 21:48:56 -07:00
Jarred Sumner
f59892f647 late
Former-commit-id: 1d598bb05a3bac62d86063125e1fe2962f0b5cc6
2021-08-13 02:01:41 -07:00
Jarred Sumner
dc3309d130 alright basic stuff works now. still bugs with JS parser
Former-commit-id: a1dd2a2a32
2021-06-11 10:53:55 -07:00
Jarred Sumner
d2e1c7955b The code looks like it might work
Former-commit-id: 8070da6ec9
2021-06-10 14:57:08 -07:00
Jarred Sumner
a2d8026810 cool!
Former-commit-id: 5ffd8e40b3
2021-06-10 01:07:42 -07:00
Jarred Sumner
ecda693e38 lots
Former-commit-id: 7346cdaa5a
2021-06-09 13:26:30 -07:00
Jarred Sumner
ddd5ed1cc2 JSX & CJS work end-to-end!
Former-commit-id: 44bab947c6
2021-06-02 12:48:38 -07:00
Jarred Sumner
ee6643ce8b wip
Former-commit-id: a6bc130918
2021-06-01 20:49:49 -07:00
Jarred Sumner
38f1eb0701 linker things
Former-commit-id: 73452660fd
2021-05-31 20:30:40 -07:00
Jarred Sumner
a58adfcaa2 Starting to work on rutnime
Former-commit-id: 23220fd348
2021-05-19 19:30:24 -07:00