# HG changeset patch # User cin # Date 2022-08-24 21:24:57 # Node ID 8b413dc7fc42701c2e338aa96e9cdee7b05d6501 # Parent a316cfea8bb1aeaad2f7749a55300db3c84e5203 Added playground project diff --git a/djx/build.gradle b/djx/build.gradle --- a/djx/build.gradle +++ b/djx/build.gradle @@ -1,8 +1,15 @@ plugins { - id "org.implab.gradle-typescript" version "1.3.3" + id "org.implab.gradle-typescript" version "1.3.4" id "ivy-publish" } +configurations { + "default" { + canBeConsumed = true + canBeResolved = false + } +} + typescript { compilerOptions { lib = ["es5", "dom", "scripthost", "es2015.promise", "es2015.symbol", "es2015.iterable"] @@ -75,4 +82,10 @@ task printVersion { println "module: $typescript.compilerOptions.module"; println "symbols: $symbols"; } +} + +artifacts { + "default" (npm.packageDir) { + builtBy npmAssemblePackage + } } \ No newline at end of file diff --git a/djx/package-lock.json b/djx/package-lock.json --- a/djx/package-lock.json +++ b/djx/package-lock.json @@ -18,7 +18,7 @@ "eslint": "6.8.0", "requirejs": "2.3.6", "tslint": "^6.1.3", - "typescript": "4.2.4", + "typescript": "4.7.4", "yaml": "~1.7.2" }, "peerDependencies": { @@ -1368,9 +1368,9 @@ } }, "node_modules/typescript": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", - "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -2547,9 +2547,9 @@ "dev": true }, "typescript": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", - "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true }, "uri-js": { diff --git a/djx/package.json b/djx/package.json --- a/djx/package.json +++ b/djx/package.json @@ -28,7 +28,7 @@ "eslint": "6.8.0", "requirejs": "2.3.6", "tslint": "^6.1.3", - "typescript": "4.2.4", + "typescript": "4.7.4", "yaml": "~1.7.2" } } diff --git a/djx/src/main/ts/observable.ts b/djx/src/main/ts/observable.ts --- a/djx/src/main/ts/observable.ts +++ b/djx/src/main/ts/observable.ts @@ -11,7 +11,7 @@ export type Consumer = Partial = (sink: Sink) => (void | (() => void)); export interface Observable { - on(sink: Partial>): IDestroyable; + on(consumer: Partial>): IDestroyable; } const noop = () => {}; @@ -27,7 +27,7 @@ const sink = (consumer: Consumer) }; } -export const observe = (producer: Producer) => ({ +export const observe = (producer: Producer) : Observable => ({ on: (consumer: Consumer) => ({ destroy: producer(sink(consumer)) ?? noop }) diff --git a/djx/src/main/ts/tsx/WatchRendition.ts b/djx/src/main/ts/tsx/WatchRendition.ts --- a/djx/src/main/ts/tsx/WatchRendition.ts +++ b/djx/src/main/ts/tsx/WatchRendition.ts @@ -8,6 +8,8 @@ import { Observable } from "../observabl const trace = TraceSource.get(mid); +const noop = () => {}; + export class WatchRendition extends RenditionBase { private readonly _factory: (arg: T) => any; @@ -30,7 +32,7 @@ export class WatchRendition extends R protected _create(attrs: object, children: any[], scope: IScope) { scope.own(this._scope); - scope.own(this._subject.on({ next: this._onValue })) + scope.own(this._subject.on({ next: this._onValue })); } private _onValue = (value: T) => void this._render(value).catch( e => trace.error(e)); diff --git a/djx/src/main/ts/tsx/WidgetRendition.ts b/djx/src/main/ts/tsx/WidgetRendition.ts --- a/djx/src/main/ts/tsx/WidgetRendition.ts +++ b/djx/src/main/ts/tsx/WidgetRendition.ts @@ -1,10 +1,10 @@ import { argumentNotNull } from "@implab/core-amd/safe"; -import { getItemDom, RenditionBase } from "./RenditionBase"; +import { RenditionBase } from "./RenditionBase"; import { DojoNodePosition, isElementNode, isInPage, isWidget, placeAt } from "./traits"; import registry = require("dijit/registry"); import ContentPane = require("dijit/layout/ContentPane"); import { IScope } from "./Scope"; -import { getScope } from "./Renderer"; +import { getItemDom, getScope } from "./Renderer"; // tslint:disable-next-line: class-name export interface _Widget { diff --git a/djx/src/main/ts/tsx/traits.ts b/djx/src/main/ts/tsx/traits.ts --- a/djx/src/main/ts/tsx/traits.ts +++ b/djx/src/main/ts/tsx/traits.ts @@ -4,7 +4,10 @@ import _WidgetBase = require("dijit/_Wid import registry = require("dijit/registry"); import { IScope } from "./Scope"; -type _WidgetBaseConstructor = typeof _WidgetBase; +interface _WidgetBaseConstructor { + new (params?: Partial<_WidgetBase & A>, srcNodeRef?: dojo.NodeOrString): _WidgetBase & dojo._base.DeclareCreatedObject; + prototype: _WidgetBase; +} export type DojoNodePosition = "first" | "after" | "before" | "last" | "replace" | "only" | number; diff --git a/djx/src/main/typings/css.d.ts b/djx/src/main/typings/css-plugin.d.ts rename from djx/src/main/typings/css.d.ts rename to djx/src/main/typings/css-plugin.d.ts diff --git a/djx/src/main/typings/index.d.ts b/djx/src/main/typings/index.d.ts --- a/djx/src/main/typings/index.d.ts +++ b/djx/src/main/typings/index.d.ts @@ -1,4 +1,4 @@ -/// +/// declare namespace JSX { diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 5c2d1cf016b3885f6930543d57b744ea8c220a1a..f3d88b1c2faf2fc91d853cd5d4242b5547257070 GIT binary patch literal 58695 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 iFMgMEN?b63o6}tDB3q$_CYr2 + exec { + commandLine "npm", "install", f, "--save-dev" + } + } + } +} + + +task processResourcesBundle(type: Copy) { + from "src/bundle" + into layout.buildDirectory.dir("bundle") +} + +task copyModules(type: Copy) { + dependsOn npmInstall + into layout.buildDirectory.dir("bundle/js"); + + def pack = { String jsmod -> + into(jsmod) { + from npm.module(jsmod) + } + } + + + pack("@implab/djx") + pack("dojo") +} + +task copyApp(type: Copy) { + dependsOn assemble + from typescript.assemblyDir + into layout.buildDirectory.dir("bundle/js/app") +} + +task bundle { + dependsOn copyModules, processResourcesBundle, copyApp +} \ No newline at end of file diff --git a/playground/package-lock.json b/playground/package-lock.json new file mode 100644 --- /dev/null +++ b/playground/package-lock.json @@ -0,0 +1,63 @@ +{ + "name": "@implab/djx-playground", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@implab/djx-playground", + "dependencies": { + "dojo": "1.17.3", + "requirejs": "2.3.6" + }, + "devDependencies": { + "@implab/djx": "file:../djx/build/npm/package" + } + }, + "../djx/build/npm/package": { + "name": "@implab/djx", + "dev": true, + "license": "BSD-2-Clause", + "peerDependencies": { + "@implab/core-amd": "^1.4.0", + "dojo": "^1.10.0" + } + }, + "node_modules/@implab/djx": { + "resolved": "../djx/build/npm/package", + "link": true + }, + "node_modules/dojo": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/dojo/-/dojo-1.17.3.tgz", + "integrity": "sha512-iWDx1oSfCEDnIrs8cMW7Zh9Fbjgxu8iRagFz+Qi2eya3MXIAxFXKhv2A7dpi+bfpMpFozLwcsLV8URLw6BsHsA==" + }, + "node_modules/requirejs": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", + "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", + "bin": { + "r_js": "bin/r.js", + "r.js": "bin/r.js" + }, + "engines": { + "node": ">=0.4.0" + } + } + }, + "dependencies": { + "@implab/djx": { + "version": "file:../djx/build/npm/package", + "requires": {} + }, + "dojo": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/dojo/-/dojo-1.17.3.tgz", + "integrity": "sha512-iWDx1oSfCEDnIrs8cMW7Zh9Fbjgxu8iRagFz+Qi2eya3MXIAxFXKhv2A7dpi+bfpMpFozLwcsLV8URLw6BsHsA==" + }, + "requirejs": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", + "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==" + } + } +} diff --git a/playground/package.json b/playground/package.json new file mode 100644 --- /dev/null +++ b/playground/package.json @@ -0,0 +1,11 @@ +{ + "name": "@implab/djx-playground", + "private": true, + "dependencies": { + "dojo": "1.17.3", + "requirejs": "2.3.6" + }, + "devDependencies": { + "@implab/djx": "file:../djx/build/npm/package" + } +} diff --git a/playground/src/bundle/index.html b/playground/src/bundle/index.html new file mode 100644 --- /dev/null +++ b/playground/src/bundle/index.html @@ -0,0 +1,14 @@ + + + + + + Djx playground + + + + + + + + \ No newline at end of file diff --git a/playground/src/main/ts/main.ts b/playground/src/main/ts/main.ts new file mode 100644 --- /dev/null +++ b/playground/src/main/ts/main.ts @@ -0,0 +1,1 @@ +console.log("hi!"); \ No newline at end of file diff --git a/settings.gradle b/settings.gradle --- a/settings.gradle +++ b/settings.gradle @@ -14,4 +14,5 @@ rootProject.name = 'implabjs-djx' -include 'djx' \ No newline at end of file +include 'djx' +include 'playground' \ No newline at end of file