39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
var fs = require('fs');
 | 
						|
var path = require('canonical-path');
 | 
						|
 | 
						|
/**
 | 
						|
 * Load information about this project from the pubspec.yaml
 | 
						|
 * @return {Object} The package information
 | 
						|
 */
 | 
						|
module.exports = function packageInfo() {
 | 
						|
  const ngPath = '../angular-dart';
 | 
						|
  const angularPubspec = path.join(ngPath, 'pubspec.yaml');
 | 
						|
  const pubspec = fs.readFileSync(angularPubspec, 'UTF-8').split('\n');
 | 
						|
 | 
						|
  const info = {
 | 
						|
    version: _get(pubspec, 'version'),
 | 
						|
    repository: {
 | 
						|
      type: 'git', //? 'pub' @ 'https://pub.dartlang.org/packages/angular2'
 | 
						|
      // Not sure `url has a user visible impact on the generated cheatsheet. 
 | 
						|
      url: 'https://github.com/angular/angular.git', 
 | 
						|
    }
 | 
						|
  };
 | 
						|
  return info;
 | 
						|
}
 | 
						|
 | 
						|
// Array.prototype.find doesn't seem to be working.
 | 
						|
// console.error([1, 'a', 2].find((x) => x === 'a')); // --> -1
 | 
						|
function _find(arr, test) {
 | 
						|
  for (let x of arr) {
 | 
						|
    // console.error(`Looking at: ${x}`);
 | 
						|
    if (test(x)) return x;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
function _get(lines, tag) {
 | 
						|
  const line = _find(lines, (line) => line.startsWith(tag));
 | 
						|
  return line.match(/^\w+: (.*)/)[1] || 'unknown';
 | 
						|
}
 |