1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-24 10:27:10 +02:00
joplin/packages/tools/licenses/utils/matchMit.ts

28 lines
944 B
TypeScript
Raw Normal View History

import mit from '../licenseText/mit';
import equalIgnoringSpacing from './equalIgnoringSpacing';
const matchMit = (licenseText: string) => {
licenseText = licenseText.trim();
// Match headers similar to "MIT License" and "(The MIT License)"
const headerRegex = /^.?(?:The )?(?:MIT License)?(?: .MIT.)?.?[\r\n \t]+/;
licenseText = licenseText.replace(headerRegex, '');
const baseMitLicense = mit('[[copyright here]]').trim().replace(headerRegex, '');
const copyrightRegex = /^(Copyright .*)[\n]/i;
const baseLicenseWithoutCopyright = baseMitLicense.replace(copyrightRegex, '');
const testLicenseTextWithoutCopyright = licenseText.replace(copyrightRegex, '');
const copyrightMatch = copyrightRegex.exec(licenseText);
if (copyrightMatch && equalIgnoringSpacing(baseLicenseWithoutCopyright, testLicenseTextWithoutCopyright)) {
return {
copyright: copyrightMatch[1],
};
} else {
return null;
}
};
export default matchMit;