1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-27 01:29:14 -05:00
Commit graph

410 commits

Author SHA1 Message Date
Ryan Dahl
2f44db6756 Use underscores in filenames. 2018-10-04 00:25:55 -04:00
Ryan Dahl
818ad37678 Rename fbs to msg. 2018-10-04 00:25:55 -04:00
Ryan Dahl
f774953011 Rename flatbuffer base.msg to base.inner
This better disambiguates with the msg_generated.ts module, which in JS
we call "fbs", but would be better called "msg".
2018-10-04 00:25:55 -04:00
Ryan Dahl
0422b224e8
First pass at support for TCP servers and clients. (#884)
Adds deno.listen(), deno.dial(), deno.Listener and deno.Conn.
2018-10-03 23:58:29 -04:00
Kevin (Kun) "Kassimo" Qian
3c080ca39a
Reenable copyFile tests 2018-10-03 16:22:32 -07:00
Andy Hayden
47508c7207
Update timer test to use #497 test case
This behavior was fixed by #885.
2018-10-03 16:05:00 -07:00
J2P
ea87034e26 Implemented readDirSync, readDir 2018-10-03 18:22:57 -04:00
Ryan Dahl
d39055d79b Clean up deno.platform
Renames:
deno.platform -> deno.platform.os
deno.arch -> deno.platform.arch

Removes unsupported operating systems and CPU architectures from the
types. Uses the string "win" instead of "win32".
2018-10-03 16:59:00 -04:00
Ryan Dahl
0cdf1f451d Rename tsconfig.generated.json to tsconfig.declarations.json 2018-10-03 16:59:00 -04:00
Bert Belder
6cfc6b5d51
test: disable incorrect tests
These tests weren't running because with the old timer implementation
time-outs were sometimes lost, and the test harness uses setTimeout
to throw errors after a test has failed.
2018-10-03 13:28:00 -07:00
Li Hao
99e2c42d16
timers: add some more unit tests
Closes #682.
2018-10-03 13:27:59 -07:00
Bert Belder
aa691ea26c
timers: implement timers in javascript 2018-10-03 13:27:55 -07:00
Ryan Dahl
42c5b103ec Rename FdTable to ResourceTable.
Add docs to src/resources.rs.
2018-10-01 22:30:57 -04:00
Ryan Dahl
393f751a27 Format. 2018-10-01 22:30:57 -04:00
Kevin (Kun) "Kassimo" Qian
3a6d4e6260 Bind this to console methods (#873)
Fixes #872
2018-10-01 12:41:37 -04:00
Yingbo (Max) Wang
bcdbfc00f0 Limit depth of output in console.log for nested objects, and add console.dir (#826) 2018-09-30 18:10:20 -04:00
Kevin (Kun) "Kassimo" Qian
50a9c2b575 Add copyFile/copyFileSync (#863) 2018-09-30 18:06:41 -04:00
Ryan Dahl
cec82263c1 Format 2018-09-30 16:35:12 -04:00
ztplz
062b22fe56 Add deno.truncate (#805) 2018-09-30 15:06:20 -04:00
ztplz
b635553fd7 Improve fetch headers (#853) 2018-09-30 10:31:50 -04:00
Ryan Dahl
bcbbee7399 Adds basic File I/O and FD table.
Adds deno.stdin, deno.stdout, deno.stderr, deno.open(), deno.write(),
deno.read(), deno.Reader, deno.Writer, deno.copy().

Fixes #721. tests/cat.ts works.
2018-09-28 20:53:33 -04:00
Ryan Dahl
b1d9014b5b Print 'Compiling' when compiling TS. 2018-09-27 17:34:51 -04:00
Ryan Dahl
d38ccfc6dc
Support zero-copy data in libdeno.send(). (#838)
This is a large API refactor of deno.h which replaces
deno_send() and deno_set_response() with deno_respond().
It also adds a req_id parameter to the deno_recv_cb.

Make writeFile/writeFileSync use it.
2018-09-27 17:33:10 -04:00
Kevin (Kun) "Kassimo" Qian
1e390e69cd Error pretty print (print stack) 2018-09-26 19:30:43 -04:00
Ryan Dahl
b088b58f76 Add SetGlobalTimeout().
To be used for a timers implementation soon.
2018-09-25 17:02:49 -04:00
Ryan Dahl
4fd2b19f64 Make Deno multithreaded.
By using the tokio default runtime.

This patch makes all of the ops thread safe.

Adds libdeno to JS globals to make for easier testing.

Preliminary work for #733.
2018-09-25 17:02:49 -04:00
Ryan Dahl
7fb2821937 format 2018-09-25 17:02:49 -04:00
J2P
3c24b9f724 Fix trace test code 2018-09-25 12:47:13 -04:00
Kevin (Kun) "Kassimo" Qian
f156a86024 console.warn goes to stderr (#810) 2018-09-25 01:27:02 -04:00
Mani Maghsoudlou
ad5065e23e Implement deno.readlink() (#797) 2018-09-25 00:20:49 -04:00
Kevin (Kun) "Kassimo" Qian
be8f49b332 Add toString for CallSite of eval origin (#809) 2018-09-24 15:42:09 -04:00
Bartek Iwańczuk
3fe4be07ca Add flag --recompile (#801) 2018-09-24 15:33:50 -04:00
Yoshiya Hinosawa
17a7b03d1b Start testing website (#813) 2018-09-24 11:31:14 -04:00
Kevin (Kun) "Kassimo" Qian
c124db4701 [console] Use constructor.name to print out function type (#664) 2018-09-24 10:06:48 -04:00
ztplz
f3684c28e5 Rename deno.argv, libdeno::DenoC and deno_set_flags (#796) 2018-09-22 08:47:44 -04:00
Kevin (Kun) "Kassimo" Qian
7a0670a951 Implement deno.trace() (#795) 2018-09-22 03:59:26 -04:00
Kevin (Kun) "Kassimo" Qian
4d16d54ff8 Add atob() and btoa() (#776) 2018-09-20 18:53:29 -04:00
Kevin (Kun) "Kassimo" Qian
fab4bdf40d Add deno.arch/deno.platform (#773) 2018-09-20 02:13:59 -04:00
Mani Maghsoudlou
017ef096df Implement deno.symlink() (#742) 2018-09-18 21:38:24 -07:00
Bert Belder
7553bcb74f
format 2018-09-17 22:54:39 -07:00
Kevin (Kun) "Kassimo" Qian
e3d634eb21 Make mode always u32 and switch to has_mode for StatRes fbs (#761) 2018-09-17 16:53:55 -07:00
ztplz
0260aaf8c2 Change FileInfo to interface (#765) 2018-09-17 12:00:57 -07:00
Kevin (Kun) "Kassimo" Qian
b0958073ba Remove remove_timer asserts (#760)
* Remove remove_timer asserts

* Add clearTimeout invalid id no-panic test

* Move timer test to its file AND some lint side-effects
2018-09-16 13:35:16 -07:00
J2P
0040486539 Fix comments in stat.ts file 2018-09-16 09:12:00 -07:00
Kitson Kelly
0ef28bec4d Improve integration of dom_types 2018-09-16 09:10:36 -07:00
Parsa Ghadimi
4b1eb855bf Make fetch.blob() work 2018-09-14 12:50:32 -07:00
Kevin (Kun) "Kassimo" Qian
662e57b20a [fs] Enable mode for mkdir on unix (#746) 2018-09-14 12:30:43 -07:00
Parsa Ghadimi
66c09de967 Rename fetch_types.d.ts to dom_types.d.ts 2018-09-14 12:27:32 -07:00
Parsa Ghadimi
7b7052e1ab Implement Blob 2018-09-14 10:04:10 -07:00
justjavac
aaf70ca092 fix command line flag in the comment 2018-09-14 08:25:45 -04:00
Yoshiya Hinosawa
0ca7301a2d
feat: add deno.makeTempDir 2018-09-12 22:33:11 -07:00
qti3e
41c70b154f Add support for fetch() headers (#727) 2018-09-12 15:16:42 -04:00
Mani Maghsoudlou
88d42f0b18 Implement deno.rename() (#731) 2018-09-12 11:44:58 -04:00
Kevin (Kun) "Kassimo" Qian
26081a32df Add unix-only mode for FileInfo (#732) 2018-09-12 10:28:48 -04:00
Kevin (Kun) "Kassimo" Qian
1ffae65165 Add remove(), removeAll().
and removeSync(), removeAllSync().
2018-09-12 10:24:17 -04:00
Sajjad Hashemian
7c50c11f40 Implement deno.stat() and deno.lstat() 2018-09-11 16:05:00 -04:00
Parsa Ghadimi
806385543c Improve global types 2018-09-11 12:19:44 -04:00
Kevin (Kun) "Kassimo" Qian
05f87a0cf2 Move writeFileSync to write_file.ts, add writeFile and tests (#728) 2018-09-11 12:00:57 -04:00
Sajjad Hashemian
c2663e1d82 Implement deno.mkdir() 2018-09-10 15:02:07 -04:00
Ryan Dahl
35bc9ddf63 Implement deno.readFile()
As an example of how to implement ops that have both sync and async
versions.
2018-09-10 00:14:28 -04:00
Ryan Dahl
3afc0b8482 fbs_util.ts -> dispatch.ts
And send() -> sendSync()
2018-09-10 00:14:28 -04:00
Ryan Dahl
e2a285b871 Better NotFound error handling in CodeFetch
throwResolutionError was swallowing unrelated errors.
2018-09-09 23:12:22 -04:00
Ryan Dahl
8090fb252b Expose deno.ErrorKind
Originally we planned to have a JS class for each error code. But it
seems better to just have a single DenoError class with a "kind"
property. One nice thing about using an enum instead of classes for
errors is that switch() can be used during error handling instead of a
bunch of instanceof branches.
2018-09-09 23:12:22 -04:00
Ryan Dahl
a4f1b367b9 Remove namespace from src/msg.fbs 2018-09-09 23:12:22 -04:00
Ryan Dahl
0d03fafbfe Map promises onto futures.
Refactors handlers.rs

The idea is that all Deno "ops" (aka bindings) should map onto
a Rust Future. By setting the "sync" flag in the Base message
users can determine if the future is executed immediately or put
on the event loop.

In the case of async futures, a promise is automatically created.
Errors are automatically forwarded and raised.

TODO:

- The file system ops in src/handler.rs are not using the thread pool
  yet. This will be done in the future using tokio_threadpool::blocking.
  That is, if you try to call them asynchronously, you will get a promise
  and it will act asynchronous, but currently it will be blocking.
- Handlers in src/handler.rs returned boxed futures. This was to make
  it easy while developing. We should try to remove this allocation.
2018-09-09 18:47:22 -04:00
Ryan Dahl
ff6eefdf87 Add better assert message for CodeFetchRes 2018-09-09 18:47:22 -04:00
Daniel Ramos
b7ebc1b699 Add type aliases for sourceCode and outputCode 2018-09-09 10:51:15 -04:00
J2P
d814949896 Add and edit comments 2018-09-07 12:01:43 -04:00
Kitson Kelly
9101fd1493 Cleanup public API of DenoCompiler 2018-09-06 18:31:32 -04:00
Kitson Kelly
11aef6e107 Integrate format diagnostic host in DenoCompiler 2018-09-06 18:31:32 -04:00
Parsa Ghadimi
1052f8d0c9 Check allow-net in fetch 2018-09-06 11:07:10 -04:00
Kitson Kelly
1e709aa348 Fix TypeScript exports in bundle 2018-09-06 11:04:56 -04:00
Mirko Jotic
fcdfacc2de Implementing --deps flag
- Adding a ModuleId type alias to specify original url or local file of
dependency
- Modifying ModuleMetaData class to contain ModuleId
- Adding a --deps flag
2018-09-06 10:42:07 -04:00
Ryan Dahl
32f0c37a42 Format 2018-09-05 22:27:47 -04:00
Kitson Kelly
10dc71133a Mark APIs at internal and include JSDoc in types 2018-09-05 08:45:55 -04:00
Ryan Dahl
d6c310596e lStat -> lstat 2018-09-04 15:57:18 -04:00
Mani Maghsoudlou
641e3d404d Implement renameSync 2018-09-04 11:57:04 -04:00
Sajjad Hashemian
b2b4299e3b Implement mkdirSync 2018-09-03 15:06:00 -04:00
Ryan Dahl
787832c68e Format. 2018-09-03 10:45:58 -04:00
Kitson Kelly
77faad8070 Unit tests for circular references 2018-09-02 11:28:45 -04:00
Kitson Kelly
739ef6a8ec Fix circular dependencies 2018-09-02 11:28:45 -04:00
ShinDarth
bbc4e55bda Minor code refactoring 2018-09-01 21:59:52 -04:00
liuyi
2eb80f3617 Refactor code to be same style 2018-09-01 16:47:43 -04:00
Kitson Kelly
b3dac82887 Remove lib.globals.d.ts 2018-09-01 15:06:03 -04:00
Kitson Kelly
f83aee02e6 Bundle most types into globals.d.ts (#642) 2018-09-01 10:45:26 -04:00
Aaron Power
9b7e5a2558 Document lStatSync & statSync and correct FileInfo. 2018-08-31 16:18:31 -04:00
Aaron Power
f131445a46 Implemented deno.env and refactored flags.rs 2018-08-31 13:18:24 -04:00
Ryan Dahl
45dafe15ee Refactor libdeno.send() code to reduce boilerplate.
Also removes assignCmdId as it's currently unused.
2018-08-31 10:43:11 -04:00
Ryan Dahl
0ec629d105 format 2018-08-30 14:41:55 -04:00
Ryan Dahl
2dd9a8d028 Reorganize js/unit_tests.ts 2018-08-30 14:41:55 -04:00
Aaron Power
b86bf4d8a4 Implemented statSync and lStatSync 2018-08-30 12:39:33 -04:00
ztplz
b2cd71ddce add type declaration 2018-08-30 03:21:05 -04:00
Bert Belder
ceaf822682
Implement makeTempDirSync() 2018-08-29 22:40:05 +02:00
Ryan Dahl
0c2abb9339 Allow filtering of unit tests. 2018-08-29 12:05:58 -04:00
Kitson Kelly
634a9e3932 Updates to compiler.ts comments and logging. 2018-08-28 08:44:34 -04:00
Kitson Kelly
54aefa2886 Two-pass module evaluation.
Plus changes to tests to accomodate.
2018-08-28 08:44:34 -04:00
Bert Belder
7e3d9f8f2b
format 2018-08-28 02:01:41 +02:00
Ryan Dahl
e13f3c10ca Add ability to unit test by permissions. 2018-08-27 17:51:24 -04:00
Ryan Dahl
722c7e4a1b Add deno.argv. 2018-08-27 17:51:24 -04:00
Aaron Power
f43259e5ab Moved console tests to own file, and switched circular test to use stringify with assertEqual 2018-08-27 17:18:37 -04:00
Aaron Power
0f1db89aa6 Fixed printing strings in arrays & objects without quotes 2018-08-27 13:45:29 -04:00
Yoshiya Hinosawa
17d6d6b336 refactor: add and use libdeno.setGlobalErrorHandler instead of window.onerror 2018-08-26 11:03:41 -04:00
Francesco Borzì
84c38f34ee Prevent circular imports in ts code (#576) 2018-08-25 15:42:49 -04:00
Kitson Kelly
c003df53ab Integrate ScriptSnapshot into ModuleMetaData 2018-08-24 17:16:54 -04:00
Kitson Kelly
59231d74b5 Improve DenoCompiler.makeDefine and localRequire 2018-08-23 17:55:22 -04:00
Ryan Dahl
242e68e50c fmt 2018-08-23 09:41:08 -04:00
Ryan Dahl
7d7263c48f Implement writeFileSync
In collaboration with Tommy Savaria <tommy.savaria@protonmail.ch>
2018-08-22 18:39:07 -04:00
Ryan Dahl
e7cab71574
runtime.ts refactor into compiler.ts (#564)
Adds compiler_test.ts
2018-08-22 17:17:26 -04:00
Ryan Dahl
790baae673 Expose deno.exit() and add test. 2018-08-21 18:34:56 -04:00
Ryan Dahl
18d495c7d1 Better error handling in src/handlers.rs
Introduces error codes that are shared between JS/RS

Fixes #526.
2018-08-21 15:37:45 -04:00
Ryan Dahl
5d866161f8 Fix TS errors in fetch.ts 2018-08-20 21:20:15 -04:00
Ryan Dahl
868e8d8866 First pass at fetch()
With help from Thomas Ghysels <info@thomasg.be>
2018-08-20 16:53:39 -04:00
Bartek Iwańczuk
66f0e93b4c add notImplemented and unreachable util functions (#540) 2018-08-19 15:04:27 -04:00
Yoshiya Hinosawa
aaabc853e8 chore: move libdeno files to //libdeno/ 2018-08-19 11:27:47 -04:00
Ryan Dahl
17b9c5c390
Command line flag parsing (#524)
In particular this allow -D for logging debug output.
2018-08-17 16:34:30 -04:00
Yoshiya Hinosawa
565a21eb0e chore: format files in tests/ 2018-08-17 12:43:21 -04:00
Ryan Dahl
36d82374cf Implement deno_handle_msg_from_js in Rust
Fixes #419, #414.
2018-08-16 08:40:11 -04:00
Kitson Kelly
168d92f5d2 Use typescript strict mode (#505) 2018-08-15 12:40:30 -04:00
Kitson Kelly
e9d692ef70 Use @internal with js/timers.ts 2018-08-13 11:54:10 -04:00
Ryan Dahl
c7ce450ee9 Rename mock_runtime_test to libdeno_test
Fixes #465
2018-08-11 09:02:07 -07:00
Ryan Dahl
89eee51f07 Use unit_tests for readFileSync testing. 2018-08-11 09:02:07 -07:00
Kitson Kelly
e28d7abc1c Only emit declarations for generated files (#502)
and remove declarationMap flag from generated tsconfig
2018-08-10 10:46:09 -07:00
Ryan Dahl
9d90c4ae95
Adds js/unit_tests.ts (#448) 2018-08-09 14:48:17 -07:00
Ryan Dahl
413bcf2042 Add readFileSync 2018-08-09 14:27:46 -07:00
Ryan Dahl
040a042679 Add TextEncoder/TextDecoder support.
Fixes #470

This commit increases size:
out/release/gen/bundle/main.js      7.3M -> 7.9M
out/release/gen/bundle/main.js.map   11M -> 12M
out/release/gen/snapshot_deno.bin    34M -> 37M
out/release/deno                     49M -> 53M

Note the amount in the JS code added is quite small:
4.0K    node_modules/text-encoding/index.js
4.0K    node_modules/@types/text-encoding/index.d.ts
4.0K    js/text_encoding.ts

Unclear to me what is causing the jump in snapshot size.
2018-08-09 14:27:46 -07:00
Ryan Dahl
fb87cb38ec
First pass at setTimeout with Tokio (#434) 2018-08-09 12:17:08 -07:00
Ryan Dahl
51380bf399 Organize libdeno functions. 2018-08-08 18:35:26 -07:00
Ryan Dahl
7895964ee1 Better error for 'No such asset' 2018-08-08 18:35:26 -07:00
Kitson Kelly
817380a2d9 Generate declarations 2018-08-08 04:17:46 -07:00
Kitson Kelly
eda1c7b74a Create ASSETS const in runtime.ts 2018-08-08 04:17:46 -07:00
Kitson Kelly
28078cf441 Rename lib.deno.d.ts to lib.globals.d.ts 2018-08-08 04:17:46 -07:00
Ryan Dahl
60f6067cf9 Implement os.exit 2018-08-03 22:41:59 -04:00
Ryan Dahl
c7c6203e61
Source map support (#429)
This change increases size:
out/debug/obj/libdeno/from_snapshot.o  19M -> 34M
out/release/deno                       32M -> 47M
2018-08-02 13:13:32 -04:00
Ryan Dahl
421358e7a9 Remove dispatch.ts and move assignCmdId to util.ts 2018-08-02 12:49:40 -04:00
Ryan Dahl
db8dc0e9f8 Better handling of exceptions during snapshot creation. 2018-08-01 12:14:10 -04:00
Kitson Kelly
36fa1cea4a Upgrade TypeScript (3.0.1)
Update runtime to use lib.deno.d.ts

Add proper console declaration

Upgrade prettier (There was an issue formatting lib.deno.d.ts)
2018-07-31 20:47:49 -04:00
Ryan Dahl
4d386e9e1c Implement CodeCache 2018-07-29 00:22:39 -04:00
Kitson Kelly
5562c36824 Remove msg_generated hack (#409) 2018-07-25 23:07:50 -04:00
Ryan Dahl
0213053856 Remove handlers crate target.
- Add build scripts for Rust flatbuffers.
- Rewrites some reply.cc methods in Rust.
- Changes some struct elements to table in msg.fbs (rust flatbuffers
  lacks support currently)
- Renames handlers_test to test_rs.
- This reorg is needed to make progress on the code cache handler.
2018-07-24 12:29:54 -04:00
Ryan Dahl
b79ce93010 Allow deno_buf with null alloc_ptr to be memcpy'd
This is a temporary hack to allow for easier restructuring of
the serialization code as we move Flatbuffer stuff from C++ to Rust.
2018-07-24 12:29:54 -04:00
Ryan Dahl
b87e6d5604 Add mock_runtime_test for deno_last_exception. 2018-07-24 12:29:54 -04:00
Ryan Dahl
1de16af1f3 Change copyrights to be 'Deno authors'. 2018-07-24 10:38:11 -04:00
Kitson Kelly
845f7215db
Replace packer with rollup 2018-07-22 03:16:17 +02:00
Ryan Dahl
b892188878 Better exception output. 2018-07-18 15:43:50 -04:00
Ryan Dahl
3e51605bc9 Execute JS for the first time in Rust rewrite.
Implements code_fetch handler in Rust.

Add ability to embed string assets (for typescript declaration files)

Remove deno_cc and deno_cc_nosnapshot targets.
2018-07-18 15:43:50 -04:00
Bert Belder
24b0e91d80
Move buffers between V8 and native
* send()/recv() now operate on TypedArrays rather than ArrayBuffers.

* Remove a copy (through ArrayBuffer.slice()) from the send path.

* Remove a copy (through v8::ArrayBuffer::New()) from the return path.

* After moving a buffer from JS to native, the ArrayBuffer object and
  it's views are made inaccessible ('neutered').

* `struct deno_buf` now holds two [ptr, length] tuples, one for the actual
  memory allocation, and one for the logical data contained therein.
  This is necessary because flatbuffers fills it's buffer bottom-up, so
  the serialized blob doesn't start at beginning of the buffer, but
  somewhere in the middle.
2018-07-12 21:26:38 +02:00
Yoshiya Hinosawa
46db20172c chore: use local prettier 2018-07-09 11:05:02 -04:00
Bert Belder
14f208fff9
Regenerate msg_generated.ts
I forgot to commit this file in 8a17db8.
2018-07-09 04:23:58 +02:00
Bert Belder
8a17db8266
Add 'command id' field to messages
This allows for correlating response messages to the command message that
caused them.
2018-07-08 21:01:24 +02:00
Ryan Dahl
f917c5e722 Clean up tools/
- Factor out tools/util.py
- Move js/*.py to tools.
- Rewrite tools/format.sh in python.
- Run lint first in travis.
2018-07-08 13:40:18 -04:00
Ryan Dahl
a2dde56c59 Remove channel parameter from deno_send/recv. 2018-07-06 18:25:09 -04:00
Ryan Dahl
9778eceaf5 Use C++ to do flatbuffer parsing.
- Port protobuf messages to flatbuffers.
- Demo linking to rust from C++ executable.
- Start using the prototype TS libraries.
2018-07-06 17:33:06 -04:00
Ryan Dahl
fe404dfce9 Import ts file from prototype without change
From commit 559453cf6c
Excluding v8worker.d.ts, main.ts, and deno.d.ts.

Updates tslint.json to be original settings.
2018-07-06 12:22:11 -04:00
Yoshiya Hinosawa
c1f430966a chore: reorganize symlinks
resolves #332
2018-07-06 01:57:32 -04:00
Ryan Dahl
06a28998ea Replace protobufs with flatbuffers 2018-07-04 16:43:08 -04:00
Yoshiya Hinosawa
2060bc939d Add tools/build_third_party.py (#328)
Fixes #312
2018-07-04 15:04:59 +02:00
Ryan Dahl
a33f575cda Switch back to recv/send instead of pub/sub for low-level API. 2018-07-03 21:22:39 +02:00
Ryan Dahl
92d01f8519 Remove BaseMsg from msg.proto 2018-07-03 21:22:39 +02:00
Parsa Ghadimi
235e549035 Add tslint 2018-07-01 21:41:53 +02:00
Yoshiya Hinosawa
ea35281d63 chore: move //src/js to //js
refs: #285
2018-07-01 17:22:36 +02:00