diff --git a/apps/automated/src/xml-parser-tests/xml-with-namespaces.xml b/apps/automated/src/assets/xml-with-namespaces.xml similarity index 100% rename from apps/automated/src/xml-parser-tests/xml-with-namespaces.xml rename to apps/automated/src/assets/xml-with-namespaces.xml diff --git a/apps/automated/src/xml-parser-tests/xml.expected b/apps/automated/src/assets/xml.expected similarity index 96% rename from apps/automated/src/xml-parser-tests/xml.expected rename to apps/automated/src/assets/xml.expected index 5cdb47fc4..45a144197 100644 --- a/apps/automated/src/xml-parser-tests/xml.expected +++ b/apps/automated/src/assets/xml.expected @@ -1 +1 @@ -{"eventType":"StartElement","position":{"line":2,"column":1},"elementName":"DocumentElement","attributes":{"param":"value"}}{"eventType":"StartElement","position":{"line":3,"column":3},"elementName":"First.Element","attributes":{"some.attr":"some.value"}}{"eventType":"Text","position":{"line":3,"column":41},"data":"\n ¶ Some Text ®\n "}{"eventType":"EndElement","position":{"line":5,"column":3},"elementName":"First.Element"}{"eventType":"StartElement","position":{"line":7,"column":3},"elementName":"SecondElement","attributes":{"param2":"something"}}{"eventType":"Text","position":{"line":7,"column":37},"data":"\n Pre-Text "}{"eventType":"StartElement","position":{"line":8,"column":14},"elementName":"Inline"}{"eventType":"Text","position":{"line":8,"column":22},"data":"Inlined text"}{"eventType":"EndElement","position":{"line":8,"column":34},"elementName":"Inline"}{"eventType":"Text","position":{"line":8,"column":43},"data":" Post-text.\n "}{"eventType":"EndElement","position":{"line":9,"column":3},"elementName":"SecondElement"}{"eventType":"StartElement","position":{"line":10,"column":3},"elementName":"entities"}{"eventType":"Text","position":{"line":10,"column":13},"data":"Xml tags begin with \"<\" and end with \">\" Ampersand is & and apostrophe is '"}{"eventType":"EndElement","position":{"line":10,"column":123},"elementName":"entities"}{"eventType":"StartElement","position":{"line":11,"column":3},"elementName":"script"}{"eventType":"CDATA","position":{"line":12,"column":5},"data":"\nfunction sum(a,b)\n{\n return a+b;\n}\n"}{"eventType":"EndElement","position":{"line":18,"column":3},"elementName":"script"}{"eventType":"Comment","position":{"line":19,"column":3},"data":"\n Hello,\n I am a multi-line XML comment.\n"}{"eventType":"EndElement","position":{"line":23,"column":1},"elementName":"DocumentElement"} +{"eventType":"StartElement","position":{"line":2,"column":1},"elementName":"DocumentElement","attributes":{"param":"value"}}{"eventType":"StartElement","position":{"line":3,"column":3},"elementName":"First.Element","attributes":{"some.attr":"some.value"}}{"eventType":"Text","position":{"line":3,"column":41},"data":"\n ¶ Some Text ®\n "}{"eventType":"EndElement","position":{"line":5,"column":3},"elementName":"First.Element"}{"eventType":"StartElement","position":{"line":7,"column":3},"elementName":"SecondElement","attributes":{"param2":"something"}}{"eventType":"Text","position":{"line":7,"column":37},"data":"\n Pre-Text "}{"eventType":"StartElement","position":{"line":8,"column":14},"elementName":"Inline"}{"eventType":"Text","position":{"line":8,"column":22},"data":"Inlined text"}{"eventType":"EndElement","position":{"line":8,"column":34},"elementName":"Inline"}{"eventType":"Text","position":{"line":8,"column":43},"data":" Post-text.\n "}{"eventType":"EndElement","position":{"line":9,"column":3},"elementName":"SecondElement"}{"eventType":"StartElement","position":{"line":10,"column":3},"elementName":"entities"}{"eventType":"Text","position":{"line":10,"column":13},"data":"Xml tags begin with \"<\" and end with \">\" Ampersand is & and apostrophe is '"}{"eventType":"EndElement","position":{"line":10,"column":123},"elementName":"entities"}{"eventType":"StartElement","position":{"line":11,"column":3},"elementName":"script"}{"eventType":"CDATA","position":{"line":12,"column":5},"data":"\nfunction sum(a,b)\n{\n return a+b;\n}\n"}{"eventType":"EndElement","position":{"line":18,"column":3},"elementName":"script"}{"eventType":"Comment","position":{"line":19,"column":3},"data":"\n Hello,\n I am a multi-line XML comment.\n"}{"eventType":"EndElement","position":{"line":23,"column":1},"elementName":"DocumentElement"} \ No newline at end of file diff --git a/apps/automated/src/xml-parser-tests/xml.xml b/apps/automated/src/assets/xml.xml similarity index 96% rename from apps/automated/src/xml-parser-tests/xml.xml rename to apps/automated/src/assets/xml.xml index 93a55b018..3b9a16b9a 100644 --- a/apps/automated/src/xml-parser-tests/xml.xml +++ b/apps/automated/src/assets/xml.xml @@ -20,4 +20,4 @@ function sum(a,b) Hello, I am a multi-line XML comment. --> - + \ No newline at end of file diff --git a/apps/automated/src/file-system/file-system-tests.ts b/apps/automated/src/file-system/file-system-tests.ts index aed9e5da4..b78254ae0 100644 --- a/apps/automated/src/file-system/file-system-tests.ts +++ b/apps/automated/src/file-system/file-system-tests.ts @@ -186,15 +186,15 @@ export var testFileRead = function () { // << file-system-example-text }; -export var testFileReadWriteBinary = function () { +export function testFileReadWriteBinary() { // >> file-system-read-binary - var fileName = 'logo.png'; - var error; + const fileName = 'logo.png'; + let error; + const appFolder = fs.knownFolders.currentApp().path; + const sourceFile = fs.File.fromPath(appFolder + '/assets/' + fileName); + const destinationFile = fs.knownFolders.documents().getFile(fileName); - var sourceFile = fs.File.fromPath(__dirname + '/assets/' + fileName); - var destinationFile = fs.knownFolders.documents().getFile(fileName); - - var source = sourceFile.readSync((e) => { + const source = sourceFile.readSync((e) => { error = e; }); @@ -203,7 +203,7 @@ export var testFileReadWriteBinary = function () { }); // >> (hide) - var destination = destinationFile.readSync((e) => { + const destination = destinationFile.readSync((e) => { error = e; }); TKUnit.assertNull(error); @@ -216,14 +216,14 @@ export var testFileReadWriteBinary = function () { destinationFile.removeSync(); // << (hide) // << file-system-read-binary -}; +} -export var testFileReadWriteBinaryAsync = function () { +export function testFileReadWriteBinaryAsync() { // >> file-system-read-binary-async - var fileName = 'logo.png'; - - var sourceFile = fs.File.fromPath(__dirname + '/assets/' + fileName); - var destinationFile = fs.knownFolders.documents().getFile(fileName); + const fileName = 'logo.png'; + const appFolder = fs.knownFolders.currentApp().path; + const sourceFile = fs.File.fromPath(appFolder + '/assets/' + fileName); + const destinationFile = fs.knownFolders.documents().getFile(fileName); // Read the file sourceFile.read().then( @@ -263,7 +263,7 @@ export var testFileReadWriteBinaryAsync = function () { }, ); // << file-system-read-binary-async -}; +} export var testGetKnownFolders = function () { // >> file-system-known-folders diff --git a/apps/automated/src/ui/activity-indicator/activity-indicator-tests.ts b/apps/automated/src/ui/activity-indicator/activity-indicator-tests.ts index 2b9c32a3a..b06a470ec 100644 --- a/apps/automated/src/ui/activity-indicator/activity-indicator-tests.ts +++ b/apps/automated/src/ui/activity-indicator/activity-indicator-tests.ts @@ -49,8 +49,8 @@ export function test_set_TNS_value_updates_native_value() { } // Uncomment this when find way to check android Drawable color set by setColorFilter() method. -if (__APPLE__) { - exports.test_set_color = function () { +export function test_set_color() { + if (__APPLE__) { var ai = new activityIndicatorModule.ActivityIndicator(); ai.color = new color.Color('red'); @@ -59,7 +59,7 @@ if (__APPLE__) { } helper.buildUIAndRunTest(ai, testAction); - }; + } } // This method is only for the code snippet diff --git a/apps/automated/src/ui/list-view/list-view-tests.ts b/apps/automated/src/ui/list-view/list-view-tests.ts index f7e8d317b..dfe5718a3 100644 --- a/apps/automated/src/ui/list-view/list-view-tests.ts +++ b/apps/automated/src/ui/list-view/list-view-tests.ts @@ -5,13 +5,12 @@ import { isAndroid, Page, View, KeyedTemplate, Utils, Observable, EventData, Obs import { MyButton, MyStackLayout } from '../layouts/layout-helper'; // >> article-item-tap -function listViewItemTap(args) { +export function listViewItemTap(args) { var itemIndex = args.index; // >> (hide) console.log(itemIndex); // << (hide) } -exports.listViewItemTap = listViewItemTap; // << article-item-tap // >> article-load-items @@ -20,10 +19,9 @@ function listViewLoadMoreItems(args) { } // << article-load-items listViewLoadMoreItems('test'); -// function loaded(args) { +// export function loaded(args) { // args.object.bindingContext = { items: [1,2,3,4,5] }; // } -// exports.loaded = loaded; var FEW_ITEMS = [0, 1, 2]; var MANY_ITEMS = new Array(100); diff --git a/apps/automated/src/ui/page/page-tests-common.ts b/apps/automated/src/ui/page/page-tests-common.ts index 9c3824b90..89c03f40f 100644 --- a/apps/automated/src/ui/page/page-tests-common.ts +++ b/apps/automated/src/ui/page/page-tests-common.ts @@ -1,11 +1,10 @@ import { Page, ShownModallyData, NavigatedData, View, PercentLength, unsetValue, EventData, Frame, NavigationEntry, TabView, TabViewItem, Button, Color, Label, StackLayout, Application, Utils, Builder } from '@nativescript/core'; // >> article-set-bindingcontext -function pageLoaded(args) { +export function pageLoaded(args) { const page = args.object; page.bindingContext = { name: 'Some name' }; } -exports.pageLoaded = pageLoaded; // << article-set-bindingcontext import * as TKUnit from '../../tk-unit'; import * as helper from '../../ui-helper'; diff --git a/apps/automated/src/ui/placeholder/placeholder-tests.ts b/apps/automated/src/ui/placeholder/placeholder-tests.ts index 5f5cbc4e3..efa146258 100644 --- a/apps/automated/src/ui/placeholder/placeholder-tests.ts +++ b/apps/automated/src/ui/placeholder/placeholder-tests.ts @@ -2,7 +2,7 @@ import * as TKUnit from '../../tk-unit'; import { isIOS, isAndroid, Utils, Placeholder, CreateViewEventData, View } from '@nativescript/core'; import * as helper from '../../ui-helper'; -function creatingView(args) { +export function creatingView(args) { let nativeView; if (__APPLE__) { nativeView = UITextView.new(); @@ -14,8 +14,6 @@ function creatingView(args) { args.view = nativeView; } - -exports.creatingView = creatingView; // << article-creating-view export function test_placeholder_creatingView() { diff --git a/apps/automated/src/ui/progress/progress-tests.ts b/apps/automated/src/ui/progress/progress-tests.ts index eefaf6af3..78a3aadfb 100644 --- a/apps/automated/src/ui/progress/progress-tests.ts +++ b/apps/automated/src/ui/progress/progress-tests.ts @@ -57,8 +57,8 @@ export function test_set_value_greater_than_max_should_set_value_to_max() { } // Uncomment this when find way to check android Drawable color set by setColorFilter() method. -if (__APPLE__) { - exports.test_set_color = function () { +export function test_set_color() { + if (__APPLE__) { var progress = new progressModule.Progress(); progress.color = new color.Color('red'); @@ -67,9 +67,11 @@ if (__APPLE__) { } helper.buildUIAndRunTest(progress, testAction); - }; + } +} - exports.test_set_backgroundColor = function () { +export function test_set_backgroundColor() { + if (__APPLE__) { var progress = new progressModule.Progress(); progress.backgroundColor = new color.Color('red'); @@ -78,7 +80,7 @@ if (__APPLE__) { } helper.buildUIAndRunTest(progress, testAction); - }; + } } export function test_set_maxValue_should_adjust_value() { diff --git a/apps/automated/src/ui/slider/slider-tests.ts b/apps/automated/src/ui/slider/slider-tests.ts index c9c10eb06..0fded4241 100644 --- a/apps/automated/src/ui/slider/slider-tests.ts +++ b/apps/automated/src/ui/slider/slider-tests.ts @@ -9,13 +9,12 @@ import { Slider } from '@nativescript/core/ui/slider'; // ### Binding the Progress and Slider value properties to a observable view-model property. // >> article-binding-slider-properties -// function pageLoaded(args) { +// export function pageLoaded(args) { // var page = args.object; // var obj = new Observable(); // obj.set("someProperty", 42); // page.bindingContext = obj; // } -// exports.pageLoaded = pageLoaded; // << article-binding-slider-properties interface SliderValues { @@ -96,8 +95,8 @@ export function test_set_native_value_triggers_propertyChanged() { } // Uncomment this when find way to check android Drawable color set by setColorFilter() method. -if (__APPLE__) { - exports.test_set_color = function () { +export function test_set_color() { + if (__APPLE__) { const slider = new Slider(); slider.color = new Color('red'); @@ -106,9 +105,11 @@ if (__APPLE__) { } helper.buildUIAndRunTest(slider, testAction); - }; + } +} - exports.test_set_backgroundColor = function () { +export function test_set_backgroundColor() { + if (__APPLE__) { const slider = new Slider(); slider.backgroundColor = new Color('red'); @@ -117,7 +118,7 @@ if (__APPLE__) { } helper.buildUIAndRunTest(slider, testAction); - }; + } } export function test_default_TNS_values() { diff --git a/apps/automated/src/ui/switch/switch-tests.ts b/apps/automated/src/ui/switch/switch-tests.ts index b4095efb4..f22e30c69 100644 --- a/apps/automated/src/ui/switch/switch-tests.ts +++ b/apps/automated/src/ui/switch/switch-tests.ts @@ -5,13 +5,12 @@ import { Switch, Color, Observable, PropertyChangeData, EventData, View, Binding // ### Binding the Switch checked property and Button isEanbled property to a observable view-model property. // >> article-binding-switch-property -function pageLoaded(args) { +export function pageLoaded(args) { var page = args.object; var obj = new Observable(); obj.set('someProperty', false); page.bindingContext = obj; } -exports.pageLoaded = pageLoaded; // << article-binding-switch-property export function test_recycling() { @@ -36,8 +35,9 @@ export function test_default_native_values() { } // Uncomment this when find way to check android Drawable color set by setColorFilter() method. -if (__APPLE__) { - exports.test_set_color = function () { + +export function test_set_color() { + if (__APPLE__) { var mySwitch = new Switch(); mySwitch.color = new Color('red'); @@ -46,9 +46,11 @@ if (__APPLE__) { } helper.buildUIAndRunTest(mySwitch, testAction); - }; + } +} - exports.test_set_backgroundColor = function () { +export function test_set_backgroundColor() { + if (__APPLE__) { var mySwitch = new Switch(); mySwitch.backgroundColor = new Color('red'); @@ -57,7 +59,7 @@ if (__APPLE__) { } helper.buildUIAndRunTest(mySwitch, testAction); - }; + } } export function test_set_TNS_checked_updates_native_checked() { diff --git a/apps/automated/src/ui/text-field/text-field-tests.ts b/apps/automated/src/ui/text-field/text-field-tests.ts index bdbf2c073..dd7193a83 100644 --- a/apps/automated/src/ui/text-field/text-field-tests.ts +++ b/apps/automated/src/ui/text-field/text-field-tests.ts @@ -5,13 +5,12 @@ import { getNativeText, getNativeHint, typeTextNatively, typeTextNativelyWithRet // ### Binding two TextFields text property to observable view-model property. // >> binding-text-property-textfield -function pageLoaded(args) { +export function pageLoaded(args) { var page = args.object; var obj = new Observable(); obj.set('someProperty', 'Please change this text!'); page.bindingContext = obj; } -exports.pageLoaded = pageLoaded; // << binding-text-property-textfield export function test_recycling() { @@ -177,14 +176,14 @@ export var testBindTextDirectlyToModel = function () { }; // Supported for ios only. -if (isIOS) { - exports.test_set_color = function () { +export function test_set_color() { + if (__APPLE__) { helper.buildUIAndRunTest(_createTextFieldFunc(), function (views: Array) { var textField = views[0]; textField.color = new Color('red'); TKUnit.assert(textField.color.ios.CGColor.isEqual(textField.ios.textColor.CGColor), 'textField.color'); }); - }; + } } export var testBindTextToBindingContext = function () { diff --git a/apps/automated/src/ui/text-view/text-view-tests.ts b/apps/automated/src/ui/text-view/text-view-tests.ts index d8dcb5095..9b0aa7cab 100644 --- a/apps/automated/src/ui/text-view/text-view-tests.ts +++ b/apps/automated/src/ui/text-view/text-view-tests.ts @@ -18,7 +18,6 @@ export function pageLoaded(args) { obj.set('someProperty', 'Please change this text!'); page.bindingContext = obj; } -exports.pageLoaded = pageLoaded; // << observable-declare export function test_recycling() { @@ -73,14 +72,15 @@ export var testSetTextUndefined = function () { }; // Supported for ios only. -if (__APPLE__) { - exports.test_set_color = function () { + +export function test_set_color() { + if (__APPLE__) { helper.buildUIAndRunTest(_createTextViewFunc(), function (views: Array) { var textView = views[0]; textView.color = new Color('red'); TKUnit.assertEqual(textView.color.ios.CGColor, textView.ios.textColor.CGColor, 'textView.color'); }); - }; + } } export var testBindTextDirectlyToModel = function () { diff --git a/apps/automated/src/xml-declaration/xml-declaration-tests.ts b/apps/automated/src/xml-declaration/xml-declaration-tests.ts index 5f1f7d7ec..f7c06e24f 100644 --- a/apps/automated/src/xml-declaration/xml-declaration-tests.ts +++ b/apps/automated/src/xml-declaration/xml-declaration-tests.ts @@ -24,7 +24,7 @@ export function test_loadWithOptionsNoXML() { var v = Builder.load({ path: '~/xml-declaration/mymodule', name: 'MyControl', - exports: exports, + exports: this, page: new Page(), }); @@ -36,7 +36,7 @@ export function test_loadWithOptionsNoXML_CSSIsApplied() { newPage.content = Builder.load({ path: '~/xml-declaration/mymodule', name: 'MyControl', - exports: exports, + exports: this, page: newPage, }); @@ -65,7 +65,7 @@ export function test_loadWithOptionsWithXML() { var v = Builder.load({ path: '~/xml-declaration/mymodulewithxml', name: 'MyControl', - exports: exports, + exports: this, page: new Page(), }); TKUnit.assertTrue(v instanceof View, 'Expected result: View; Actual result: ' + v + ';'); @@ -79,7 +79,7 @@ export function test_loadWithOptionsWithXML_CSSIsApplied() { newPage.content = Builder.load({ path: '~/xml-declaration/mymodulewithxml', name: 'MyControl', - exports: exports, + exports: this, page: newPage, }); diff --git a/apps/automated/src/xml-parser-tests/xml-parser-tests.ts b/apps/automated/src/xml-parser-tests/xml-parser-tests.ts index 6524d02f7..42795c050 100644 --- a/apps/automated/src/xml-parser-tests/xml-parser-tests.ts +++ b/apps/automated/src/xml-parser-tests/xml-parser-tests.ts @@ -10,6 +10,7 @@ import { isIOS, Device } from '@nativescript/core/platform'; import lazy from '@nativescript/core/utils/lazy'; const sdkVersion = lazy(() => parseInt(Device.sdkVersion)); +const appFolder = fs.knownFolders.currentApp().path; export var test_XmlParser_IsDefined = function () { TKUnit.assertNotEqual(xmlModule.XmlParser, undefined, 'Class XmlParser should be defined!'); @@ -92,7 +93,7 @@ export var test_XmlParser_OnErrorIsCalledWhenAnErrorOccurs = function () { }, function (error: Error) { e = error; - } + }, ); xmlParser.parse(''); TKUnit.assert(e !== undefined, 'Expected result: error; Actual result: ' + e + ';'); @@ -103,8 +104,8 @@ export var test_XmlParser_IntegrationTest = function () { return; } - var actualResult = ''; - var xmlParser = new xmlModule.XmlParser(function (event: xmlModule.ParserEvent) { + let actualResult = ''; + const xmlParser = new xmlModule.XmlParser(function (event: xmlModule.ParserEvent) { if (event.eventType === xmlModule.ParserEventType.Text && event.data.trim() === '') { // Ignore ignorable whitespace. return; @@ -113,20 +114,20 @@ export var test_XmlParser_IntegrationTest = function () { actualResult += event.toString(); }); - var file = fs.File.fromPath(fs.path.join(__dirname, 'xml.xml')); - var xmlString = file.readTextSync(); + let file = fs.File.fromPath(appFolder + '/assets/xml.xml'); + let xmlString = file.readTextSync(); xmlString = xmlString.replace(/(\r\n|\n|\r)/gm, '\n'); xmlParser.parse(xmlString); - var expectedResult: string; - file = fs.File.fromPath(fs.path.join(__dirname, 'xml.expected')); + let expectedResult: string; + file = fs.File.fromPath(appFolder + '/assets/xml.expected'); expectedResult = file.readTextSync(); - var i; - var maxLength = Math.max(actualResult.length, expectedResult.length); + let i; + const maxLength = Math.max(actualResult.length, expectedResult.length); for (i = 0; i < maxLength; i++) { - var actualChar; - var actualCharCode; + let actualChar; + let actualCharCode; if (i <= actualResult.length) { actualChar = actualResult.charAt(i); actualCharCode = actualResult.charCodeAt(i); @@ -213,10 +214,10 @@ export var test_XmlParser_NamespacesTest = function () { TKUnit.assert(actualResult === expectedResult, 'Actual: ' + actualResult + '; Expected: ' + expectedResult); }, undefined, - true + true, ); - var file = fs.File.fromPath(fs.path.join(__dirname, 'xml-with-namespaces.xml')); + var file = fs.File.fromPath(appFolder + '/assets/xml-with-namespaces.xml'); var xmlString = file.readTextSync(); xmlParser.parse(xmlString); }; diff --git a/apps/automated/tsconfig.json b/apps/automated/tsconfig.json index 96f8482ec..0d0dc494b 100644 --- a/apps/automated/tsconfig.json +++ b/apps/automated/tsconfig.json @@ -3,10 +3,7 @@ "compilerOptions": { "diagnostics": false, "paths": { - "~/*": ["src/*"], - "tns-core-modules/*": ["@nativescript/core/*"], - "@nativescript/core": ["../../packages/core/index.ts"], - "@nativescript/core/*": ["../../packages/core/*"] + "~/*": ["src/*"] } } } diff --git a/apps/toolbox/package.json b/apps/toolbox/package.json index 96630949a..9c373194c 100644 --- a/apps/toolbox/package.json +++ b/apps/toolbox/package.json @@ -13,7 +13,7 @@ }, "devDependencies": { "@nativescript/android": "~8.9.0", - "@nativescript/ios": "~8.9.0", + "@nativescript/ios": "esm", "@nativescript/visionos": "~8.9.0", "@nativescript/webpack": "file:../../dist/packages/webpack5", "typescript": "~5.8.0" diff --git a/apps/toolbox/project.json b/apps/toolbox/project.json index 19eddf27b..469bd8ecf 100644 --- a/apps/toolbox/project.json +++ b/apps/toolbox/project.json @@ -30,12 +30,6 @@ "forDevice": false, "prepare": false }, - "defaultConfiguration": "main", - "configurations": { - "main": { - "flags": "--env.env=main --env.target=main --no-hmr --env.commonjs" - } - }, "dependsOn": ["^build"] }, "prepare": { diff --git a/packages/core/globals/index.d.ts b/packages/core/globals/index.d.ts deleted file mode 100644 index c934047b4..000000000 --- a/packages/core/globals/index.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Observable } from '../data/observable'; -export declare class NativeScriptGlobalState { - events: Observable; - launched: boolean; -} -export function installPolyfills(moduleName: string, exportNames: string[]): void; -export function initGlobal(): void;