Files
Erjan Gavalji fa14d4d4b0 Make declaration package have the version of the main repo package.json
Read the version field of the extracted tns-core-modules package
and set it to the declarations package.json
Remove the redundant run.sh file
2016-03-30 10:29:49 +03:00

164 lines
4.6 KiB
JavaScript

module.exports = function(grunt) {
var fsModule = require("fs");
var masterPackageVersion = "";
function updatePackageJson(content, srcPath) {
var contentAsJson = JSON.parse(content);
delete contentAsJson.devDependencies;
contentAsJson.version = masterPackageVersion;
return JSON.stringify(contentAsJson, null, "\t");
}
function readMasterPackageVersion(content, srcPath) {
var contentAsJson = JSON.parse(content);
masterPackageVersion = contentAsJson.version;
return content;
}
function isDiff(content, srcPath) {
var relativePath = srcPath.replace(/actuals\//, "");
var extractedRelativePath = "extracted/package/" + relativePath;
grunt.log.fail(extractedRelativePath);
try {
if (fsModule.statSync(extractedRelativePath)) {
return false;
}
} catch (ex) {
if (content.match(/\s*\/\/@private.*/)) {
return false;
}
return content;
}
return false;
}
grunt.initConfig({
copy: {
package: {
src: "../../bin/dist/tns-core-modules*.tgz",
dest: "./tns-core-modules.tgz"
},
packagejson: {
expand: true,
src: "./package.json",
dest: "./diffs/",
options: {
process: updatePackageJson
}
},
actualDeclaraions: {
expand: true,
src: [
"**/*.d.ts",
"!bin/**/*.*",
"!.git/**/*.*",
"!node_modules/**/*.*",
"!apps/**/*.*",
"!node-tests/**/*.*",
"!**/*.android.d.ts",
"!**/*.ios.d.ts",
"!build/**/*.*"
],
dest: "./actuals",
cwd: "../../"
},
differentNoPrivateFiles: {
expand: true,
src: "./**/*.*",
dest: "./diffs/",
cwd: "./actuals",
options: {
process: isDiff
}
},
packeddeclarations: {
expand: true,
src: "./*.tgz",
dest: "./",
cwd: "./diffs"
},
readMasterPackageVersion: {
expand: true,
src: "./package.json",
dest: "./extracted/package/",
cwd: "./extracted/package",
options: {
process: readMasterPackageVersion
}
}
},
shell: {
unpackPackage: {
command: "tar -zxvf tns-core-modules.tgz -C ./extracted"
},
createExtractedDir: {
command: "mkdir ./extracted"
},
createActualsDir: {
command: "mkdir ./actuals"
},
createDiffsDir: {
command: "mkdir ./diffs"
},
packdeclarations: {
command: "npm pack",
options: {
execOptions: {
cwd: "./diffs"
}
}
}
},
clean: {
package: {
src: "./tns-core-modules.tgz"
},
extractedDir: {
src: "./extracted"
},
actualsDir: {
src: "./actuals"
},
diffsDir: {
src: ["./diffs/**/*.*", "./diffs"]
},
extractedNonDeclarations: {
src: ["./extracted/**/*.*", "!./extracted/**/*.d.ts"]
}
}
});
grunt.loadNpmTasks("grunt-shell");
grunt.loadNpmTasks("grunt-contrib-copy");
grunt.loadNpmTasks("grunt-contrib-clean");
grunt.registerTask("default", [
"clean:extractedDir",
"clean:actualsDir",
"clean:diffsDir",
"clean:package",
"copy:package",
"shell:createExtractedDir",
"shell:unpackPackage",
"clean:package",
"copy:readMasterPackageVersion",
"clean:extractedNonDeclarations",
"shell:createActualsDir",
"copy:actualDeclaraions",
"shell:createDiffsDir",
"copy:differentNoPrivateFiles",
"clean:extractedDir",
"clean:actualsDir",
"copy:packagejson",
"shell:packdeclarations",
"copy:packeddeclarations",
"clean:diffsDir",
]);
}