I propose we remove the following APIs from the Deno namespace, and move them to std:
Types:
Functions:
Timeline
I suggest we mark all the APIs we want to remove with @deprecated, and add a deno lint diagnostic for when these APIs are used. In Deno 2.0 we can then remove these APIs.
Reasoning
Code which does not actually require native syscalls should not use Deno namespace APIs as this makes the code incompatible with browsers, even though there is no need for that to be the case. An example of this: https://deno.land/std@0.90.0/io/streams.ts. This uses Deno APIs, even though no native calls are preformed, making this code unusable in a web browser for no good reason.
I propose we remove the following APIs from the Deno namespace, and move them to std:
Types:
Deno.ReaderDeno.WriterDeno.ReaderSyncDeno.WriterSyncDeno.CloserFunctions:
Deno.Buffer(chore: deprecate Deno.Buffer and read/write utils #9793)Deno.copy(chore(runtime): deprecateDeno.copy#11369)Deno.iter(chore: deprecate Deno.iter and Deno.iterSync #10025)Deno.iterSync(chore: deprecate Deno.iter and Deno.iterSync #10025)Deno.readAll(chore: deprecate Deno.Buffer and read/write utils #9793)Deno.readAllSync(chore: deprecate Deno.Buffer and read/write utils #9793)Deno.writeAll(chore: deprecate Deno.Buffer and read/write utils #9793)Deno.writeAllSync(chore: deprecate Deno.Buffer and read/write utils #9793)Timeline
I suggest we mark all the APIs we want to remove with
@deprecated, and add adeno lintdiagnostic for when these APIs are used. In Deno 2.0 we can then remove these APIs.Reasoning
Code which does not actually require native syscalls should not use
Denonamespace APIs as this makes the code incompatible with browsers, even though there is no need for that to be the case. An example of this: https://deno.land/std@0.90.0/io/streams.ts. This usesDenoAPIs, even though no native calls are preformed, making this code unusable in a web browser for no good reason.