-
-
Save frank-dspeed/048ab4b78759f8df9492f9fd9a9ae48b to your computer and use it in GitHub Desktop.
codemods
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var source = `var stealTools = require("steal-tools"); | |
stealTools.export({ | |
steal: { | |
config: __dirname + "/package.json!npm" | |
}, | |
outputs: { | |
"+cjs": {}, | |
"+amd": {}, | |
"+global-js": {} | |
} | |
}).catch(function(e){ | |
setTimeout(function(){ | |
throw e; | |
},1); | |
}); | |
`; | |
var fs = require('fs') | |
var path = require('path') | |
module.exports = { | |
getOptions() { return []; }, | |
run: function (directory, options) { | |
var text = options.content | |
var filepath = path.join(directory, 'build.js') | |
return new Promise(function (resolve, reject) { | |
fs.writeFile(filepath, source, function (error) { | |
error ? reject(error) : resolve() | |
}) | |
}) | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module.exports = function transformer(file, api) { | |
var src = file.source; | |
try { | |
src = JSON.parse(src); | |
// add scripts | |
Object.assign(src.scripts, { | |
"preversion": "npm test && npm run build", | |
"version": "git commit -am \"Update dist for release\" && git checkout -b release && git add -f dist/", | |
"postversion": "git push --tags && git checkout master && git branch -D release && git push", | |
"release:pre": "npm version prerelease && npm publish --tag=pre", | |
"release:patch": "npm version patch && npm publish", | |
"release:minor": "npm version minor && npm publish", | |
"release:major": "npm version major && npm publish" | |
}); | |
// print result with 2-space indentation | |
src = JSON.stringify(src, null, ' '); | |
} catch(e) { | |
console.error(e); | |
} | |
return src; | |
}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// latest versions from canjs/canjs 3.8.2 package.json | |
const canjsCanjsDeps = { | |
"can-cid": "1.0.3", | |
"can-component": "3.0.7", | |
"can-compute": "3.0.10", | |
"can-connect": "1.3.11", | |
"can-connect-feathers": "3.5.5", | |
"can-connect-cloneable": "0.1.3", | |
"can-connect-signalr": "0.1.0", | |
"can-construct": "3.1.1", | |
"can-construct-super": "3.0.3", | |
"can-control": "3.0.10", | |
"can-define": "1.0.26", | |
"can-define-stream": "0.1.1", | |
"can-define-stream-kefir": "0.0.9", | |
"can-define-validate-validatejs": "0.0.5", | |
"can-deparam": "1.0.1", | |
"can-ejs": "3.0.7", | |
"can-event": "3.4.0", | |
"can-fixture": "1.0.14", | |
"can-fixture-socket": "0.6.2", | |
"can-jquery": "3.0.7", | |
"can-list": "3.0.5", | |
"can-map": "3.0.7", | |
"can-map-backup": "3.0.3", | |
"can-map-define": "3.0.9", | |
"can-namespace": "1.0.0", | |
"can-observation": "3.1.5", | |
"can-param": "1.0.1", | |
"can-route": "3.0.11", | |
"can-route-pushstate": "3.0.3", | |
"can-set": "1.2.0", | |
"can-simple-dom": "1.0.8", | |
"can-simple-map": "3.1.4", | |
"can-stache": "3.0.24", | |
"can-stache-bindings": "3.1.5", | |
"can-stache-converters": "3.1.0", | |
"can-stream": "0.2.3", | |
"can-stream-kefir": "0.2.3", | |
"can-types": "1.0.4", | |
"can-util": "3.7.0", | |
"can-validate": "1.0.2", | |
"can-validate-legacy": "1.0.2", | |
"can-validate-validatejs": "0.0.6", | |
"can-vdom": "3.0.3", | |
"can-view-autorender": "3.0.4", | |
"can-view-callbacks": "3.0.6", | |
"can-view-href": "3.0.4", | |
"can-view-import": "3.0.7", | |
"can-view-live": "3.0.7", | |
"can-view-model": "3.1.3", | |
"can-view-nodelist": "3.0.4", | |
"can-view-parser": "3.1.0", | |
"can-view-scope": "3.1.4", | |
"can-view-target": "3.0.7", | |
"can-zone": "0.6.7", | |
"steal-stache": "3.0.7" | |
}; | |
// these depend on can-types, so must be updated in order to avoid | |
// "cannot have two versions of can-types" errors | |
const requiredDeps = [ | |
"can-component", | |
"can-compute", | |
"can-connect", | |
"can-construct", | |
"can-control", | |
"can-define", | |
"can-event", | |
"can-event-radiochange", | |
"can-list", | |
"can-make-rest", | |
"can-map", | |
"can-map-define", | |
"can-observation", | |
"can-reflect", | |
"can-route", | |
"can-route-pushstate", | |
"can-set", | |
"can-simple-map", | |
"can-stache", | |
"can-stache-bindings", | |
"can-symbol", | |
"can-types", | |
"can-util", | |
"can-vdom", | |
"can-view-autorender", | |
"can-view-callbacks", | |
"can-view-href", | |
"can-view-import", | |
"can-view-live", | |
"can-view-model", | |
"can-view-nodelist", | |
"can-view-parser", | |
"can-view-scope", | |
"can-view-target", | |
"steal-stache" | |
]; | |
function updateVersions(deps) { | |
const newDeps = {}; | |
Object.keys(deps).forEach((dep) => { | |
// if dep exists in canjsDeps, set it to that version | |
// otherwise, keep existing version | |
newDeps[dep] = canjsCanjsDeps[dep] || deps[dep]; | |
}); | |
return newDeps; | |
} | |
function addMissingRequiredDependencies(deps) { | |
const newDeps = Object.assign({}, deps); | |
// make sure all required deps are added | |
requiredDeps.forEach((dep) => { | |
newDeps[dep] = canjsCanjsDeps[dep]; | |
}); | |
return newDeps; | |
} | |
module.exports = function transformer(file, api) { | |
let src = file.source; | |
try { | |
src = JSON.parse(src); | |
src.dependencies = updateVersions(src.dependencies); | |
src.devDependencies = updateVersions(src.devDependencies); | |
src.dependencies = addMissingRequiredDependencies(src.dependencies); | |
// print result with 2-space indentation | |
src = JSON.stringify(src, null, ' '); | |
} catch(e) { | |
console.error(e); | |
} | |
return src; | |
}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function removePreReleases(deps) { | |
var newDeps = {}; | |
Object.keys(deps).forEach((dep) => { | |
newDeps[dep] = deps[dep].replace(/-pre.*/, ''); | |
}); | |
return newDeps; | |
} | |
module.exports = function transformer(file, api) { | |
var src = file.source; | |
try { | |
src = JSON.parse(src); | |
// remove -pre... from dependencies/devDependencies | |
src.dependencies = removePreReleases(src.dependencies); | |
src.devDependencies = removePreReleases(src.devDependencies); | |
// print result with 2-space indentation | |
src = JSON.stringify(src, null, ' '); | |
} catch(e) { | |
console.error(e); | |
} | |
return src; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment