From 826b09a7f98f198f36de000452a49ef34fb01f62 Mon Sep 17 00:00:00 2001 From: Angel Tsvetkov Date: Fri, 16 Jun 2017 09:02:34 +0300 Subject: [PATCH 1/6] fix: #36 Change the way we import tns-core-modules in demo app and plugin --- demo/app/app.ts | 2 +- demo/app/bundle-config.ts | 2 +- demo/app/home-view-model.ts | 10 +++++----- demo/app/login-view-model.ts | 6 +++--- demo/app/vendor.ts | 2 +- src/index.ios.ts | 2 +- src/login-button.android.ts | 2 +- src/login-button.common.ts | 4 ++-- src/login-button.d.ts | 4 ++-- src/login-button.ios.ts | 2 +- src/login-event-data.d.ts | 2 +- src/login-event-data.ts | 2 +- src/login-manager.android.ts | 2 +- src/login-manager.ios.ts | 2 +- 14 files changed, 22 insertions(+), 22 deletions(-) diff --git a/demo/app/app.ts b/demo/app/app.ts index 44c61e7..eed5b25 100644 --- a/demo/app/app.ts +++ b/demo/app/app.ts @@ -1,6 +1,6 @@ import "./bundle-config"; -import * as application from 'application'; +import * as application from 'tns-core-modules/application'; import { init } from "nativescript-facebook"; application.on(application.launchEvent, function (args) { diff --git a/demo/app/bundle-config.ts b/demo/app/bundle-config.ts index 74f6298..14d1f29 100644 --- a/demo/app/bundle-config.ts +++ b/demo/app/bundle-config.ts @@ -1,5 +1,5 @@ if ((global).TNS_WEBPACK) { - require("bundle-entry-points"); + require("tns-core-modules/bundle-entry-points"); global.registerModule("login-page", () => require("./login-page")); global.registerModule("home-page", () => require("./home-page")); diff --git a/demo/app/home-view-model.ts b/demo/app/home-view-model.ts index 8081185..7a734b3 100644 --- a/demo/app/home-view-model.ts +++ b/demo/app/home-view-model.ts @@ -1,10 +1,10 @@ -import { Observable } from 'data/observable'; +import { Observable } from 'tns-core-modules/data/observable'; import { LoginEventData, logout as fbLogout } from "nativescript-facebook"; -let frameModule = require("ui/frame"); -let appSettings = require("application-settings"); -let imageSource = require("image-source"); -let http = require("http"); +let frameModule = require("tns-core-modules/ui/frame"); +let appSettings = require("tns-core-modules/application-settings"); +let imageSource = require("tns-core-modules/image-source"); +let http = require("tns-core-modules/http"); let config = require("./app.config").config; export class HomeViewModel extends Observable { diff --git a/demo/app/login-view-model.ts b/demo/app/login-view-model.ts index dfd0428..2eaff18 100644 --- a/demo/app/login-view-model.ts +++ b/demo/app/login-view-model.ts @@ -1,7 +1,7 @@ -import { Observable } from 'data/observable'; +import { Observable } from 'tns-core-modules/data/observable'; import { LoginEventData, login as fbLogin } from "nativescript-facebook"; -let frameModule = require("ui/frame"); -let appSettings = require("application-settings"); +let frameModule = require("tns-core-modules/ui/frame"); +let appSettings = require("tns-core-modules/application-settings"); export class LoginViewModel extends Observable { diff --git a/demo/app/vendor.ts b/demo/app/vendor.ts index 5c562b3..2e44c7c 100644 --- a/demo/app/vendor.ts +++ b/demo/app/vendor.ts @@ -1,3 +1,3 @@ require("./vendor-platform"); -require("bundle-entry-points"); +require("tns-core-modules/bundle-entry-points"); diff --git a/src/index.ios.ts b/src/index.ios.ts index 0c6e803..60d063c 100644 --- a/src/index.ios.ts +++ b/src/index.ios.ts @@ -1,4 +1,4 @@ -import * as applicationModule from "application"; +import * as applicationModule from "tns-core-modules/application"; export * from "./login-button"; export * from "./login-manager"; export * from "./login-event-data"; diff --git a/src/login-button.android.ts b/src/login-button.android.ts index 23dbc72..c4c3f4b 100644 --- a/src/login-button.android.ts +++ b/src/login-button.android.ts @@ -1,5 +1,5 @@ // NativeScript modules -import * as applicationModule from "application"; +import * as applicationModule from "tns-core-modules/application"; import { LoginButtonBase } from './login-button.common'; declare let com: any; diff --git a/src/login-button.common.ts b/src/login-button.common.ts index 638701f..b4c4336 100644 --- a/src/login-button.common.ts +++ b/src/login-button.common.ts @@ -1,8 +1,8 @@ -import { View, Property } from "ui/core/view"; +import { View, Property } from "tns-core-modules/ui/core/view"; import * as loginManager from './login-manager'; import { LoginResponse } from './login-response'; import { LoginEventData } from './login-event-data'; -import { EventData } from "data/observable"; +import { EventData } from "tns-core-modules/data/observable"; export abstract class LoginButtonBase extends View { public static loginEvent: string = "login"; diff --git a/src/login-button.d.ts b/src/login-button.d.ts index d5b7aab..7919a24 100644 --- a/src/login-button.d.ts +++ b/src/login-button.d.ts @@ -1,6 +1,6 @@ import { LoginEventData } from './login-event-data'; -import { EventData } from "data/observable"; -import { View } from "ui/core/view"; +import { EventData } from "tns-core-modules/data/observable"; +import { View } from "tns-core-modules/ui/core/view"; export declare class LoginButton extends View { on(event: "login", callback: (data: LoginEventData) => void, thisArg?: any); diff --git a/src/login-button.ios.ts b/src/login-button.ios.ts index 165e6eb..4e7e53d 100644 --- a/src/login-button.ios.ts +++ b/src/login-button.ios.ts @@ -1,4 +1,4 @@ -import * as applicationModule from "application"; +import * as applicationModule from "tns-core-modules/application"; import { LoginButtonBase } from './login-button.common'; import * as loginManager from './login-manager'; diff --git a/src/login-event-data.d.ts b/src/login-event-data.d.ts index 45843ba..86752a3 100644 --- a/src/login-event-data.d.ts +++ b/src/login-event-data.d.ts @@ -1,4 +1,4 @@ -import { EventData } from "data/observable"; +import { EventData } from "tns-core-modules/data/observable"; import { LoginResponse } from "./login-response"; export declare interface LoginEventData extends EventData { diff --git a/src/login-event-data.ts b/src/login-event-data.ts index ad2f732..cd3bec3 100644 --- a/src/login-event-data.ts +++ b/src/login-event-data.ts @@ -1,4 +1,4 @@ -import { EventData } from "data/observable"; +import { EventData } from "tns-core-modules/data/observable"; import { LoginResponse } from "./login-response"; export interface LoginEventData extends EventData { diff --git a/src/login-manager.android.ts b/src/login-manager.android.ts index 10f940e..859ceb8 100644 --- a/src/login-manager.android.ts +++ b/src/login-manager.android.ts @@ -1,4 +1,4 @@ -import * as application from "application"; +import * as application from "tns-core-modules/application"; import { LoginResponse } from './login-response'; declare let com: any; diff --git a/src/login-manager.ios.ts b/src/login-manager.ios.ts index 9c339d7..25d69c7 100644 --- a/src/login-manager.ios.ts +++ b/src/login-manager.ios.ts @@ -1,4 +1,4 @@ -import * as applicationModule from "application"; +import * as applicationModule from "tns-core-modules/application"; import { LoginResponse } from './login-response'; declare let FBSDKLoginManager: any; declare let FBSDKSettings: any; From 2697ba90a05dc82c5508a30843cdb87d86cdf191 Mon Sep 17 00:00:00 2001 From: Angel Tsvetkov Date: Fri, 16 Jun 2017 09:14:46 +0300 Subject: [PATCH 2/6] fix: #36 Change the way we import tns-core-modules in demo-angular --- demo-angular/app/app.module.ts | 2 +- demo-angular/app/pages/home/home.component.ts | 4 ++-- demo-angular/app/pages/login/login.component.ts | 2 +- demo-angular/app/vendor-platform.android.ts | 6 +++--- demo-angular/tsconfig.json | 1 - 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/demo-angular/app/app.module.ts b/demo-angular/app/app.module.ts index 59e43bb..70e83ab 100644 --- a/demo-angular/app/app.module.ts +++ b/demo-angular/app/app.module.ts @@ -5,7 +5,7 @@ import { AppComponent } from "./app.component"; import { LoginModule } from "./pages/login/login.module"; import { HomeModule } from "./pages/home/home.module"; import { NativeScriptFacebookModule } from "nativescript-facebook/angular"; -import * as application from 'application'; +import * as application from 'tns-core-modules/application'; import { routes } from "./app.routing"; import { NavigationService } from "./services/navigation.service"; diff --git a/demo-angular/app/pages/home/home.component.ts b/demo-angular/app/pages/home/home.component.ts index 84e9155..879f144 100644 --- a/demo-angular/app/pages/home/home.component.ts +++ b/demo-angular/app/pages/home/home.component.ts @@ -2,8 +2,8 @@ import { Component, ChangeDetectorRef } from "@angular/core"; import * as Facebook from "nativescript-facebook"; import { NavigationService } from "../../services/navigation.service"; import { config } from "../../app.config"; -let http = require("http"); -let appSettings = require("application-settings"); +let http = require("tns-core-modules/http"); +let appSettings = require("tns-core-modules/application-settings"); @Component({ selector: "home", diff --git a/demo-angular/app/pages/login/login.component.ts b/demo-angular/app/pages/login/login.component.ts index cb4b0d9..6fa20b1 100644 --- a/demo-angular/app/pages/login/login.component.ts +++ b/demo-angular/app/pages/login/login.component.ts @@ -1,7 +1,7 @@ import { Component, ChangeDetectorRef } from "@angular/core"; import * as Facebook from "nativescript-facebook"; import { NavigationService } from "../../services/navigation.service"; -let appSettings = require("application-settings"); +let appSettings = require("tns-core-modules/application-settings"); @Component({ selector: "login", diff --git a/demo-angular/app/vendor-platform.android.ts b/demo-angular/app/vendor-platform.android.ts index ba9742f..58f2cee 100644 --- a/demo-angular/app/vendor-platform.android.ts +++ b/demo-angular/app/vendor-platform.android.ts @@ -8,9 +8,9 @@ // At runtime the module gets loaded *before* the rest of the app code, so code // placed here needs to be careful about its dependencies. -require("application"); -require("ui/frame"); -require("ui/frame/activity"); +require("tns-core-modules/application"); +require("tns-core-modules/ui/frame"); +require("tns-core-modules/ui/frame/activity"); if (global.TNS_WEBPACK) { global.__requireOverride = function (name, dir) { diff --git a/demo-angular/tsconfig.json b/demo-angular/tsconfig.json index 145cbfc..32b5ff2 100644 --- a/demo-angular/tsconfig.json +++ b/demo-angular/tsconfig.json @@ -15,7 +15,6 @@ "baseUrl": ".", "paths": { "*": [ - "./node_modules/tns-core-modules/*", "./node_modules/*" ] }, From 1166bee4da0ea02211ecadb8ab88279a2453bb2f Mon Sep 17 00:00:00 2001 From: Angel Tsvetkov Date: Fri, 16 Jun 2017 09:42:05 +0300 Subject: [PATCH 3/6] chore: #36 WebPack demo apps on change --- .travis.yml | 24 ++++- demo-angular/package.json | 17 ++-- demo-angular/webpack.android.js | 2 - demo-angular/webpack.common.js | 151 -------------------------------- demo-angular/webpack.ios.js | 2 - demo/package.json | 13 +-- demo/webpack.android.js | 2 - demo/webpack.common.js | 138 ----------------------------- demo/webpack.ios.js | 2 - src/package.json | 127 ++++++++++++++------------- src/tsconfig.json | 6 -- 11 files changed, 100 insertions(+), 384 deletions(-) delete mode 100644 demo-angular/webpack.android.js delete mode 100644 demo-angular/webpack.common.js delete mode 100644 demo-angular/webpack.ios.js delete mode 100644 demo/webpack.android.js delete mode 100644 demo/webpack.common.js delete mode 100644 demo/webpack.ios.js diff --git a/.travis.yml b/.travis.yml index 5a8692b..d516a0c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,27 @@ matrix: include: - - stage: "Lint" - language: node_js - os: linux + # - stage: "Lint" + # language: node_js + # os: linux + # node_js: "6" + # jdk: oraclejdk8 + # script: npm run ci.tslint + - stage: "WebPack" + os: osx + env: + - Platform="iOS" + osx_image: xcode8.3 + language: node_js node_js: "6" jdk: oraclejdk8 - script: npm run ci.tslint + script: npm run build && cd ../demo && npm i && npm run build-ios-bundle && cd ../demo-angular && npm i && npm run build-ios-bundle + - language: android + os: linux + env: + - Platform="Android" + jdk: oraclejdk8 + before_install: nvm install 6.10.3 + script: cd ../src && npm run build && cd ../demo && npm i && npm run build-android-bundle && cd ../demo-angular && npm i && npm run build-android-bundle - stage: "Build" env: - Android="23" diff --git a/demo-angular/package.json b/demo-angular/package.json index c218c1d..e5db161 100644 --- a/demo-angular/package.json +++ b/demo-angular/package.json @@ -4,7 +4,7 @@ "nativescript": { "id": "org.nativescript.demoangular", "tns-android": { - "version": "3.0.0" + "version": "3.0.1" }, "tns-ios": { "version": "3.0.1" @@ -29,7 +29,7 @@ }, "devDependencies": { "@angular/compiler-cli": "~4.0.0", - "@ngtools/webpack": "1.3.0", + "@ngtools/webpack": "~1.4.0", "babel-traverse": "6.12.0", "babel-types": "6.11.1", "babylon": "6.8.4", @@ -43,17 +43,18 @@ "lazy": "1.0.11", "nativescript-css-loader": "~0.26.0", "nativescript-dev-typescript": "^0.4.0", - "nativescript-dev-webpack": "^0.4.0", + "nativescript-dev-webpack": "^0.6.3", "raw-loader": "~0.5.1", "resolve-url-loader": "~2.0.2", - "typescript": "~2.2.2", - "webpack": "~2.3.3", - "webpack-sources": "~0.2.3" + "typescript": "~2.3.4", + "webpack": "~2.6.1", + "webpack-sources": "~1.0.1" }, "scripts": { "ns-bundle": "ns-bundle", - "start-android-bundle": "npm run ns-bundle --android --start-app", - "start-ios-bundle": "npm run ns-bundle --ios --start-app", + "publish-ios-bundle": "npm run ns-bundle --ios --publish-app", + "start-android-bundle": "npm run ns-bundle --android --run-app", + "start-ios-bundle": "npm run ns-bundle --ios --run-app", "build-android-bundle": "npm run ns-bundle --android --build-app", "build-ios-bundle": "npm run ns-bundle --ios --build-app" } diff --git a/demo-angular/webpack.android.js b/demo-angular/webpack.android.js deleted file mode 100644 index 968e93b..0000000 --- a/demo-angular/webpack.android.js +++ /dev/null @@ -1,2 +0,0 @@ -var makeConfig = require("./webpack.common"); -module.exports = makeConfig("android"); diff --git a/demo-angular/webpack.common.js b/demo-angular/webpack.common.js deleted file mode 100644 index 0d017eb..0000000 --- a/demo-angular/webpack.common.js +++ /dev/null @@ -1,151 +0,0 @@ -var webpack = require("webpack"); -var nsWebpack = require("nativescript-dev-webpack"); -var nativescriptTarget = require("nativescript-dev-webpack/nativescript-target"); -var path = require("path"); -var CopyWebpackPlugin = require("copy-webpack-plugin"); -var ExtractTextPlugin = require("extract-text-webpack-plugin"); -var AotPlugin = require("@ngtools/webpack").AotPlugin; - -module.exports = function (platform, destinationApp) { - if (!destinationApp) { - //Default destination inside platforms//... - destinationApp = nsWebpack.getAppPath(platform); - } - var entry = {}; - // Discover entry module from package.json - entry.bundle = "./" + nsWebpack.getEntryModule(); - //Vendor entry with third party libraries. - entry.vendor = "./vendor"; - // app.css bundle - entry["app.css"] = "./app.css"; - - var plugins = [ - new ExtractTextPlugin("app.css"), - // Vendor libs go to the vendor.js chunk - new webpack.optimize.CommonsChunkPlugin({ - name: ["vendor"] - }), - // Define useful constants like TNS_WEBPACK - new webpack.DefinePlugin({ - "global.TNS_WEBPACK": "true", - }), - // Copy assets to out dir. Add your own globs as needed. - new CopyWebpackPlugin([ - { from: "app.css" }, - { from: "css/**" }, - { from: "fonts/**" }, - { from: "**/*.jpg" }, - { from: "**/*.png" }, - { from: "**/*.xml" }, - ], { ignore: ["App_Resources/**"] }), - // Generate a bundle starter script and activate it in package.json - new nsWebpack.GenerateBundleStarterPlugin([ - "./vendor", - "./bundle", - ]), - - // Angular AOT compiler - new AotPlugin({ - tsConfigPath: "tsconfig.aot.json", - entryModule: path.resolve(__dirname, "app/app.module#AppModule"), - typeChecking: false - }), - new nsWebpack.StyleUrlResolvePlugin({platform}), - ]; - - if (process.env.npm_config_uglify) { - plugins.push(new webpack.LoaderOptionsPlugin({ - minimize: true - })); - - // Work around an Android issue by setting compress = false - var compress = platform !== "android"; - plugins.push(new webpack.optimize.UglifyJsPlugin({ - mangle: { - except: nsWebpack.uglifyMangleExcludes, - }, - compress: compress, - })); - } - - return { - context: path.resolve("./app"), - target: nativescriptTarget, - entry: entry, - output: { - pathinfo: true, - path: path.resolve(destinationApp), - libraryTarget: "commonjs2", - filename: "[name].js", - }, - resolve: { - // Resolve platform-specific modules like module.android.js - extensions: [ - ".aot.ts", - ".ts", - ".js", - ".css", - "." + platform + ".ts", - "." + platform + ".js", - "." + platform + ".css", - ], - // Resolve {N} system modules from tns-core-modules - modules: [ - "node_modules/tns-core-modules", - "node_modules", - ] - }, - node: { - // Disable node shims that conflict with NativeScript - "http": false, - "timers": false, - "setImmediate": false, - "fs": "empty", - }, - module: { - loaders: [ - { - test: /\.html$|\.xml$/, - loaders: [ - "raw-loader", - ] - }, - // Root app.css file gets extracted with bundled dependencies - { - test: /app\.css$/, - loader: ExtractTextPlugin.extract([ - "resolve-url-loader", - "nativescript-css-loader", - "nativescript-dev-webpack/platform-css-loader", - ]), - }, - // Other CSS files get bundled using the raw loader - { - test: /\.css$/, - exclude: /app\.css$/, - loaders: [ - "raw-loader", - ] - }, - // Compile TypeScript files with ahead-of-time compiler. - { - test: /\.ts$/, - loaders: [ - "nativescript-dev-webpack/tns-aot-loader", - "@ngtools/webpack", - ] - }, - // SASS support - { - test: /\.scss$/, - loaders: [ - "raw-loader", - "resolve-url-loader", - "sass-loader", - ] - }, - ] - }, - plugins: plugins, - }; -}; diff --git a/demo-angular/webpack.ios.js b/demo-angular/webpack.ios.js deleted file mode 100644 index 806f3ef..0000000 --- a/demo-angular/webpack.ios.js +++ /dev/null @@ -1,2 +0,0 @@ -var makeConfig = require("./webpack.common"); -module.exports = makeConfig("ios"); diff --git a/demo/package.json b/demo/package.json index a31683c..ffa8030 100644 --- a/demo/package.json +++ b/demo/package.json @@ -15,7 +15,7 @@ "tns-core-modules": "^3.0.0" }, "devDependencies": { - "awesome-typescript-loader": "~3.1.2", + "awesome-typescript-loader": "~3.1.3", "babel-traverse": "6.12.0", "babel-types": "6.11.1", "babylon": "6.8.4", @@ -32,19 +32,20 @@ "nativescript-css-loader": "~0.26.0", "nativescript-dev-appium": "~0", "nativescript-dev-typescript": "^0.4.0", - "nativescript-dev-webpack": "^0.4.0", + "nativescript-dev-webpack": "^0.6.3", "raw-loader": "~0.5.1", "resolve-url-loader": "~2.0.2", "typescript": "~2.2.2", "wd": "~1.1.1", - "webpack": "~2.3.3", - "webpack-sources": "~0.2.3" + "webpack": "~2.6.1", + "webpack-sources": "~1.0.1" }, "scripts": { "ns-bundle": "ns-bundle", "appium": "nativescript-dev-appium", - "start-android-bundle": "npm run ns-bundle --android --start-app", - "start-ios-bundle": "npm run ns-bundle --ios --start-app", + "publish-ios-bundle": "npm run ns-bundle --ios --publish-app", + "start-android-bundle": "npm run ns-bundle --android --run-app", + "start-ios-bundle": "npm run ns-bundle --ios --run-app", "build-android-bundle": "npm run ns-bundle --android --build-app", "build-ios-bundle": "npm run ns-bundle --ios --build-app" } diff --git a/demo/webpack.android.js b/demo/webpack.android.js deleted file mode 100644 index 968e93b..0000000 --- a/demo/webpack.android.js +++ /dev/null @@ -1,2 +0,0 @@ -var makeConfig = require("./webpack.common"); -module.exports = makeConfig("android"); diff --git a/demo/webpack.common.js b/demo/webpack.common.js deleted file mode 100644 index 8427c54..0000000 --- a/demo/webpack.common.js +++ /dev/null @@ -1,138 +0,0 @@ -var webpack = require("webpack"); -var nsWebpack = require("nativescript-dev-webpack"); -var nativescriptTarget = require("nativescript-dev-webpack/nativescript-target"); -var path = require("path"); -var CopyWebpackPlugin = require("copy-webpack-plugin"); -var ExtractTextPlugin = require("extract-text-webpack-plugin"); - -module.exports = function (platform, destinationApp) { - if (!destinationApp) { - // Default destination inside platforms//... - destinationApp = nsWebpack.getAppPath(platform); - } - var entry = {}; - // Discover entry module from package.json - entry.bundle = "./" + nsWebpack.getEntryModule(); - // Vendor entry with third party libraries. - entry.vendor = "./vendor"; - // app.css bundle - entry["app.css"] = "./app.css"; - - var plugins = [ - new ExtractTextPlugin("app.css"), - // Vendor libs go to the vendor.js chunk - new webpack.optimize.CommonsChunkPlugin({ - name: ["vendor"] - }), - // Define useful constants like TNS_WEBPACK - new webpack.DefinePlugin({ - "global.TNS_WEBPACK": "true", - }), - // Copy assets to out dir. Add your own globs as needed. - new CopyWebpackPlugin([ - { from: "app.css" }, - { from: "css/**" }, - { from: "fonts/**" }, - { from: "**/*.jpg" }, - { from: "**/*.png" }, - { from: "**/*.xml" }, - ], { ignore: ["App_Resources/**"] }), - // Generate a bundle starter script and activate it in package.json - new nsWebpack.GenerateBundleStarterPlugin([ - "./vendor", - "./bundle", - ]), - ]; - - if (process.env.npm_config_uglify) { - plugins.push(new webpack.LoaderOptionsPlugin({ - minimize: true - })); - - // Work around an Android issue by setting compress = false - var compress = platform !== "android"; - plugins.push(new webpack.optimize.UglifyJsPlugin({ - mangle: { - except: nsWebpack.uglifyMangleExcludes, - }, - compress: compress, - })); - } - - return { - context: path.resolve("./app"), - target: nativescriptTarget, - entry: entry, - output: { - pathinfo: true, - path: path.resolve(destinationApp), - libraryTarget: "commonjs2", - filename: "[name].js", - }, - resolve: { - // Resolve platform-specific modules like module.android.js - extensions: [ - ".ts", - ".js", - ".css", - "." + platform + ".ts", - "." + platform + ".js", - "." + platform + ".css", - ], - // Resolve {N} system modules from tns-core-modules - modules: [ - "node_modules/tns-core-modules", - "node_modules", - ] - }, - node: { - // Disable node shims that conflict with NativeScript - "http": false, - "timers": false, - "setImmediate": false, - "fs": "empty", - }, - module: { - loaders: [ - { - test: /\.html$/, - loader: "raw-loader" - }, - // Root app.css file gets extracted with bundled dependencies - { - test: /app\.css$/, - loader: ExtractTextPlugin.extract([ - "resolve-url-loader", - "nativescript-css-loader", - "nativescript-dev-webpack/platform-css-loader", - ]), - }, - // Other CSS files get bundled using the raw loader - { - test: /\.css$/, - exclude: /app\.css$/, - loaders: [ - "raw-loader", - ] - }, - // Compile TypeScript files, replace templateUrl and styleUrls. - { - test: /\.ts$/, - loaders: [ - "awesome-typescript-loader", - ] - }, - // SASS support - { - test: /\.scss$/, - loaders: [ - "raw-loader", - "resolve-url-loader", - "sass-loader", - ] - }, - ] - }, - plugins: plugins, - }; -}; diff --git a/demo/webpack.ios.js b/demo/webpack.ios.js deleted file mode 100644 index 806f3ef..0000000 --- a/demo/webpack.ios.js +++ /dev/null @@ -1,2 +0,0 @@ -var makeConfig = require("./webpack.common"); -module.exports = makeConfig("ios"); diff --git a/src/package.json b/src/package.json index 8c4c6b7..1e3701d 100644 --- a/src/package.json +++ b/src/package.json @@ -1,68 +1,69 @@ { - "name": "nativescript-facebook", - "version": "2.0.1", - "description": "NativeScript plugin, wrapper of native Facebook SDK for Adroid and iOS.", - "nativescript": { - "platforms": { - "android": "3.0.0", - "ios": "3.0.0" - } - }, - "scripts": { - "build": "tsc", - "ci.tslint": "tslint *.ts && tslint ../demo/app/*.ts && tslint ../demo-angular/app/*.ts", - "ci.android": "cd ../demo && tns build android", - "ci.ios": "cd ../demo && tns build ios", - "ci.test.ios": "cd ../demo && tns platform remove ios && tns test ios", - "ci.test.android": "cd ../demo && tns platform remove android && tns test android", - "ci.test.ios.angular": "cd ../demo-angular && tns platform remove ios && tns test ios", - "ci.test.android.angular": "cd ../demo-angular && tns platform remove android", - "ci.uitest.ios": "cd ../demo && npm run appium --runtype=ios-simulator10", - "ci.uitest.android": "cd ../demo && npm run appium --runtype=android23", - "prepublish": "npm run build" - }, - "repository": { - "type": "git", - "url": "https://github.com/NativeScript/nativescript-facebook.git" - }, - "keywords": [ - "NativeScript", - "TypeScript", - "Android", - "iOS", - "Facebook" - ], - "author": { - "name": "NativeScript Team", - "email": "support@telerik.com", - "url": "http://www.telerik.com" - }, - "maintainers": [{ - "name": "angeltsvetkov", - "email": "angel.tsvetkov@progress.com" - }, - { - "name": "Dimitar Tachev", - "email": "dimitar.tachev@progress.com" - } - ], - "bugs": { - "url": "https://github.com/NativeScript/nativescript-facebook/issues" + "name": "nativescript-facebook", + "version": "2.0.0", + "description": "NativeScript plugin, wrapper of native Facebook SDK for Adroid and iOS.", + "nativescript": { + "platforms": { + "android": "3.0.0", + "ios": "3.0.0" + } + }, + "scripts": { + "ngc": "node --max-old-space-size=8192 ./node_modules/.bin/ngc", + "build": "npm i && tsc && npm run ngc", + "ci.tslint": "tslint *.ts && tslint ../demo/app/*.ts && tslint ../demo-angular/app/*.ts", + "ci.android": "npm run build && cd ../demo && tns build android", + "ci.ios": "npm run build && cd ../demo && tns build ios", + "ci.test.ios": "npm run build && cd ../demo && tns platform remove ios && tns test ios", + "ci.test.android": "npm run build && cd ../demo && tns platform remove android && tns test android", + "ci.test.ios.angular": "npm run build && cd ../demo-angular && tns platform remove ios && tns test ios", + "ci.test.android.angular": "npm run build && cd ../demo-angular && tns platform remove android", + "ci.uitest.ios": "cd ../demo && npm run appium --runtype=ios-simulator10", + "ci.uitest.android": "cd ../demo && npm run appium --runtype=android23", + "prepublishOnly": "npm run build" + }, + "repository": { + "type": "git", + "url": "https://github.com/NativeScript/nativescript-facebook.git" + }, + "keywords": [ + "NativeScript", + "TypeScript", + "Android", + "iOS", + "Facebook" + ], + "author": { + "name": "NativeScript Team", + "email": "support@telerik.com", + "url": "http://www.telerik.com" + }, + "maintainers": [{ + "name": "angeltsvetkov", + "email": "angel.tsvetkov@progress.com" }, - "license": "Apache 2.0", - "homepage": "https://github.com/NativeScript/nativescript-facebook", - "readmeFilename": "README.md", - "devDependencies": { - "tns-core-modules": "^3.0.0", - "tns-platform-declarations": "^3.0.0", - "typescript": "~2.2.2", - "nativescript-angular": "^3.0.0 || ^2.0.0-rc.1", - "@angular/core": "~4.0.1", - "@angular/common": "~4.0.1", - "@angular/compiler": "~4.0.1", - "@angular/compiler-cli": "~4.0.1", - "rxjs": "~5.3.0", - "zone.js": "~0.8.4" + { + "name": "Dimitar Tachev", + "email": "dimitar.tachev@progress.com" + } + ], + "bugs": { + "url": "https://github.com/NativeScript/nativescript-facebook/issues" + }, + "license": "Apache 2.0", + "homepage": "https://github.com/NativeScript/nativescript-facebook", + "readmeFilename": "README.md", + "devDependencies": { + "tns-core-modules": "^3.0.0", + "tns-platform-declarations": "^3.0.0", + "typescript": "~2.2.2", + "nativescript-angular": "^3.0.0 || ^2.0.0-rc.1", + "@angular/core": "~4.0.1", + "@angular/common": "~4.0.1", + "@angular/compiler": "~4.0.1", + "@angular/compiler-cli": "~4.0.1", + "rxjs": "~5.3.0", + "zone.js": "~0.8.4" }, "peerDependencies": { "tns-core-modules": "^3.0.0" diff --git a/src/tsconfig.json b/src/tsconfig.json index 64d72f5..79ec1d9 100644 --- a/src/tsconfig.json +++ b/src/tsconfig.json @@ -4,12 +4,6 @@ "module": "commonjs", "lib": ["es6", "dom"], "baseUrl": ".", - "paths": { - "*": [ - "./node_modules/tns-core-modules/*", - "./node_modules/*" - ] - }, "removeComments": true, "noLib": false, "emitDecoratorMetadata": true, From c66620e5f34743c0755173be3cc5dddd7bed4e0d Mon Sep 17 00:00:00 2001 From: Angel Tsvetkov Date: Fri, 16 Jun 2017 15:56:30 +0300 Subject: [PATCH 4/6] docs: Update --- CONTRIBUTING.md | 6 ++---- README.md | 5 +++++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 19a2602..58bb1cc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,17 +10,15 @@ Third-party patches are essential for keeping nativescript-facebook plugin great git clone git@github.com:/nativescript-facebook.git * Make commits of logical units. -* Make sure your commit messages are in the proper format. +* Make sure your commit messages are in the proper format. We are strongly recommend to use [semantic commit messages](https://seesparkbox.com/foundry/semantic_commit_messages) * Add tests for your changes and make them pass. How to run tests you can find in [Testing section](#Testing) * Push your changes to a topic branch in your fork of the repository. * Submit a pull request to the **nativescript-facebook** repository. -## Testing +## Testing There are three main points in order to get nativescript-facebook e2e UI tests running locally on iOS 10 Simulator and Android api 23 Emulator. Before that if you want to take a look at the tests and make some changes find them located in `demo/e2e-tests` folder. -Note, that all commands below assume you have installed npm packages in /src and /demo folders (`$ npm i`) and you are using OS X in order to use both iOS Simulator and Android emulator. - * Install Appium. Test execution depends on [nativescript-dev-appium](https://github.com/NativeScript/nativescript-dev-appium) plugin which is added as dev dependency in `demo` app folder and first command satisfies its requirement to have appium installed. $ npm install -g appium@1.6.3 diff --git a/README.md b/README.md index 4335ef5..bca8926 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,8 @@ NativeScript : Facebook SDK ![apple](https://cdn3.iconfinder.com/data/icons/pico - [Login Response](#login-response) - [Graph API Example](#graph-api-example) - [Release notes](#release-notes) +- [FAQ](#faq) +- [Contributing](#contributing) - [License](#license) @@ -468,5 +470,8 @@ This sample is part of the demo apps and can be observed [here](https://github.c ## FAQ Check out our FAQ section [here](https://github.com/NativeScript/nativescript-facebook/wiki/FAQ). +## Contributing +Check out our Contribution guide [here](https://github.com/NativeScript/nativescript-facebook/blob/master/CONTRIBUTING.md). + ## License [Apache 2.0](https://github.com/NativeScript/nativescript-facebook/blob/master/LICENSE) From d3e8533601d7d71725583eccf88f0ad1506c07d3 Mon Sep 17 00:00:00 2001 From: Angel Tsvetkov Date: Fri, 16 Jun 2017 15:59:07 +0300 Subject: [PATCH 5/6] fix: Travis configuration --- .travis.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index d516a0c..4599b3f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,11 @@ matrix: include: - # - stage: "Lint" - # language: node_js - # os: linux - # node_js: "6" - # jdk: oraclejdk8 - # script: npm run ci.tslint + - stage: "Lint" + language: node_js + os: linux + node_js: "6" + jdk: oraclejdk8 + script: npm run ci.tslint - stage: "WebPack" os: osx env: @@ -21,7 +21,7 @@ matrix: - Platform="Android" jdk: oraclejdk8 before_install: nvm install 6.10.3 - script: cd ../src && npm run build && cd ../demo && npm i && npm run build-android-bundle && cd ../demo-angular && npm i && npm run build-android-bundle + script: cd src && npm run build && cd ../demo && npm i && npm run build-android-bundle && cd ../demo-angular && npm i && npm run build-android-bundle - stage: "Build" env: - Android="23" From c6434fc125a7679f26ce32ec68c0de08fe0ade93 Mon Sep 17 00:00:00 2001 From: Angel Tsvetkov Date: Mon, 19 Jun 2017 10:35:18 +0300 Subject: [PATCH 6/6] fix: Import instead of require --- CONTRIBUTING.md | 2 +- demo-angular/app/pages/home/home.component.ts | 10 +- .../app/pages/login/login.component.ts | 2 +- src/package.json | 128 +++++++++--------- 4 files changed, 71 insertions(+), 71 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 58bb1cc..27fe229 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,7 @@ Third-party patches are essential for keeping nativescript-facebook plugin great git clone git@github.com:/nativescript-facebook.git * Make commits of logical units. -* Make sure your commit messages are in the proper format. We are strongly recommend to use [semantic commit messages](https://seesparkbox.com/foundry/semantic_commit_messages) +* Make sure your commit messages are in the proper format. We strongly recommend to use [semantic commit messages](https://seesparkbox.com/foundry/semantic_commit_messages) * Add tests for your changes and make them pass. How to run tests you can find in [Testing section](#Testing) * Push your changes to a topic branch in your fork of the repository. * Submit a pull request to the **nativescript-facebook** repository. diff --git a/demo-angular/app/pages/home/home.component.ts b/demo-angular/app/pages/home/home.component.ts index 879f144..7733d46 100644 --- a/demo-angular/app/pages/home/home.component.ts +++ b/demo-angular/app/pages/home/home.component.ts @@ -2,8 +2,8 @@ import { Component, ChangeDetectorRef } from "@angular/core"; import * as Facebook from "nativescript-facebook"; import { NavigationService } from "../../services/navigation.service"; import { config } from "../../app.config"; -let http = require("tns-core-modules/http"); -let appSettings = require("tns-core-modules/application-settings"); +import * as http from "tns-core-modules/http"; +import * as appSettings from "tns-core-modules/application-settings"; @Component({ selector: "home", @@ -20,13 +20,13 @@ export class HomeComponent { constructor(private ref: ChangeDetectorRef, private navigationService: NavigationService) { // Get logged in user's info http.getJSON(config.FACEBOOK_GRAPH_API_URL + "/me?access_token=" + this.accessToken).then((res) => { - this.username = res.name; - this.userId = res.id; + this.username = res["name"]; + this.userId = res["id"]; // Get logged in user's avatar // ref: https://github.com/NativeScript/NativeScript/issues/2176 http.getJSON(config.FACEBOOK_GRAPH_API_URL + "/" + this.userId + "/picture?type=large&redirect=false&access_token=" + this.accessToken).then((res) => { - this.avatarUrl = res.data.url; + this.avatarUrl = res["data"]["url"]; this.ref.detectChanges(); }, function (err) { alert("Error getting user info: " + err); diff --git a/demo-angular/app/pages/login/login.component.ts b/demo-angular/app/pages/login/login.component.ts index 6fa20b1..89bba95 100644 --- a/demo-angular/app/pages/login/login.component.ts +++ b/demo-angular/app/pages/login/login.component.ts @@ -1,7 +1,7 @@ import { Component, ChangeDetectorRef } from "@angular/core"; import * as Facebook from "nativescript-facebook"; import { NavigationService } from "../../services/navigation.service"; -let appSettings = require("tns-core-modules/application-settings"); +import * as appSettings from "tns-core-modules/application-settings"; @Component({ selector: "login", diff --git a/src/package.json b/src/package.json index 1e3701d..0916674 100644 --- a/src/package.json +++ b/src/package.json @@ -1,69 +1,69 @@ { - "name": "nativescript-facebook", - "version": "2.0.0", - "description": "NativeScript plugin, wrapper of native Facebook SDK for Adroid and iOS.", - "nativescript": { - "platforms": { - "android": "3.0.0", - "ios": "3.0.0" - } - }, - "scripts": { - "ngc": "node --max-old-space-size=8192 ./node_modules/.bin/ngc", - "build": "npm i && tsc && npm run ngc", - "ci.tslint": "tslint *.ts && tslint ../demo/app/*.ts && tslint ../demo-angular/app/*.ts", - "ci.android": "npm run build && cd ../demo && tns build android", - "ci.ios": "npm run build && cd ../demo && tns build ios", - "ci.test.ios": "npm run build && cd ../demo && tns platform remove ios && tns test ios", - "ci.test.android": "npm run build && cd ../demo && tns platform remove android && tns test android", - "ci.test.ios.angular": "npm run build && cd ../demo-angular && tns platform remove ios && tns test ios", - "ci.test.android.angular": "npm run build && cd ../demo-angular && tns platform remove android", - "ci.uitest.ios": "cd ../demo && npm run appium --runtype=ios-simulator10", - "ci.uitest.android": "cd ../demo && npm run appium --runtype=android23", - "prepublishOnly": "npm run build" - }, - "repository": { - "type": "git", - "url": "https://github.com/NativeScript/nativescript-facebook.git" - }, - "keywords": [ - "NativeScript", - "TypeScript", - "Android", - "iOS", - "Facebook" - ], - "author": { - "name": "NativeScript Team", - "email": "support@telerik.com", - "url": "http://www.telerik.com" - }, - "maintainers": [{ - "name": "angeltsvetkov", - "email": "angel.tsvetkov@progress.com" + "name": "nativescript-facebook", + "version": "2.0.0", + "description": "NativeScript plugin, wrapper of native Facebook SDK for Adroid and iOS.", + "nativescript": { + "platforms": { + "android": "3.0.0", + "ios": "3.0.0" + } }, - { - "name": "Dimitar Tachev", - "email": "dimitar.tachev@progress.com" - } - ], - "bugs": { - "url": "https://github.com/NativeScript/nativescript-facebook/issues" - }, - "license": "Apache 2.0", - "homepage": "https://github.com/NativeScript/nativescript-facebook", - "readmeFilename": "README.md", - "devDependencies": { - "tns-core-modules": "^3.0.0", - "tns-platform-declarations": "^3.0.0", - "typescript": "~2.2.2", - "nativescript-angular": "^3.0.0 || ^2.0.0-rc.1", - "@angular/core": "~4.0.1", - "@angular/common": "~4.0.1", - "@angular/compiler": "~4.0.1", - "@angular/compiler-cli": "~4.0.1", - "rxjs": "~5.3.0", - "zone.js": "~0.8.4" + "scripts": { + "ngc": "node --max-old-space-size=8192 ./node_modules/.bin/ngc", + "build": "npm i && tsc && npm run ngc", + "ci.tslint": "tslint *.ts && tslint ../demo/app/*.ts && tslint ../demo-angular/app/*.ts", + "ci.android": "npm run build && cd ../demo && tns build android", + "ci.ios": "npm run build && cd ../demo && tns build ios", + "ci.test.ios": "npm run build && cd ../demo && tns platform remove ios && tns test ios", + "ci.test.android": "npm run build && cd ../demo && tns platform remove android && tns test android", + "ci.test.ios.angular": "npm run build && cd ../demo-angular && tns platform remove ios && tns test ios", + "ci.test.android.angular": "npm run build && cd ../demo-angular && tns platform remove android", + "ci.uitest.ios": "cd ../demo && npm run appium --runtype=ios-simulator10", + "ci.uitest.android": "cd ../demo && npm run appium --runtype=android23", + "prepublishOnly": "npm run build" + }, + "repository": { + "type": "git", + "url": "https://github.com/NativeScript/nativescript-facebook.git" + }, + "keywords": [ + "NativeScript", + "TypeScript", + "Android", + "iOS", + "Facebook" + ], + "author": { + "name": "NativeScript Team", + "email": "support@telerik.com", + "url": "http://www.telerik.com" + }, + "maintainers": [{ + "name": "angeltsvetkov", + "email": "angel.tsvetkov@progress.com" + }, + { + "name": "Dimitar Tachev", + "email": "dimitar.tachev@progress.com" + } + ], + "bugs": { + "url": "https://github.com/NativeScript/nativescript-facebook/issues" + }, + "license": "Apache 2.0", + "homepage": "https://github.com/NativeScript/nativescript-facebook", + "readmeFilename": "README.md", + "devDependencies": { + "tns-core-modules": "^3.0.0", + "tns-platform-declarations": "^3.0.0", + "typescript": "~2.2.2", + "nativescript-angular": "^3.0.0 || ^2.0.0-rc.1", + "@angular/core": "~4.0.1", + "@angular/common": "~4.0.1", + "@angular/compiler": "~4.0.1", + "@angular/compiler-cli": "~4.0.1", + "rxjs": "~5.3.0", + "zone.js": "~0.8.4" }, "peerDependencies": { "tns-core-modules": "^3.0.0"