mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 03:31:45 +08:00

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
164 lines
4.6 KiB
JavaScript
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",
|
|
]);
|
|
}
|