@yodata/context-sdk

tools for developing and publishing yodata-context (cdef.yaml) files.

Usage no npm install needed!

<script type="module">
  import yodataContextSdk from 'https://cdn.skypack.dev/@yodata/context-sdk';
</script>

README

@yodata/context-sdk

Developer tools for managing yodata context/view yaml files.

Context (cdef.yaml) Syntax

$schema: 'https://realestate.yodata.me/context/v1/schema.yaml'
$id: 'https://pod.example.com/public/context/{{name}}.yaml'
context:
  sourcekey: targetkey
view:
  destkey: selector

See the @yodata/transform documentation for more info

CLI commands

create-yodata-context

$ npx create-yodata-context

? project name              my-context
? project description       my awesome context
? validationSchema:         https://realestate.yodata.me/context/v1/schema.yaml
? service pod URL           https://user.example.com
? pod secret (x-api-key)    secret

Done.

  - see your context README.md for some helpful information on context development:
    open my-context/README.md

$ cd my-context

This command creates a new sub-directory and scaffolds a context project.

template files

.
├── README.md
├── __tests__
│   └── my-context.test.js
├── example
│   ├── input.json
│   └── output.json
├── my-context.cdef.yaml
└── package.json

Deploy

> npx deploy
# deploys to {{pod.url}}/public/context/{{environment}}/{{name}}.cdef.yaml
# @default environment = stage

This command will http.put your context to the default location (stage)

deploy options

--production

> npx deploy --production
# deploys to {{pod.url}}/public/context/{{name}}.cdef.yaml

Transform

> npx transform <datapath> <filepath> [--inverse]
# @param {string} datapath - path to the file to be transformed
# @param {string} filepath - path to the context file ({{name}}.cdef.yaml)
# @default filepath = {{name}}.cdef.yaml
# @param {boolean} inverse - flag (use for testing outbound transforms (subscriptions))

This command will:

  1. Fetch and parse the context from filepath
  2. Fetch and parse the JSON or YAML data from datapath
  3. Transform data with the context provided
  4. Print the result and/or any errors to console