improve script for building JS SDK

master
Niko PLP 1 week ago
parent 33e8942a0f
commit 7331289e0f
  1. 7
      DEV.md
  2. 3
      ng-app/README.md
  3. 2
      ng-app/src/classes.ts
  4. 3
      ng-sdk-js/.gitignore
  5. 8
      ng-sdk-js/Cargo.toml
  6. 33
      ng-sdk-js/DEV.md
  7. 3
      ng-sdk-js/app-react/README.md
  8. 3
      ng-sdk-js/app-web/README.md
  9. 3
      ng-sdk-js/prepare-node.js

@ -14,13 +14,14 @@ cargo install wasm-pack --git https://github.com/rustwasm/wasm-pack.git --rev c2
``` ```
cargo install cargo-watch cargo install cargo-watch
cargo install cargo-run-script
// optionally, if you want a Rust REPL: cargo install evcxr_repl // optionally, if you want a Rust REPL: cargo install evcxr_repl
git clone git@git.nextgraph.org:NextGraph/nextgraph-rs.git git clone git@git.nextgraph.org:NextGraph/nextgraph-rs.git
// or if you don't have a git account with us: git clone https://git.nextgraph.org/NextGraph/nextgraph-rs.git // or if you don't have a git account with us: git clone https://git.nextgraph.org/NextGraph/nextgraph-rs.git
cd nextgraph-rs cd nextgraph-rs
npm install -g pnpm npm install -g pnpm
cd ng-sdk-js cd ng-sdk-js
wasm-pack build --target bundler cargo run-script app
npm install --no-save pkg npm install --no-save pkg
cd ../ng-app cd ../ng-app
pnpm install pnpm install
@ -167,9 +168,11 @@ cd ..
Otherwise, build from source the single-file release of ng-app Otherwise, build from source the single-file release of ng-app
``` ```
cargo install cargo-run-script
npm install -g pnpm npm install -g pnpm
cd ng-sdk-js cd ng-sdk-js
wasm-pack build --target bundler cargo run-script app
npm install --no-save pkg
cd ../ng-app cd ../ng-app
pnpm install pnpm install
pnpm webfilebuild pnpm webfilebuild

@ -21,7 +21,8 @@ prerequisites: compile the local SDK
``` ```
cd ../ng-sdk-js cd ../ng-sdk-js
wasm-pack build --target bundler cargo install cargo-run-script
cargo run-script app
npm install --no-save pkg npm install --no-save pkg
cd ../ng-app cd ../ng-app
``` ```

@ -382,7 +382,7 @@ export const official_classes = {
"ng:n": "Email", "ng:n": "Email",
"ng:a": "Email content and headers", "ng:a": "Email content and headers",
"ng:x": { "ng:x": {
"email": "http://www.invincea.com/ontologies/icas/1.0/email#" //https://raw.githubusercontent.com/twosixlabs/icas-ontology/master/ontology/email.ttl "email": "http://www.invincea.com/ontologies/icas/1.0/email#" //https://raw.githubusercontent.com/twosixlabs/icas-ontology/master/ontology/email.ttl // https://www.semanticdesktop.org/ontologies/2007/03/22/nmo/
}, },
"ng:compat": ["file:iana:message:rfc822","file:iana:multipart:related"], "ng:compat": ["file:iana:message:rfc822","file:iana:multipart:related"],
}, },

