Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
bterlson
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
7 ms
·
1.
▲
by
bterlson
1y ago
I work on TypeSpec. I'll be around if anyone has questions!
2.
▲
TypeSpec 1.0-RC: Design Faster Today, Scale Easier Tomorrow
(typespec.io)
3 points
by
bterlson
1y ago
|
2 comments
3.
▲
by
bterlson
2y ago
You can get by, e.g. you can use JSDoc comments describing format or pattern, generic types taking a parameter of either format or pattern along with a base type, or create a custom well-known type you define as having the properties of a U
4.
▲
by
bterlson
2y ago
It is being worked on. The best place to follow the development is our discord, there's a channel for graphql.
5.
▲
by
bterlson
2y ago
We first tried a TypeScript DSL and I really wish it would have worked for our use cases (e.g. describing complex REST APIs in Azure), but unfortunately it didn't. I explained a bit more here last time TypeSpec was on here: https:
6.
▲
by
bterlson
2y ago
As someone who works on TypeSpec, my feeling is that they are mostly different things. TypeSpec is a general purpose DSL which supports "emitting" to protobuf and other things, but in and of itself doesn't prescribe any parti
7.
▲
by
bterlson
2y ago
There are a few emitters in our standard library - OpenAPI 3.0, JSON Schema 2020-12, and Protobuf. REST client and service emitters for a few languages are coming online now and should be ready in the next couple months.
8.
▲
by
bterlson
2y ago
I think it can be, but it can also be used with OpenAPI to great effect as well. We're not trying to replace OpenAPI, OpenAPI is great in many ways and is useful for many people. In general we believe strongly in being interoperable wi
9.
▲
by
bterlson
2y ago
TypeSpec is designed primarily as an API first tool as opposed to being an output. In the context of ASP.NET and HTTP/REST APIs, our goal is that you can write your spec and generate much of the service implementation and clients. From
10.
▲
by
bterlson
2y ago
The OpenAPI and Json Schema emitters can produce yaml.
11.
▲
by
bterlson
2y ago
Yup, similar to that specific piece, and I definitely agree that GraphQL's DSL shows how much the DX of the description language itself matters, and how codegen is a productivity multiplier. I think gRPC also demonstrates this. You can
12.
▲
by
bterlson
2y ago
Moreover, compiling an IDL to N languages is substantially easier than compiling implementation code across N languages, especially when generating idiomatic code is a requirement. A language purpose-built for this task is going to produce
13.
▲
by
bterlson
2y ago
(I work on the team) I wouldn't say that TypeSpec is like GraphQL, so it would be hard for TypeSpec to become that on its own. GraphQL has a lot of opinions that are required in order to build a concrete application (protocols, error h
14.
▲
by
bterlson
2y ago
Grats on the release! It will be awesome to see how far y'all can push codegen quality from an OpenAPI source of truth. I worked on this extensively inside Azure and I know it is not an easy problem (and with more JSON Schema coming i
15.
▲
by
bterlson
2y ago
I'm just a JS guy trying to understand the world around me and documenting what I find, not trying to be discourteous (or even courteous). I'll add the note about Python, thanks for calling it out. FWIW JS does not have a similar
16.
▲
by
bterlson
2y ago
Pedantically, IEEE 754 defines decimal floating point formats (like decimal128) which are appropriate for representing currency. Representing currency in non-integer values in any of the binary floating point formats is indeed a recipe for
17.
▲
by
bterlson
2y ago
If you would like to contribute Swift tests, I would be happy to take it! You can send a PR into this document, updating the data tables and adding a code sample at the end: https://github.com/bterlson/blog/blob&#x
18.
▲
by
bterlson
2y ago
JS is likely to get a hook to be able to handle serialization/deserialization of such values without swapping out the entire implementation[1]. Native support for these types, without additional code or configuration, would likely brea
19.
▲
by
bterlson
2y ago
I think the spec just means, assume IEEE 754. In the case of 0.1, which cannot be represented exactly, software should assume that `0.1` will be represented as `0.100000000000000005551115123126`. Depending on `0.1` being parsed as the exact
20.
▲
by
bterlson
2y ago
I have added this note, thanks! In the blog I am mostly trying to show the behavior you get using the (maybe defacto) stdlib with its default configuration, but this is useful data to call out.
21.
▲
What even is a JSON number?
(blog.trl.sn)
179 points
by
bterlson
2y ago
|
147 comments
22.
▲
by
bterlson
2y ago
We're working on bringing it into the TypeSpec project as we speak. You can see an initial demo of it working in this repo: https://github.com/bterlson/typespec-todo .
23.
▲
by
bterlson
2y ago
The link should load up with a sample I wrote, I think? It does for me anyway! Let me know if you don't see it. But I'll also paste it here: model Foo { /** this is a description */ x: Bar; } &
24.
▲
by
bterlson
2y ago
The playground I posted has a description. They're pulled from JSDoc style comments. You can also use the `@doc` decorator, though that's usually reserved for more advanced cases like when you need string interpolation or somethin
25.
▲
by
bterlson
2y ago
By the way, you can use the "allOf hack" to put documentation alongside a ref. TypeSpec emits this for common cases like this one: https://typespec.io/playground?c=bW9kZWwgRm9vIHsNCiAgLyoqIHR...
26.
▲
by
bterlson
2y ago
For what it's worth, we support 3.0 because as you note the ecosystem doesn't support 3.1 broadly yet. I'm personally interested to see if 3.1 becomes prevalent before 4.0 is released. Maybe the ecosystem will just skip 3.1?
27.
▲
by
bterlson
2y ago
This docs page will hopefully help: https://typespec.io/docs/libraries/http/authentication
28.
▲
by
bterlson
2y ago
It's a beauty! I had to get on the train early before it's everywhere.
29.
▲
by
bterlson
2y ago
Not yet, but we're working on it. Should be out in a few weeks.
30.
▲
by
bterlson
2y ago
It does not exist, but it will be worked on fairly soon. You can track progress on GitHub [1]. It will be as you suggest - a one time conversion, after which you can iterate. We have this workflow for inside Azure, but the converter is Azur
More ›