Skip to content

Commit bc844ce

Browse files
committed
Merge pull request NativeScript#190 from NativeScript/hdeshev/livesync-hook
Disable single-page livesync updates
2 parents f3ec2a7 + b20c85e commit bc844ce

File tree

6 files changed

+75
-1
lines changed

6 files changed

+75
-1
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ bin/dist
33
node_modules
44
tags
55
src/nativescript-angular/**/*.js
6+
!src/nativescript-angular/postinstall.js
7+
!src/nativescript-angular/hooks/**/*.js
68
.baseDir.ts
79
.tscache
810
.nvm

gruntfile.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
var fs = require("fs");
12
var path = require("path");
23
var shelljs = require("shelljs");
34

@@ -10,6 +11,7 @@ module.exports = function(grunt) {
1011

1112
var outDir = "bin/dist/modules";
1213
var moduleOutDir = path.join(outDir, "nativescript-angular");
14+
var moduleOutPackageJson = path.join(moduleOutDir, "package.json");
1315
var packageName = "nativescript-angular-" + require("./package.json").version + ".tgz";
1416

1517
grunt.initConfig({
@@ -39,6 +41,15 @@ module.exports = function(grunt) {
3941
src: 'package.json',
4042
dest: moduleOutDir
4143
},
44+
hookScripts: {
45+
cwd: 'src/nativescript-angular',
46+
expand: true,
47+
src: [
48+
'postinstall.js',
49+
'hooks/**/*.js'
50+
],
51+
dest: moduleOutDir
52+
},
4253
npmReadme: {
4354
expand: true,
4455
src: 'README.md',
@@ -103,9 +114,18 @@ module.exports = function(grunt) {
103114
grunt.registerTask("build", [
104115
"ts:build",
105116
"copy:packageJson",
117+
"copy:hookScripts",
118+
"add-post-install-script",
106119
"package"
107120
]);
108121

122+
grunt.registerTask("add-post-install-script", function() {
123+
var packageJson = JSON.parse(fs.readFileSync(moduleOutPackageJson, "utf-8"));
124+
packageJson.scripts = packageJson.scripts || {};
125+
packageJson.scripts.postinstall = "node postinstall.js";
126+
fs.writeFileSync(moduleOutPackageJson, JSON.stringify(packageJson, null, " "));
127+
});
128+
109129
grunt.registerTask("updateTests", ["all", "shell:updateTests"]);
110130

111131
grunt.registerTask("default", ["all"]);

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "nativescript-angular",
3-
"version": "0.0.42",
3+
"version": "0.0.43",
44
"description": "",
55
"homepage": "http://www.telerik.com",
66
"bugs": "http://www.telerik.com",
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module.exports = function ($usbLiveSyncService) {
2+
$usbLiveSyncService.forceExecuteFullSync = true;
3+
};
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
"use strict";
2+
var fs = require("fs");
3+
var path = require("path");
4+
function findProjectDir() {
5+
var candidateDir = path.join(__dirname, "..");
6+
while (true) {
7+
var oldCandidateDir = candidateDir;
8+
candidateDir = path.dirname(candidateDir);
9+
if (path.basename(candidateDir) === 'node_modules') {
10+
continue;
11+
}
12+
var packageJsonFile = path.join(candidateDir, 'package.json');
13+
if (fs.existsSync(packageJsonFile)) {
14+
return candidateDir;
15+
}
16+
if (oldCandidateDir === candidateDir) {
17+
return;
18+
}
19+
}
20+
}
21+
exports.findProjectDir = findProjectDir;
22+
function getHooksDir() {
23+
return path.join(findProjectDir(), 'hooks');
24+
}
25+
exports.getHooksDir = getHooksDir;
26+
function gerBeforeLivesyncHookDir() {
27+
return path.join(getHooksDir(), "before-livesync");
28+
}
29+
exports.gerBeforeLivesyncHookDir = gerBeforeLivesyncHookDir;
30+
function getHookFilePath() {
31+
return path.join(gerBeforeLivesyncHookDir(), "nativescript-restart-on-sync-plugin.js");
32+
}
33+
exports.getHookFilePath = getHookFilePath;
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
var fs = require("fs");
2+
var os = require("os");
3+
var hookHelper = require("./hooks/hook-helper");
4+
var projectDir = hookHelper.findProjectDir();
5+
if (projectDir) {
6+
var hooksDir = hookHelper.getHooksDir(),
7+
beforeLivesyncHookDir = hookHelper.gerBeforeLivesyncHookDir(),
8+
content = 'module.exports = require("nativescript-restart-on-sync-plugin/hooks/before-livesync");';
9+
if (!fs.existsSync(hooksDir)) {
10+
fs.mkdirSync(hooksDir);
11+
}
12+
if (!fs.existsSync(beforeLivesyncHookDir)) {
13+
fs.mkdirSync(beforeLivesyncHookDir);
14+
}
15+
fs.writeFileSync(hookHelper.getHookFilePath(), content + os.EOL);
16+
}

0 commit comments

Comments
 (0)