Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature/metafields-and-products #3

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

ProvorovOleksii
Copy link
Collaborator

@ProvorovOleksii ProvorovOleksii commented Nov 29, 2024

Updated:

  • Added Metafield definitions support
  • Added them to pull/ push CLI commands
  • Added them to applySchema() tento method
  • Added products API support
  • Added Common API for Jobs
  • Updated Metaobejct definition types for inferSelect, inferInsert
  • If field is required - it'll be required on insert, and also it'll be taken to account for GET API methods
  • Added new removeSchema() tento method
  • Added configuration for applySchema/ removeSchema methods
  • { unknownEntities: 'ignore' | 'remove' } - this option will help us to understand what metaobjects and metafields definition must be included for applying or removing process
  • Changed query Shopify method to request
  • Updated Readme
  • Updated tests
  • Updated graphql-codegen types
  • Updated example OAuth
  • Changed hono to express as in official Shopify example

- Updated metaobjects:
> - Added upsert, delete
- Added metafields:
> - Only schema
> They have all fields possibilities as metaobjects + reference on metaobject
- Restructured project to have metaobjects and metafields in different packages
- Added products:
> - Update
> - Get list
- Updated cli + lib migrations:
> - Added metafields
- Added tests
- Removed 'prefix' from CLI and client
> Also removed from defineConfig function
- Added config for tento.applySchema()
> - { unknownEntities: "delete" | "ignore" } -> 'ignore' by default
> It will help us to ensure that only specified metaobjects and metafields are retained, preventing the deletion of other existing items
- Lint files, add default Biom formatter
- Updated oauth example app
> - Removed Hono, added express
> This one only because shopify doesn't work with Hono
> - Changed schema, added metafileds
- Added removeSchema API for tento
> - It has the same config as applySchema() function
> We will remove only local schema intersections with remote introspect for 'ignore' option
> Remove all for 'delete' option
- Moved jobs function in own ShopifyJobsOperations class
- On metaobject.bulkDelete() return ShopifyJobOperations instance with done field and method to check -> checkDone()
- Update product definition config, added TName generic type to get metafield name as key for products.update metafields object
- Rewrote products syntax to make it symilar to metaobjects
- Added types for products from gql to simplify them for ts
- Removed `POST /apply` API
> Everything applies in `GET /` API
- Removed unnecessary libs

Updated client:
- Added all missing field definitions for metaobject and metafield
> They were written, but not provided to fields type
- Made metaobject definition `name` field not null, this field is also not null in Shopify definition

Fixed client:
- Now metaobjects list() method returns not union type
> Specified 2 same abstract methods list() to help typescript understanding what type to return
- Now if you provide partial select for products with both `true` and `false` it'll work as for metaobjects - `false` will be ignored
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant