artemis 7.13.1
artemis: ^7.13.1 copied to clipboard
Build dart types from GraphQL schemas and queries (using Introspection Query).
CHANGELOG #
7.13.1 #
- Move
betaversion out of beta for pub.dev awareness
7.13.0-beta.3 #
- Add discontinuation notice
7.13.0-beta.2 #
- readme fix
7.13.0-beta.1 #
- package update
7.12.0-beta.1 #
- package update
7.11.0-beta.1 #
- actions/checkout@v3 update
7.11.0-beta #
- package update
7.10.0-beta.4 #
- fix pipeline quoting issues
7.10.0-beta.3 #
- fix pipeline path, again
7.10.0-beta.2 #
- fix pipeline path
7.10.0-beta.1 #
- update workflows to use official community actions
7.10.0-beta #
- package update
7.9.0-beta #
- common fragments overlap fix
7.8.0-beta #
- package update
7.7.0-beta #
- package update
7.6.1-beta #
- operation name constant
7.6.2-beta #
- generate_queries flag to signify if query documents and operation names should be generated
7.6.1-beta #
- operation name constant
7.6.0-beta #
- package updates
7.5.0-beta #
- there is no need to use
fragments_globany more just specify the glob which will include all your graphql docs
7.4.0-beta #
- allow using file fragments and common fragments at the same time
7.3.3-beta #
7.3.2-beta #
- performance improvements-2
7.3.1-beta #
- performance improvements
7.3.0-beta #
- package update
7.2.6-beta #
- Fix README
7.2.5-beta #
- Format some files to improve
panascore
7.2.4-beta #
- package update
7.2.3-beta #
- Update examples and make sure they all work
7.2.2-beta #
- Add throwable errors for missing root object and used query fragments
7.2.1-beta #
- Update package to use official Dart lint following this guide
7.2.0-beta.0 #
- package update
7.1.1-beta.1 #
- support of
fragments_globat schema level
7.1.0-beta.2 #
7.1.0-beta.1 #
- duplicated $$typename fix
7.1.0-beta.0 #
BREAKING CHANGE
- changed the naming of scalar mappers
7.0.0-beta.17 #
- example indentaion fix
7.0.0-beta.16 #
- lazy canonical visitors
7.0.0-beta.15 #
- Update build_runner version in examples
- Update Pokemon API in pokemon example
- Update WebSocketLink in hasura example
7.0.0-beta.14 #
- Support gql context in client's execute and stream methods
7.0.0-beta.13 #
7.0.0-beta.12 #
- package update
7.0.0-beta.11 #
- document generation fix for https://github.com/comigor/artemis/issues/307
7.0.0-beta.10 #
- union generation fix for https://github.com/comigor/artemis/issues/284
7.0.0-beta.9 #
- nullable scalar_mapping types
7.0.0-beta.8 #
- packages update
7.0.0-beta.7 #
- config file error handling
7.0.0-beta.6 #
- packages update
7.0.0-beta.5 #
- github example fix
- pokemon example fix
- hasura example fix
- graphbrainz example fix
7.0.0-beta.4 #
- packages update
- null-safe tests
7.0.0-beta.3 #
- document generated in separate variable for easier usage
7.0.0-beta.2 #
- package nnbd migraion
7.0.0-beta.1 #
MAJOR BREAKING CHANGE
- Code generated by Artemis is now nnbd-compliant
6.20.1-beta.2 #
- Add codespaces folder
6.20.1-beta.1 #
- Allow for auto generated response and inputs to extend JsonSerializable
6.19.3-beta.1 #
- bugfix of append typename - common fragments
6.19.2-beta.1 #
- bugfix of append typename
6.19.1-beta.1 #
- Append typename flag
6.18.2 #
- Merging beta into master
6.18.1-beta.1 #
- add unknownEnumValue on list enums https://github.com/comigor/artemis/issues/246
6.17.3 #
- Add test case, warning to README, fix CI pipeline
6.17.2 #
- Update dependencies versions
6.17.1-beta.1 #
- package updates and one test fix
6.16.1-beta.1 #
- simple naming schema fix https://github.com/comigor/artemis/issues/226
6.15.1-beta.1 #
- Override annotation fix
6.14.1-beta.1 #
- Package updates
6.13.1-beta.1 #
- input underscore bugfix https://github.com/comigor/artemis/issues/223
6.12.3-beta.2 #
- Subscription test added
6.12.3-beta.1 #
- Readme fix
6.12.2-beta.1 #
- Fixed
ignore_for_filedocumentation.
6.12.1-beta.1 #
- Added
ignore_for_fileoption to ignore linter rules on generated files.
6.11.1-beta.1 #
- improved canonical types handling
6.10.1-beta.1 #
- Package updates
6.9.2-beta.1 #
- Fixed
toJson() doesn't remove "kw$" prefix
6.8.2-beta.1 #
- test fix
6.8.1-beta.1 #
- fix for multiple schema_mapping
6.7.2-beta.1 #
- analyzer and linter warnings fix
6.7.1-beta.1 #
- uppercase keyword fix
6.6.4-beta.1 #
- pubspec fix
6.6.3-beta.1 #
- test fix
6.6.2-beta.1 #
- nnbd preparation
6.6.1-beta.1 #
- allow multiple operations per file
6.5.2-beta.1 #
- performance improvements - scan schema for canonical types only once
6.5.1-beta.1 #
- enum name pascal casing.
6.5.0-beta.1 #
- Add deprecated annotations in fields.
6.4.4-beta.1 #
- Build type name recursively, considering casing changes.
6.4.3-beta.1 #
- Mass package update
6.3.3-beta.1 #
- Centralize naming transformations; make types PascalCase and fields camelCase.
6.3.2-beta.1 #
- Recursively consider input lists.
6.3.1-beta.1 #
- Do not throw on unused scalars.
6.3.0-beta.1 #
MAJOR BREAKING CHANGE
- all starting underscores are replaced with $
__typenamefield replaced with$$typename- enums are named according to Dart spec
- fields similar to Dart keywords are prefixed with
kw$
6.2.1-beta.1 #
- Check for more error causes and throw, explaining the error.
6.2.0-beta.1 #
MAJOR BREAKING CHANGE
We've found a regression on 6.1.0-beta.1, which sends Enums as camelCase to
the server, when they should be sent as SCREAMING_SNAKE_CASE.
- Reverts
6.1.0-beta.1.
6.1.1-beta.2 #
- Improve actions and check pipeline output.
6.1.1-beta.1 #
- Short-circuit input object generation on recursive detection
6.1.0-beta.1 #
MAJOR BREAKING CHANGE
- Convert enum casing to camel case.
6.0.11-beta.1 #
- Convert
ClassPropertyannotation item toList<String>.
6.0.10-beta.1 #
- Duplication bug fix
6.0.9-beta.1 #
- Added the exception for the case when
fragment_globleads to query files fragments ignore.
6.0.8-beta.1 #
- Adapt Artemis to subscriptions and create an example
6.0.7-beta.1 #
- Fix for the interfaces which uses fragments from fragments_glob
6.0.6-beta.1 #
- Hide build logs under
--verboseflag
6.0.5-beta.1 #
- Include coercers annotations on custom scalars on input objects.
6.0.4-beta.1 #
- Properly consider "sub-fragments" on class generation.
6.0.3-beta.1 #
- Fix generation of custom scalars and its functions.
6.0.2-beta.1 #
- Fix invalid reference to class on Query generations.
6.0.1-beta.1 #
- End forwarder file with a newline.
6.0.0-beta.1 #
MAJOR BREAKING CHANGE
- Generate canonical objects (enums and input objects) with their original
names on GraphQL. Fragments are also generated with their own names (plus the
Mixinprefix, for now). - Make it possible to select a naming scheme to be used for generate the class
names.
pathedWithTypesis the default for retrocompatibility, where the names of previous types are used as prefix of the next class. This can generate duplication on certain schemas. WithpathedWithFields, the names of previous fields are used as prefix of the next class and withsimple, only the actual GraphQL class nameis considered. See discussion on #90 and #96 for more information.
5.1.0 #
- Add
.graphql.to outputted files path, in a non-breaking change way: a "forwarder" file will be generated to make it retro-compatible when a configurated output doesn't end with.graphql.dart.
5.0.4 #
- Update CI to include beta branch.
5.0.3 #
- Update examples to match latest changes.
5.0.2 #
- Use default names for query/mutation root when SDL does not declare
schema.
5.0.1 #
- Fix generation of recursive input objects introduced by 5.0.0.
5.0.0 #
MAJOR BREAKING CHANGE
In this version we moved from json to graphql (SDL) schema parsing.
This allowed us to get rid off ±1200 lines of code which makes the
project support much easier. The test files with schema definitions
became more clear and human readable.
If you already have your schema in SDL format, just point to it in build.yaml.
If not, use this snippet
(from this Apollo article) or online helpers like
this one to convert from one to another.
4.0.2 #
- Only add unknownEnumValue on non-list enums
- Consider all classes to include reference to meta package
4.0.1 #
- Look at mutation root when generating a mutation
4.0.0 #
MAJOR BREAKING CHANGE
This version completely refactors how Artemis generate code (by finally
using the implementation of visitor pattern provided by gql). On top of that,
I've decided to do other major breaking changes to make code cleaner and more
maintainable. Listed:
add_query_prefixdoesn't exist anymore (it's now the default to generate classes with its "path" from the query), e.g., this query'scityfield will be typed asCityName$QueryRoot$User$Address$City:
This change was also done to tip users to NOT use those generated queries directly on their code, to avoid coupling them to your business logic.query city_name { user { address { city { name } } } }custom_parser_importwas moved to inside a ScalarMap, anduse_custom_parserwas removed.resolve_type_fieldoption was renamed totype_name_field, as__typenameis the correct field name (by GraphQL spec).- Classes generated for mutation will have a
Mutationsuffix, as queries already haveQuerysuffix. - Change pre-generation data classes constructors to named parameters, so if
you're using
GraphQLQueryBuilder.onBuild, it will break.
And also:
- Add more logs and errors while generating code, to help debugging.
- Add more/refactor tests.
- Add a GitHub example.
TODO:
- ❌ re-add more logs
- ❌ clean options (?)
- ❌ prefix every class with
$(?) - ❌ refactor class naming variables
- ❌ review readme and changelog
3.2.1 #
- Fix unknown enum: add prefix
3.2.0 #
- Make enums loose. When unknown values are provided into an enum, it will fall back to a custom
ARTEMIS_UNKNOWNvalue avoiding breaking/crashing the client.
3.1.0 #
- Allow to dispose
ArtemisClientunderlining http client when possible
2.2.2 #
- Make lists as input objects work again
2.2.1 #
- Display error on types not found on schema
2.2.0+1 #
- Add "Articles and videos" category on README
2.1.4 #
- Add missing prefix to generated enums
2.1.3 #
- Bump equatable/gql suite, refine GitHub actions
2.1.2 #
- Bump json_serializable/json_annotation
2.1.1 #
- Properly consider Union types on generation
2.1.0+1 #
- Fix GitHub actions deploy pipeline
- Make sure artemis depends on json_annotation
2.1.0 #
- Generate fragments as mixins
2.0.7+1 #
- README updates
2.0.7 #
- Add missing prefix to interfaces
2.0.6 #
- Perserve the query name casing
2.0.5 #
- Bump
gqlpackage
2.0.4 #
- Bump
gqlpackage
2.0.3 #
- Generate every field of input objects
2.0.2 #
- Support
__schemakey under the data field or on root ofschema.json.
2.0.1 #
- Loosen up dependencies to make it work again with Flutter
betachannel
2.0.0 #
- BREAKING: move
GraphQLErrortopackage:gql. If you don't use it, or just reference it indirectly, it will not be breaking, but a major will be bumped anyway, just for sure. - Upgrade
package:gqlto version0.7.4 - Build GQL AST into generated Dart code instead of the raw string
- Use
Linkfrompackage:gql/linkas the execution interface ofArtemisClient - Use
package:gql_dedupe_linkandpackage:gql_http_linkas the default links
1.0.4 #
- Add a test to guarantee query inputs can be lists
1.0.3 #
- Disable implicit casts
- Avoid double-parsing the source string
1.0.2 #
- Differentiate lists from named types when looping through variables
- Consider nullable operation name when defining query name
1.0.1 #
- Upgrade
gqlto version0.2.0to get rid of direct dependency onsource_spanand for better parsing errors. - Filter for
SchemaMapwithoutputwhen generating code
1.0.0 #
- Breaking: Add required
outputoption toSchemaMap - Make Artemis a
$lib$synthetic generator - Add
add_query_prefixoption toSchemaMap
0.7.0 #
- Make generated classes a mixin of
Equatable, meaning they can be easily comparable with==
0.6.1 #
- Include pubspec.lock files of examples
0.6.0 #
- Replace
graphql_parserwithgqlpackage
0.5.1 #
- Add most documentation
- Increase pana grade (health and maintenance)
- Fix some stuff related to importing http on client
0.5.0 #
- Start using
code_builderto better generate Dart code
0.4.0 #
- Allow scalar mappings to include imports for types
0.3.2 #
- Decode HTTP response as UTF-8 on execute helper.
0.3.1 #
- Export common used files on default package route (
package:artemis/artemis.dart) - Use single schemaMap globbing stream to make sure only one schema will be found
- Add missing changelog
- Test new github actions
0.3.0 BREAKING #
- Add new generators to GraphQLQuery and QueryArguments
- Fix toJson() on JsonSerializable classes (for nested entities)
- [BREAKING] Remove the
execute*functions generations, to use instead the genericArtemisClientclass that should receive a GraphQLQuery generated subclass.
0.2.1 #
Set HTTP headers only when using default HTTP client.
0.2.0 BREAKING #
Completely overhaul how this works.
Artemis won't generate a full schema typing anymore. Instead, it will use the schema to generate typings from a specific query or mutation. It will also create helper functions to execute those queries. See README for more info.
This is totally a breaking change but as this library is still on alpha, I should keep it under 1.0.
0.1.3 #
- Make objects that implement interfaces override resolveType
0.1.2 #
- Improve package score
0.1.1 #
- Enable tests on pipeline
0.1.0 #
- "Fix" json_serializable dependency
- Add tests
- Generate union types as inheritance
- Generate interface types as implementation
- Make generated code choose inheritance
0.0.1 #
- First release
- No tests
- No documentation
- Parse complex GraphQL schemas (incorrectly, now I know)
- Parse all GraphQL types types (union, interface, enum, input object, object, scalar, list, non null)
- Consider custom scalars
- Not even compile from scratch
- Lot of bugs