We should be able to push new schemas without making new releases
(before it was edits without releases, now it's new files without releases)
Added support for relative $ref in the JSON schemas.
At the time of this writting, the section.json schema refers to ./input-settings.json file in its rules.
This is setup so that I can reuse input-settings.json in the theme block JSON schema, theme app extension block JSON schema, and config/settings_schema.json JSON schema.
Changed my mind about the jsonValidationSet.schemas being static.
For monorepo support, and to support theme app extension mode overload of the blocks/*.liquid JSON schema file match collision, we need that thing to be a (context: 'app' | 'theme') => Promise<SchemaDefinition>[]
What did you learn?
Got burned by trying to take a shortcut. The getDefaultTranslationsForURI style APIs are annoying, but they make monorepos work.
What are you adding in this PR?
Lots of internal breaking changes. See changesets.
context: 'app' | 'theme'
property toConfig
typesection
andtranslations
schemas into a system that depends on the Shopify/theme-tools manifest files$ref
in the JSON schemas.section.json
schema refers to./input-settings.json
file in its rules.input-settings.json
in the theme block JSON schema, theme app extension block JSON schema, andconfig/settings_schema.json
JSON schema.jsonValidationSet.schemas
being static.blocks/*.liquid
JSON schema file match collision, we need that thing to be a(context: 'app' | 'theme') => Promise<SchemaDefinition>[]
What did you learn?
getDefaultTranslationsForURI
style APIs are annoying, but they make monorepos work.Before you deploy
changeset