@ -0,0 +1,3 @@
pkg/*
pkg-node/*
web/*

@ -16,6 +16,14 @@ rust-version.workspace = true
[package.metadata.wasm-pack.profile.release] [package.metadata.wasm-pack.profile.release]
wasm-opt = false wasm-opt = false
[package.metadata.scripts]
appdev = "rm -r pkg && wasm-pack build --target bundler"
app = "rm -r pkg && wasm-pack build --target bundler"
nodedev = "rm -r pkg-node && wasm-pack build --dev -t nodejs -d pkg-node && node prepare-node.js"
node = "rm -r pkg-node && wasm-pack build -t nodejs -d pkg-node && node prepare-node.js"
web = "rm -r web && wasm-pack build --target web -d web"
webdev = "rm -r web && wasm-pack build --dev --target web -d web"
[lib] [lib]
crate-type = ["cdylib"] crate-type = ["cdylib"]

@ -31,27 +31,37 @@ And our community forum where you can ask questions is here [https://forum.nextg
Read our [getting started guide](https://docs.nextgraph.org/en/getting-started/). Read our [getting started guide](https://docs.nextgraph.org/en/getting-started/).
``` ```
// for nodejs
npm i nextgraph
// or for browser (not published to npm yet)
npm i ng-sdk-js npm i ng-sdk-js
``` ```
## For contributors ## For contributors
First of all, run:
```
cargo install cargo-run-script
```
We recommend contributors to use the production build, as the creation and opening of wallets is very slow in the dev build. We recommend contributors to use the production build, as the creation and opening of wallets is very slow in the dev build.
Only use the dev build when debugging the sdk. see the next chapter for the production build. Only use the dev build when debugging the sdk. see the next chapter for the production build.
Please note that the dev and prod builds share the same output folder, they thus override each other. Please note that the dev and prod builds share the same output folder, they thus override each other.
When building the app, be sure to have the production build of the SDK in the output folder. When building the app, be sure to have the production build of the SDK in the output folder.
``` ```
wasm-pack build --dev --target bundler // for the app sdk (browser)
cargo run-script appdev
wasm-pack build --dev -t nodejs -d pkg-node // for the nodejs sdk
node prepare-node.js cargo run-script nodedev
``` ```
For testing in vanilla JS For testing in vanilla JS
``` ```
wasm-pack build --dev --target web -d web cargo run-script webdev
python3 -m http.server python3 -m http.server
// open http://localhost:8000 // open http://localhost:8000
@ -66,15 +76,10 @@ wasm-pack test --chrome --headless
## Production build ## Production build
``` ```
wasm-pack build --target bundler cargo run-script app
tar --exclude .DS_Store -zcvf pkg.tar.gz pkg tar --exclude .DS_Store -zcvf pkg.tar.gz pkg
wasm-pack build -t nodejs -d pkg-node cargo run-script node
wasm-pack build --target web -d web cargo run-script web
node prepare-node.js
cd pkg
npm publish --access=public
cd ../pkg-node
npm publish --access=public
``` ```
### Example Plain JS web app ### Example Plain JS web app
@ -83,7 +88,8 @@ npm publish --access=public
cd ../app-web cd ../app-web
// for local development // for local development
npm install --no-save ../pkg npm install --no-save ../pkg
// or, for install from npm registry: npm install // or, for installation from npm registry: npm install
// then:
npm start npm start
``` ```
@ -130,4 +136,3 @@ Licensed under either of
--- ---
NextGraph received funding through the [NGI Assure Fund](https://nlnet.nl/assure) and the [NGI Zero Commons Fund](https://nlnet.nl/commonsfund/), both funds established by [NLnet](https://nlnet.nl/) Foundation with financial support from the European Commission's [Next Generation Internet](https://ngi.eu/) programme, under the aegis of DG Communications Networks, Content and Technology under grant agreements No 957073 and No 101092990, respectively. NextGraph received funding through the [NGI Assure Fund](https://nlnet.nl/assure) and the [NGI Zero Commons Fund](https://nlnet.nl/commonsfund/), both funds established by [NLnet](https://nlnet.nl/) Foundation with financial support from the European Commission's [Next Generation Internet](https://ngi.eu/) programme, under the aegis of DG Communications Networks, Content and Technology under grant agreements No 957073 and No 101092990, respectively.

@ -16,7 +16,7 @@ Build the JS SDK
``` ```
cd .. cd ..
wasm-pack build --target bundler cargo run-script app
``` ```
``` ```
@ -40,4 +40,3 @@ Licensed under either of
--- ---
NextGraph received funding through the [NGI Assure Fund](https://nlnet.nl/assure) and the [NGI Zero Commons Fund](https://nlnet.nl/commonsfund/), both funds established by [NLnet](https://nlnet.nl/) Foundation with financial support from the European Commission's [Next Generation Internet](https://ngi.eu/) programme, under the aegis of DG Communications Networks, Content and Technology under grant agreements No 957073 and No 101092990, respectively. NextGraph received funding through the [NGI Assure Fund](https://nlnet.nl/assure) and the [NGI Zero Commons Fund](https://nlnet.nl/commonsfund/), both funds established by [NLnet](https://nlnet.nl/) Foundation with financial support from the European Commission's [Next Generation Internet](https://ngi.eu/) programme, under the aegis of DG Communications Networks, Content and Technology under grant agreements No 957073 and No 101092990, respectively.

@ -16,7 +16,7 @@ Build the JS SDK
``` ```
cd .. cd ..
wasm-pack build --target bundler cargo run-script app
``` ```
``` ```
@ -40,4 +40,3 @@ Licensed under either of
--- ---
NextGraph received funding through the [NGI Assure Fund](https://nlnet.nl/assure) and the [NGI Zero Commons Fund](https://nlnet.nl/commonsfund/), both funds established by [NLnet](https://nlnet.nl/) Foundation with financial support from the European Commission's [Next Generation Internet](https://ngi.eu/) programme, under the aegis of DG Communications Networks, Content and Technology under grant agreements No 957073 and No 101092990, respectively. NextGraph received funding through the [NGI Assure Fund](https://nlnet.nl/assure) and the [NGI Zero Commons Fund](https://nlnet.nl/commonsfund/), both funds established by [NLnet](https://nlnet.nl/) Foundation with financial support from the European Commission's [Next Generation Internet](https://ngi.eu/) programme, under the aegis of DG Communications Networks, Content and Technology under grant agreements No 957073 and No 101092990, respectively.

@ -6,7 +6,10 @@ const PATH_README = './pkg-node/README.md';
const pkg_json = fs.readFileSync(PATH); const pkg_json = fs.readFileSync(PATH);
let pkg = JSON.parse(pkg_json) let pkg = JSON.parse(pkg_json)
pkg.name = "nextgraph"; pkg.name = "nextgraph";
pkg.version = "0.1.1-alpha.1";
pkg.description = "nodeJS SDK of NextGraph"; pkg.description = "nodeJS SDK of NextGraph";
pkg.files.push("ng_sdk_js_bg.wasm.d.ts");
pkg.files.push("snippets/**/*.js");
fs.writeFileSync(PATH, JSON.stringify(pkg, null, 2), 'utf8'); fs.writeFileSync(PATH, JSON.stringify(pkg, null, 2), 'utf8');
fs.readFile(PATH_README, 'utf8', function (err,data) { fs.readFile(PATH_README, 'utf8', function (err,data) {

Loading…
Cancel
Save