Skip to content

Instantly share code, notes, and snippets.

@truongsinh
Created January 10, 2019 06:33
Show Gist options
  • Save truongsinh/f37ddbe37e21b5a991f3881e9b56dffd to your computer and use it in GitHub Desktop.
Save truongsinh/f37ddbe37e21b5a991f3881e9b56dffd to your computer and use it in GitHub Desktop.
#!/usr/bin/env node
const dest = __dirname + "/../packages/";
const { readdir, writeFile, exists, mkdir } = require("fs");
const { promisify } = require("util");
const [readDirAsync, writeFileAsync, existsAsync, mkdirAsync] = [
promisify(readdir),
promisify(writeFile),
promisify(exists),
promisify(mkdir)
];
function snakeToCamel(s) {
return s.replace(/(\_\w)/g, function(m) {
return m[1].toUpperCase();
});
}
function getPackageName(dirName) {
let r = snakeToCamel("_" + dirName);
switch(r) {
case 'Camera':
return 'CameraController';
case 'DeviceInfo':
return 'DeviceInfoPlugin';
case 'LocalAuth':
return 'LocalAuthentication'
case 'LocationBackground':
return 'Location'
default:
return r;
}
}
const main = async () => {
const dirList = await readDirAsync(dest);
dirList.map(async dirName => {
if (!dirName) {
return;
}
const packageName = getPackageName(dirName);
try {
const dartTestPath = __dirname + "/../packages/" + dirName + "/test";
if (!(await existsAsync(dartTestPath))) {
await mkdirAsync(dartTestPath);
}
let dirContent = await readDirAsync(dartTestPath);
if (dirContent.length !== 0) {
return;
}
const content = `
import 'package:flutter_test/flutter_test.dart';
import 'package:${dirName}/${dirName}.dart';
void main() {
test('dummy', () async {
});
}
`;
// final ${packageName} _ = ${packageName}();
await writeFileAsync(dartTestPath + "/dummy_test.dart", content);
} catch (e) {
console.log(e);
}
});
};
main();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment