Initial JS CFW SDK changes

TODO: Check documentation and other package options

TODO: Transform CFW SDK name to OFW SDK name in build step so all firmwares understand it
This commit is contained in:
Willy-JL
2024-11-01 13:57:28 +00:00
parent 2dd9b848c2
commit bbe69e77c3
10 changed files with 18 additions and 16 deletions

View File

@@ -10,6 +10,6 @@ tests.assert_eq("firmwareTooNew", sdkCompatibilityStatus(-100500, 0));
tests.assert_eq(true, doesSdkSupport(["baseline"]));
tests.assert_eq(false, doesSdkSupport(["abobus", "other-nonexistent-feature"]));
tests.assert_eq("flipperdevices", flipper.firmwareVendor);
tests.assert_eq("momentum", flipper.firmwareVendor);
tests.assert_eq(0, flipper.jsSdkVersion[0]);
tests.assert_eq(1, flipper.jsSdkVersion[1]);

View File

@@ -5,7 +5,7 @@ application for Flipper Zero.
## Getting started
Create your application using the interactive wizard:
```shell
npx @flipperdevices/create-fz-app@latest
npx @next-flip/create-fz-app-mntm@latest
```
Then, enter the directory with your application and launch it:

View File

@@ -1,5 +1,5 @@
{
"name": "@flipperdevices/create-fz-app",
"name": "@next-flip/create-fz-app-mntm",
"version": "0.1.0",
"description": "Template package for JS apps Flipper Zero",
"bin": "index.js",
@@ -12,7 +12,7 @@
"license": "GPL-3.0-only",
"repository": {
"type": "git",
"url": "git+https://github.com/flipperdevices/flipperzero-firmware.git",
"url": "git+https://github.com/Next-Flip/Momentum-Firmware.git",
"directory": "applications/system/js_app/packages/create-fz-app"
},
"dependencies": {

View File

@@ -1,9 +1,9 @@
// import modules
// caution: `eventLoop` HAS to be imported before `gui`, and `gui` HAS to be
// imported before any `gui` submodules.
import * as eventLoop from "@flipperdevices/fz-sdk/event_loop";
import * as gui from "@flipperdevices/fz-sdk/gui";
import * as dialog from "@flipperdevices/fz-sdk/gui/dialog";
import * as eventLoop from "@next-flip/fz-sdk-mntm/event_loop";
import * as gui from "@next-flip/fz-sdk-mntm/gui";
import * as dialog from "@next-flip/fz-sdk-mntm/gui/dialog";
// a common pattern is to declare all the views that your app uses on one object
const views = {

View File

@@ -2,11 +2,11 @@
"name": "<app_name>",
"version": "1.0.0",
"scripts": {
"build": "tsc && node node_modules/@flipperdevices/fz-sdk/sdk.js build",
"start": "npm run build && node node_modules/@flipperdevices/fz-sdk/sdk.js upload"
"build": "tsc && node node_modules/@next-flip/fz-sdk-mntm/sdk.js build",
"start": "npm run build && node node_modules/@next-flip/fz-sdk-mntm/sdk.js upload"
},
"devDependencies": {
"@flipperdevices/fz-sdk": "^0.1",
"@next-flip/fz-sdk-mntm": "^0.1",
"typescript": "^5.6.3"
}
}

View File

@@ -7,7 +7,7 @@
"target": "ES2015",
},
"files": [
"./node_modules/@flipperdevices/fz-sdk/global.d.ts",
"./node_modules/@next-flip/fz-sdk-mntm/global.d.ts",
],
"include": [
"./**/*.ts",

View File

@@ -5,7 +5,7 @@ applications in JavaScript.
## Getting started
Create your application using the interactive wizard:
```shell
npx @flipperdevices/create-fz-app@latest
npx @next-flip/create-fz-app-mntm@latest
```
Then, enter the directory with your application and launch it:

View File

@@ -26,7 +26,7 @@ export declare function getBatteryCharge(): number;
* @warning Do **NOT** use this to check the presence or absence of features. If
* you do, I'm gonna be sad :( Instead, refer to `checkSdkFeatures` and
* other similar mechanisms.
* @note Original firmware reports `"flipperdevices"`.
* @note Momentum firmware reports `"momentum"`.
* @version Added in JS SDK 0.1
*/
export declare const firmwareVendor: string;

View File

@@ -1,5 +1,5 @@
{
"name": "@flipperdevices/fz-sdk",
"name": "@next-flip/fz-sdk-mntm",
"version": "0.1.1",
"description": "Type declarations and documentation for native JS modules available on Flipper Zero",
"keywords": [
@@ -11,7 +11,7 @@
"license": "GPL-3.0-only",
"repository": {
"type": "git",
"url": "git+https://github.com/flipperdevices/flipperzero-firmware.git",
"url": "git+https://github.com/Next-Flip/Momentum-Firmware.git",
"directory": "applications/system/js_app/packages/fz-sdk"
},
"type": "module",

View File

@@ -19,7 +19,7 @@ async function build(config) {
bundle: true,
minify: config.minify,
external: [
"@flipperdevices/fz-sdk/*"
"@next-flip/fz-sdk-mntm/*"
],
supported: {
"array-spread": false,
@@ -74,6 +74,8 @@ async function build(config) {
let outContents = fs.readFileSync(config.output, "utf8");
outContents = "let exports = {};\n" + outContents;
// TODO: Transform CFW SDK name to OFW SDK name so all firmwares understand it
if (config.enforceSdkVersion) {
const version = json5.parse(fs.readFileSync(path.join(__dirname, "package.json"), "utf8")).version;
let [major, minor, _] = version.split(".");