create-mikrojs 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +33 -0
- package/bin/create-mikrojs.js +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +106 -0
- package/dist/index.js.map +1 -0
- package/dist/inspect.d.ts +2 -0
- package/dist/inspect.d.ts.map +1 -0
- package/dist/inspect.js +56 -0
- package/dist/inspect.js.map +1 -0
- package/dist/logo.d.ts +2 -0
- package/dist/logo.d.ts.map +1 -0
- package/dist/logo.js +26 -0
- package/dist/logo.js.map +1 -0
- package/dist/pkg-manager.d.ts +5 -0
- package/dist/pkg-manager.d.ts.map +1 -0
- package/dist/pkg-manager.js +15 -0
- package/dist/pkg-manager.js.map +1 -0
- package/dist/scaffold.d.ts +22 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +133 -0
- package/dist/scaffold.js.map +1 -0
- package/dist/scaffold.test.d.ts +2 -0
- package/dist/scaffold.test.d.ts.map +1 -0
- package/dist/scaffold.test.js +105 -0
- package/dist/scaffold.test.js.map +1 -0
- package/dist/templates/_common/dependencies.d.ts +7 -0
- package/dist/templates/_common/dependencies.d.ts.map +1 -0
- package/dist/templates/_common/dependencies.js +7 -0
- package/dist/templates/_common/dependencies.js.map +1 -0
- package/dist/templates/_common/env-example.d.ts +2 -0
- package/dist/templates/_common/env-example.d.ts.map +1 -0
- package/dist/templates/_common/env-example.js +10 -0
- package/dist/templates/_common/env-example.js.map +1 -0
- package/dist/templates/_common/gitignore.d.ts +2 -0
- package/dist/templates/_common/gitignore.d.ts.map +1 -0
- package/dist/templates/_common/gitignore.js +8 -0
- package/dist/templates/_common/gitignore.js.map +1 -0
- package/dist/templates/_common/package-json.d.ts +22 -0
- package/dist/templates/_common/package-json.d.ts.map +1 -0
- package/dist/templates/_common/package-json.js +22 -0
- package/dist/templates/_common/package-json.js.map +1 -0
- package/dist/templates/_common/readme.d.ts +11 -0
- package/dist/templates/_common/readme.d.ts.map +1 -0
- package/dist/templates/_common/readme.js +45 -0
- package/dist/templates/_common/readme.js.map +1 -0
- package/dist/templates/_common/tsconfig.d.ts +3 -0
- package/dist/templates/_common/tsconfig.d.ts.map +1 -0
- package/dist/templates/_common/tsconfig.js +26 -0
- package/dist/templates/_common/tsconfig.js.map +1 -0
- package/package.json +56 -0
- package/src/templates/_common/dependencies.ts +9 -0
- package/src/templates/_common/env-example.ts +9 -0
- package/src/templates/_common/gitignore.ts +7 -0
- package/src/templates/_common/package-json.ts +35 -0
- package/src/templates/_common/readme.ts +64 -0
- package/src/templates/_common/tsconfig.ts +27 -0
- package/src/templates/blank/app/main.ts +3 -0
- package/src/templates/blinky/app/main.ts +18 -0
- package/src/templates/neopixel/app/color.ts +23 -0
- package/src/templates/neopixel/app/main.ts +24 -0
- package/src/templates/neopixel/app/patterns/breathe.ts +22 -0
- package/src/templates/neopixel/app/patterns/color-wipe.ts +35 -0
- package/src/templates/neopixel/app/patterns/comet.ts +29 -0
- package/src/templates/neopixel/app/patterns/rainbow.ts +24 -0
- package/src/templates/neopixel/app/patterns/sparkle.ts +25 -0
- package/src/templates/pwm-led/app/main.ts +21 -0
- package/src/templates/rtc-counter/app/main.ts +20 -0
- package/src/templates/sntp/app/main.ts +35 -0
- package/src/templates/sntp/env.d.ts +4 -0
- package/src/templates/wifi-access-point/app/main.ts +40 -0
- package/src/templates/wifi-fetch/app/main.ts +35 -0
- package/src/templates/wifi-fetch/env.d.ts +4 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {rtcStorage} from 'mikrojs/kv/rtc'
|
|
2
|
+
import * as s from 'mikrojs/schema'
|
|
3
|
+
import {deepSleep, sleep} from 'mikrojs/sleep'
|
|
4
|
+
|
|
5
|
+
// Read the wake counter from RTC memory (survives deep sleep).
|
|
6
|
+
// optional() because the key may not exist on first boot.
|
|
7
|
+
const count = rtcStorage.createValue('count', {schema: s.optional(s.number())})
|
|
8
|
+
|
|
9
|
+
console.log(`Wake #${count.get() ?? 0}`)
|
|
10
|
+
console.log(`RTC memory: ${rtcStorage.info().used}/${rtcStorage.info().total} bytes used`)
|
|
11
|
+
|
|
12
|
+
// Increment and store back
|
|
13
|
+
count.update((n) => (n ?? 0) + 1).orPanic('failed to store count')
|
|
14
|
+
|
|
15
|
+
console.log('Waiting for a few seconds before going to deep sleep...')
|
|
16
|
+
await sleep(5000)
|
|
17
|
+
|
|
18
|
+
// Sleep for 15 seconds, then wake up again
|
|
19
|
+
console.log('Going to deep sleep for 15s...')
|
|
20
|
+
deepSleep(15000)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import {env} from 'mikrojs/env'
|
|
2
|
+
import {sleep} from 'mikrojs/sleep'
|
|
3
|
+
import {sntp} from 'mikrojs/sntp'
|
|
4
|
+
import {wifi} from 'mikrojs/wifi'
|
|
5
|
+
|
|
6
|
+
await sleep(2000)
|
|
7
|
+
console.log('Current time at startup: %s', new Date())
|
|
8
|
+
|
|
9
|
+
wifi.country = 'NO'
|
|
10
|
+
|
|
11
|
+
const ssid = env.require('WIFI_SSID')
|
|
12
|
+
const passphrase = env.require('WIFI_PASSPHRASE')
|
|
13
|
+
|
|
14
|
+
// Connect to WiFi
|
|
15
|
+
console.log(`Connecting to ${ssid}...`)
|
|
16
|
+
const connectResult = await wifi.connect(ssid, passphrase)
|
|
17
|
+
if (!connectResult.ok) {
|
|
18
|
+
console.error('WiFi connect failed: %s', connectResult.error.name)
|
|
19
|
+
} else {
|
|
20
|
+
console.log('Connected! IP: %s', connectResult.value.ip)
|
|
21
|
+
|
|
22
|
+
// One-shot time sync
|
|
23
|
+
console.log('Syncing time...')
|
|
24
|
+
const syncResult = await sntp.sync({timezone: 'CET-1CEST,M3.5.0,M10.5.0/3'})
|
|
25
|
+
if (!syncResult.ok) {
|
|
26
|
+
console.error('SNTP sync failed: %s', syncResult.error.name)
|
|
27
|
+
} else {
|
|
28
|
+
console.log('Time synced: %s', syncResult.value.time)
|
|
29
|
+
console.log('Current time: %s', new Date())
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Or use background mode to keep re-syncing periodically:
|
|
34
|
+
// const {time, stop} = await sntp.sync({background: true})
|
|
35
|
+
// ... later: stop()
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {sleep} from 'mikrojs/sleep'
|
|
2
|
+
import {wifi} from 'mikrojs/wifi'
|
|
3
|
+
|
|
4
|
+
// Country must be set before using WiFi
|
|
5
|
+
wifi.country = 'NO'
|
|
6
|
+
|
|
7
|
+
// Start the access point
|
|
8
|
+
wifi.ap
|
|
9
|
+
.start({
|
|
10
|
+
ssid: 'MikroJS-AP',
|
|
11
|
+
passphrase: 'hello1234',
|
|
12
|
+
channel: 6,
|
|
13
|
+
maxConnections: 4,
|
|
14
|
+
})
|
|
15
|
+
.orPanic('Failed to start access point')
|
|
16
|
+
|
|
17
|
+
console.log('Access point started')
|
|
18
|
+
console.log('SSID: MikroJS-AP')
|
|
19
|
+
console.log('IP: %s', wifi.ap.ip)
|
|
20
|
+
|
|
21
|
+
// Log when stations connect/disconnect
|
|
22
|
+
wifi.ap.on('station-connect', (info) => {
|
|
23
|
+
console.log('Station connected: %s', info.mac)
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
wifi.ap.on('station-disconnect', (info) => {
|
|
27
|
+
console.log('Station disconnected: %s', info.mac)
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
// Periodically print connected stations
|
|
31
|
+
while (true) {
|
|
32
|
+
await sleep(10000)
|
|
33
|
+
const stations = wifi.ap.stations
|
|
34
|
+
if (stations.length > 0) {
|
|
35
|
+
console.log(`Connected stations (${stations.length}):`)
|
|
36
|
+
for (const sta of stations) {
|
|
37
|
+
console.log(` ${sta.mac} (RSSI: ${sta.rssi})`)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import {env} from 'mikrojs/env'
|
|
2
|
+
import {request} from 'mikrojs/http/request'
|
|
3
|
+
import {memoryUsage} from 'mikrojs/sys'
|
|
4
|
+
import {wifi} from 'mikrojs/wifi'
|
|
5
|
+
|
|
6
|
+
// Country must be set before using WiFi
|
|
7
|
+
wifi.country = 'NO'
|
|
8
|
+
|
|
9
|
+
const ssid = env.require('WIFI_SSID')
|
|
10
|
+
const passphrase = env.require('WIFI_PASSPHRASE')
|
|
11
|
+
|
|
12
|
+
// Connect to WiFi
|
|
13
|
+
console.log(`Connecting to ${ssid}...`)
|
|
14
|
+
const connectResult = await wifi.connect(ssid, passphrase)
|
|
15
|
+
if (!connectResult.ok) {
|
|
16
|
+
console.error('WiFi connect failed: %s', connectResult.error.name)
|
|
17
|
+
} else {
|
|
18
|
+
console.log('Connected! IP: %s', connectResult.value.ip)
|
|
19
|
+
|
|
20
|
+
// Request JSON from an API
|
|
21
|
+
const result = await request('https://jsonplaceholder.typicode.com/posts/1')
|
|
22
|
+
if (result.ok) {
|
|
23
|
+
if (!result.value.ok) {
|
|
24
|
+
console.error(`HTTP error: ${result.value.status}`)
|
|
25
|
+
} else {
|
|
26
|
+
const data = await result.value.json()
|
|
27
|
+
console.log('Fetched post: %o', data)
|
|
28
|
+
}
|
|
29
|
+
} else {
|
|
30
|
+
console.error('Request failed: %s', result.error.name)
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const mem = memoryUsage()
|
|
35
|
+
console.log('free heap: %dKB', (mem.heapTotal - mem.heapUsed) / 1000)
|