Skip to content

Commit

Permalink
Renamed module template to zome
Browse files Browse the repository at this point in the history
  • Loading branch information
guillemcordoba committed Apr 18, 2024
1 parent cc78f54 commit b59fda1
Show file tree
Hide file tree
Showing 186 changed files with 72 additions and 45 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: "test"
name: Test app custom template
on:
# Trigger the workflow on push or pull request,
# but only for the main branch
Expand Down Expand Up @@ -30,7 +30,3 @@ jobs:
run: |
nix develop --command bash -c "sh run_test_app.sh"
- name: Test module template
run: |
nix develop --command bash -c "sh run_test_module.sh"
32 changes: 32 additions & 0 deletions .github/workflows/test-zome.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Test zome custom template
on:
# Trigger the workflow on push or pull request,
# but only for the main branch
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]

jobs:
testbuild:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Install nix
uses: cachix/install-nix-action@v25
with:
nix_path: nixpkgs=channel:nixos-unstable

- uses: cachix/cachix-action@v14
with:
name: holochain-ci

- uses: cachix/cachix-action@v14
with:
name: holochain-open-dev

- name: Test zome template
run: |
nix develop --command bash -c "sh run_test_zome.sh"
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ Custom templates for the [scaffolding tool](https://github.com/holochain/scaffol

There are two templates available:

- `app`: fully blown app, following the open-dev patterns and with the profiles module pre-installed.
- `module`: template to build modules like the ones you can find in [open-dev](https://github.com/holochain-open-dev), with the profiles module already pre-installed.
- `app`: fully blown app, following the open-dev patterns and with the profiles zome pre-installed.
- `zome`: template to build zomes like the ones you can find in [open-dev](https://github.com/holochain-open-dev), with the profiles zome already pre-installed.

## Using the templates

Expand All @@ -25,10 +25,10 @@ This is necessary to enable fetching of most dependencies from the cache, rather
nix run github:holochain-open-dev/templates#hc-scaffold-app-template -- web-app
```

1b. To scaffold a new **module** project, run this:
1b. To scaffold a new **zome** project, run this:

```bash
nix run github:holochain-open-dev/templates#hc-scaffold-module-template -- web-app
nix run github:holochain-open-dev/templates#hc-scaffold-zome-template -- web-app
```

2. If you already have an existing project, add the `holochain-open-dev/templates` repository as input to your flake, and use it in the packages or your `devShell`:
Expand Down Expand Up @@ -69,7 +69,7 @@ nix run github:holochain-open-dev/templates#hc-scaffold-module-template -- web-a
pkgs.nodejs_20
# more packages go here
+ ] ++ [
+ # inputs'.scaffolding.packages.hc-scaffold-module-template # if your repository is a module
+ # inputs'.scaffolding.packages.hc-scaffold-zome-template # if your repository is a zome
+ inputs'.scaffolding.packages.hc-scaffold-app-template # if your repository is an app
];
};
Expand Down
4 changes: 2 additions & 2 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,9 @@
customTemplatePath = ./templates/app;
};

packages.hc-scaffold-module-template = inputs.scaffolding.lib.wrapCustomTemplate {
packages.hc-scaffold-zome-template = inputs.scaffolding.lib.wrapCustomTemplate {
inherit pkgs system;
customTemplatePath = ./templates/module;
customTemplatePath = ./templates/zome;
};
};
};
Expand Down
13 changes: 8 additions & 5 deletions run_test_module.sh → run_test_zome.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ set -e

DIR=$(pwd)

nix shell .#hc-scaffold-module-template --command bash -c "
nix shell .#hc-scaffold-zome-template --command bash -c "
cd /tmp
rm -rf posts-open-dev
mkdir posts-open-dev
Expand Down Expand Up @@ -37,9 +37,12 @@ git add .

pnpm i

pnpm -F ui format
pnpm -F ui lint
pnpm -F ui build
pnpm -F @holochain-open-dev/posts format
pnpm -F @holochain-open-dev/posts lint
pnpm -F @holochain-open-dev/posts build

pnpm t
pnpm i

pnpm build:happ
pnpm -F tests test
"
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ export class Create{{pascal_case entry_type.name}} extends LitElement {
{{#each entry_type.fields}}
{{#if widget}}
{{#if (eq cardinality "vector")}}
{{snake_case field_name}}: (Array.isArray(fields.{{snake_case field_name}}!) ? fields.{{snake_case field_name}}! : [fields.{{snake_case field_name}}!]).map((el: any) => {{> (concat field_type.type "/" widget "/edit/to-value") field_name=field_name variable_to_read="el" }}),
{{snake_case field_name}}: (Array.isArray(fields.{{snake_case field_name}}!) ? fields.{{snake_case field_name}}! : [fields.{{snake_case field_name}}!] as unknown as Array<{{> (concat field_type.type "/type") }}).map((el) => {{> (concat field_type.type "/" widget "/edit/to-value") field_name=field_name variable_to_read="el" }}),
{{else}}
{{snake_case field_name}}: {{> (concat field_type.type "/" widget "/edit/to-value") field_name=field_name variable_to_read=(concat "fields." (snake_case field_name) "!" ) }},
{{/if}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,14 +72,14 @@ export class Edit{{pascal_case entry_type.name}} extends LitElement {
this.shadowRoot?.querySelector('form')!.reset();
}

async update{{pascal_case entry_type.name}}(fields: unknown) {
async update{{pascal_case entry_type.name}}(fields: Partial<{{pascal_case entry_type.name}}>) {
const {{camel_case entry_type.name}}: {{pascal_case entry_type.name}} = {
{{#each entry_type.fields}}
{{#if widget}}
{{#if (eq cardinality "vector")}}
{{snake_case field_name}}: (Array.isArray(fields.{{snake_case field_name}}) ? fields.{{snake_case field_name}} : [fields.{{snake_case field_name}}]).map((el: any) => {{> (concat field_type.type "/" widget "/edit/to-value") field_name=field_name variable_to_read="el" }}),
{{snake_case field_name}}: (Array.isArray(fields.{{snake_case field_name}}!) ? fields.{{snake_case field_name}}! : [fields.{{snake_case field_name}}!] as unknown as Array<{{> (concat field_type.type "/type") }}).map((el) => {{> (concat field_type.type "/" widget "/edit/to-value") field_name=field_name variable_to_read="el" }}),
{{else}}
{{snake_case field_name}}: {{> (concat field_type.type "/" widget "/edit/to-value") field_name=field_name variable_to_read=(concat "fields." (snake_case field_name)) }},
{{snake_case field_name}}: {{> (concat field_type.type "/" widget "/edit/to-value") field_name=field_name variable_to_read=(concat "fields." (snake_case field_name) "!") }},
{{/if}}
{{else}}
{{snake_case field_name}}: this.currentRecord.entry.{{snake_case field_name}},
Expand Down
2 changes: 1 addition & 1 deletion templates/app/web-app/tests/package.json.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"@msgpack/msgpack": "^2.7.0",
"@holochain/client": "^0.17.0-dev.9",
"@holochain/tryorama": "{{tryorama_version}}",
"@holochain-open-dev/stores": "^0.300.0-dev.1",
"@holochain-open-dev/stores": "^0.300.0-dev.4",
"@holochain-open-dev/utils": "^0.300.0-dev.0",
"typescript": "^5.4.5",
"vitest": "^1.4.0"
Expand Down
2 changes: 1 addition & 1 deletion templates/app/web-app/ui/package.json.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"dependencies": {
"@holochain/client": "^0.17.0-dev.9",
"@holochain-open-dev/elements": "^0.300.0-dev.0",
"@holochain-open-dev/stores": "^0.300.0-dev.3",
"@holochain-open-dev/stores": "^0.300.0-dev.4",
"@holochain-open-dev/utils": "^0.300.0-dev.1",
"@lit/context": "^1.0.0",
"@lit/localize": "^0.12.0",
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ export class Create{{pascal_case entry_type.name}} extends LitElement {
{{#each entry_type.fields}}
{{#if widget}}
{{#if (eq cardinality "vector")}}
{{snake_case field_name}}: (Array.isArray(fields.{{snake_case field_name}}!) ? fields.{{snake_case field_name}}! : [fields.{{snake_case field_name}}!]).map((el: any) => {{> (concat field_type.type "/" widget "/edit/to-value") field_name=field_name variable_to_read="el" }}),
{{snake_case field_name}}: (Array.isArray(fields.{{snake_case field_name}}!) ? fields.{{snake_case field_name}}! : [fields.{{snake_case field_name}}!] as unknown as Array<{{> (concat field_type.type "/type") }}>).map((el) => {{> (concat field_type.type "/" widget "/edit/to-value") field_name=field_name variable_to_read="el" }}),
{{else}}
{{snake_case field_name}}: {{> (concat field_type.type "/" widget "/edit/to-value") field_name=field_name variable_to_read=(concat "fields." (snake_case field_name) "!" ) }},
{{/if}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ export class Edit{{pascal_case entry_type.name}} extends LitElement {
{{#each entry_type.fields}}
{{#if widget}}
{{#if (eq cardinality "vector")}}
{{snake_case field_name}}: (Array.isArray(fields.{{snake_case field_name}}!) ? fields.{{snake_case field_name}}! : [fields.{{snake_case field_name}}!]).map((el: any) => {{> (concat field_type.type "/" widget "/edit/to-value") field_name=field_name variable_to_read="el" }}),
{{snake_case field_name}}: (Array.isArray(fields.{{snake_case field_name}}!) ? fields.{{snake_case field_name}}! : [fields.{{snake_case field_name}}!] as unknown as Array<{{> (concat field_type.type "/type") }}).map((el) => {{> (concat field_type.type "/" widget "/edit/to-value") field_name=field_name variable_to_read="el" }}),
{{else}}
{{snake_case field_name}}: {{> (concat field_type.type "/" widget "/edit/to-value") field_name=field_name variable_to_read=(concat "fields." (snake_case field_name) "!" ) }},
{{/if}}
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ Here is an interactive demo of the element:

<script setup>
import { onMounted } from "vue";
import { {{pascal_case app_name}}ZomeMock, sample{{pascal_case referenceable.name}} } from "@holochain-open-dev/{{kebab_case app_name}}/dist/mocks.js";
import { {{pascal_case app_name}}ZomeMock, sample{{pascal_case to_referenceable.name}} } from "@holochain-open-dev/{{kebab_case app_name}}/dist/mocks.js";
import { {{pascal_case app_name}}Store, {{pascal_case app_name}}Client } from "@holochain-open-dev/{{kebab_case app_name}}";
import { decodeHashFromBase64 } from '@holochain/client';
import { decodeHashFromBase64, fakeActionHash } from '@holochain/client';
import { render, html } from "lit";
onMounted(async () => {
Expand All @@ -50,7 +50,7 @@ onMounted(async () => {
const record = await mock.create_{{snake_case to_referenceable.name}}({{camel_case to_referenceable.name}});
const toActionHash = fakeActionHash();
const toActionHash = await fakeActionHash();
{{#if (eq to_referenceable.hash_type "ActionHash")}}
await mock.add_{{snake_case from_referenceable.name}}_for_{{snake_case to_referenceable.name}}({
Expand All @@ -69,7 +69,7 @@ onMounted(async () => {
<{{kebab_case app_name}}-context .store=${store}>
<api-demo src="custom-elements.json" only="{{(plural from_referenceable.name)}}-for-{{kebab_case to_referenceable.name}}" exclude-knobs="store">
<template data-element="{{(plural from_referenceable.name)}}-for-{{kebab_case to_referenceable.name}}" data-target="host">
<{{kebab_case (plural from_referenceable.name)}}-for-{{kebab_case to_referenceable.name}} .{{camel_case to_referenceable.singular_arg}}=${fromActionHash}></{{kebab_case (plural from_referenceable.name)}}-for-{{kebab_case to_referenceable.name}}>
<{{kebab_case (plural from_referenceable.name)}}-for-{{kebab_case to_referenceable.name}} .{{camel_case to_referenceable.singular_arg}}=${toActionHash}></{{kebab_case (plural from_referenceable.name)}}-for-{{kebab_case to_referenceable.name}}>
</template>
</api-demo>
</{{kebab_case app_name}}-context>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ Here is an interactive demo of the element:

<script setup>
import { onMounted } from "vue";
import { {{pascal_case app_name}}ZomeMock, sample{{pascal_case referenceable.name}} } from "@holochain-open-dev/{{kebab_case app_name}}/dist/mocks.js";
import { {{pascal_case app_name}}ZomeMock, sample{{pascal_case from_referenceable.name}} } from "@holochain-open-dev/{{kebab_case app_name}}/dist/mocks.js";
import { {{pascal_case app_name}}Store, {{pascal_case app_name}}Client } from "@holochain-open-dev/{{kebab_case app_name}}";
import { decodeHashFromBase64 } from '@holochain/client';
import { decodeHashFromBase64, fakeActionHash } from '@holochain/client';
import { render, html } from "lit";
onMounted(async () => {
Expand All @@ -45,11 +45,11 @@ onMounted(async () => {
const mock = new {{pascal_case app_name}}ZomeMock();
const client = new {{pascal_case app_name}}Client(mock);
const {{camel_case to_referenceable.name}} = await sample{{pascal_case to_referenceable.name}}(client);
const {{camel_case from_referenceable.name}} = await sample{{pascal_case from_referenceable.name}}(client);
const record = await mock.create_{{snake_case to_referenceable.name}}({{camel_case to_referenceable.name}});
const record = await mock.create_{{snake_case from_referenceable.name}}({{camel_case from_referenceable.name}});
const fromActionHash = fakeActionHash();
const fromActionHash = await fakeActionHash();
{{#if (eq to_referenceable.hash_type "ActionHash")}}
await mock.add_{{snake_case from_referenceable.name}}_for_{{snake_case to_referenceable.name}}({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Notice that because you are using the module template, this template only works with a single dna and zome, which are already scaffolded for you. It also comes with the profiles module pre-installed.
Notice that because you are using the zome template, this template only works with a single dna and zome, which are already scaffolded for you. It also comes with the profiles module pre-installed.

So **don't run "hc scaffold dna" or "hc scaffold zome"**.

Expand All @@ -13,7 +13,7 @@ In order to be able to revert any next scaffolding steps, it is also recommended
git add .
git commit -m "module skeleton scaffolded"

To continue scaffolding your module, add new entry types:
To continue scaffolding your zome, add new entry types:

hc scaffold entry-type

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,20 +1,16 @@
{
"name": "docs",
"version": "1.0.0",
"description": "",
"main": "index.js",
"version": "0.0.1",
"private": true,
"type": "module",
"scripts": {
"start": "pnpm dev",
"dev": "pnpm setup && vitepress dev",
"build": "pnpm setup && vitepress build",
"setup": "pnpm analyze -w @holochain-open-dev/{{kebab_case app_name}} && cp ../ui/custom-elements.json elements && npm run cargo:docs",
"setup": "pnpm -F @holochain-open-dev/{{kebab_case app_name}} analyze && cp ../ui/custom-elements.json elements && npm run cargo:docs",
"cargo:docs": "cargo doc --release --no-deps --target-dir public/backend",
"preview": "vitepress preview"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"api-viewer-element": "^1.0.0-pre.8",
"vitepress": "^1.0.1",
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"@msgpack/msgpack": "^2.7.0",
"@holochain/client": "^0.17.0-dev.9",
"@holochain/tryorama": "{{tryorama_version}}",
"@holochain-open-dev/stores": "^0.300.0-dev.1",
"@holochain-open-dev/stores": "^0.300.0-dev.4",
"@holochain-open-dev/utils": "^0.300.0-dev.0",
"typescript": "^5.4.5",
"vitest": "^1.4.0"
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"dependencies": {
"@holochain/client": "^0.17.0-dev.9",
"@holochain-open-dev/elements": "^0.300.0-dev.0",
"@holochain-open-dev/stores": "^0.300.0-dev.1",
"@holochain-open-dev/stores": "^0.300.0-dev.4",
"@holochain-open-dev/utils": "^0.300.0-dev.0",
"@lit/context": "^1.0.0",
"@lit/localize": "^0.12.0",
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit b59fda1

Please sign in to comment.