git » sdk » compiled » tree

[compiled] / Makefile

HAXE_PATH=$$HOME/Software/haxe-4.3.1/hxnodejs/12,1,0/src

.PHONY: all test cpp/output.dso npm/snikket-browser.js npm/snikket.js

all: npm libsnikket.so

test:
	haxe test.hxml

npm/snikket-browser.js:
	haxe browserjs.hxml
	sed -i 's/import { snikket }/import { snikket as enums }/' npm/snikket-browser.d.ts
	sed -i 's/snikket\.UiState/enums.UiState/g' npm/snikket-browser.d.ts
	sed -i 's/snikket\.MessageStatus/enums.MessageStatus/g' npm/snikket-browser.d.ts
	sed -i 's/snikket\.MessageDirection/enums.MessageDirection/g' npm/snikket-browser.d.ts
	sed -i 's/snikket\.MessageType/enums.MessageType/g' npm/snikket-browser.d.ts
	sed -i 's/snikket\.UserState/enums.UserState/g' npm/snikket-browser.d.ts
	sed -i 's/snikket\.ChatMessageEvent/enums.ChatMessageEvent/g' npm/snikket-browser.d.ts
	sed -i 's/snikket\.ReactionUpdateKind/enums.ReactionUpdateKind/g' npm/snikket-browser.d.ts
	sed -i 's/_Push.Push_Fields_/Push/g' npm/snikket-browser.d.ts
	sed -i '1ivar exports = {};' npm/snikket-browser.js
	echo "export const snikket = exports.snikket;" >> npm/snikket-browser.js

npm/snikket.js:
	haxe nodejs.hxml
	sed -i 's/import { snikket }/import { snikket as enums }/' npm/snikket.d.ts
	sed -i 's/snikket\.UiState/enums.UiState/g' npm/snikket.d.ts
	sed -i 's/snikket\.MessageStatus/enums.MessageStatus/g' npm/snikket.d.ts
	sed -i 's/snikket\.MessageDirection/enums.MessageDirection/g' npm/snikket.d.ts
	sed -i 's/snikket\.MessageType/enums.MessageType/g' npm/snikket.d.ts
	sed -i 's/snikket\.UserState/enums.UserState/g' npm/snikket.d.ts
	sed -i 's/snikket\.ChatMessageEvent/enums.ChatMessageEvent/g' npm/snikket.d.ts
	sed -i 's/snikket\.ReactionUpdateKind/enums.ReactionUpdateKind/g' npm/snikket.d.ts
	sed -i 's/_Push.Push_Fields_/Push/g' npm/snikket.d.ts
	sed -i '1iimport { createRequire } from "module";' npm/snikket.js
	sed -i '1iglobal.require = createRequire(import.meta.url);' npm/snikket.js
	sed -i '1ivar exports = {};' npm/snikket.js
	echo "export const snikket = exports.snikket;" >> npm/snikket.js

npm: npm/snikket-browser.js npm/snikket.js snikket/persistence/IDB.js snikket/persistence/MediaStoreCache.js snikket/persistence/sqlite-worker1.mjs
	cp snikket/persistence/IDB.js npm
	cp snikket/persistence/MediaStoreCache.js npm
	cp snikket/persistence/sqlite-worker1.mjs npm
	cd npm && npx tsc --esModuleInterop --lib esnext,dom --target esnext --preserveConstEnums -d index.ts
	sed -i '1iimport { snikket as enums } from "./snikket-enums.js";' npm/index.js

cpp/output.dso:
	haxe cpp.hxml

libsnikket.so: cpp/output.dso
	cp cpp/output.dso libsnikket.so