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-run-script
// optionally, if you want a Rust REPL: cargo install evcxr_repl
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
cd nextgraph-rs
npm install -g pnpm
cd ng-sdk-js
wasm-pack build --target bundler
cargo run-script app
npm install --no-save pkg
cd ../ng-app
pnpm install
@ -167,9 +168,11 @@ cd ..
Otherwise, build from source the single-file release of ng-app
```
cargo install cargo-run-script
npm install -g pnpm
cd ng-sdk-js
wasm-pack build --target bundler
cargo run-script app
npm install --no-save pkg
cd ../ng-app
pnpm install
pnpm webfilebuild

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

@ -382,7 +382,7 @@ export const official_classes = {
"ng:n": "Email",
"ng:a": "Email content and headers",
"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"],
},

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

@ -16,6 +16,14 @@ rust-version.workspace = true
[package.metadata.wasm-pack.profile.release]
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]
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/).
```
// for nodejs
npm i nextgraph
// or for browser (not published to npm yet)
npm i ng-sdk-js
```
## 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.
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.
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
node prepare-node.js
// for the nodejs sdk
cargo run-script nodedev
```
For testing in vanilla JS
```
wasm-pack build --dev --target web -d web
cargo run-script webdev
python3 -m http.server
// open http://localhost:8000
@ -66,15 +76,10 @@ wasm-pack test --chrome --headless
## Production build
```
wasm-pack build --target bundler
cargo run-script app
tar --exclude .DS_Store -zcvf pkg.tar.gz pkg
wasm-pack build -t nodejs -d pkg-node
wasm-pack build --target web -d web
node prepare-node.js
cd pkg
npm publish --access=public
cd ../pkg-node
npm publish --access=public
cargo run-script node
cargo run-script web
```
### Example Plain JS web app
@ -83,7 +88,8 @@ npm publish --access=public
cd ../app-web
// for local development
npm install --no-save ../pkg
// or, for install from npm registry: npm install
// or, for installation from npm registry: npm install
// then:
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.

@ -16,7 +16,7 @@ Build the JS SDK
```
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.

@ -16,7 +16,7 @@ Build the JS SDK
```
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.

@ -6,7 +6,10 @@ const PATH_README = './pkg-node/README.md';
const pkg_json = fs.readFileSync(PATH);
let pkg = JSON.parse(pkg_json)
pkg.name = "nextgraph";
pkg.version = "0.1.1-alpha.1";
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.readFile(PATH_README, 'utf8', function (err,data) {

Loading…
Cancel
Save