1 | ;
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.filterWildcardImportTemplate = exports.enrichExportTemplate = exports.universalAccesorsTemplate = undefined;
|
7 |
|
8 | var _babelTemplate = require('babel-template');
|
9 |
|
10 | var _babelTemplate2 = _interopRequireDefault(_babelTemplate);
|
11 |
|
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13 |
|
14 | var universalAccesorsTemplate = exports.universalAccesorsTemplate = (0, _babelTemplate2.default)('\nvar REWIRED_DATA_IDENTIFIER = Object.create(null);\n\nvar INTENTIONAL_UNDEFINED = \'__INTENTIONAL_UNDEFINED__\';\n\nlet API_OBJECT_ID = {};\n\n(function() {\n\tfunction addPropertyToAPIObject(name, value) {\n\t\tObject.defineProperty(API_OBJECT_ID, name, { value: value, enumerable: false, configurable: true });\n\t}\n\n\taddPropertyToAPIObject(\'__get__\', UNIVERSAL_GETTER_ID);\n\taddPropertyToAPIObject(\'__GetDependency__\', UNIVERSAL_GETTER_ID);\n\taddPropertyToAPIObject(\'__Rewire__\', UNIVERSAL_SETTER_ID);\n\taddPropertyToAPIObject(\'__set__\', UNIVERSAL_SETTER_ID);\n\taddPropertyToAPIObject(\'__reset__\', UNIVERSAL_RESETTER_ID);\n\taddPropertyToAPIObject(\'__ResetDependency__\', UNIVERSAL_RESETTER_ID);\n\taddPropertyToAPIObject(\'__with__\', UNIVERSAL_WITH_ID);\n})();\n\nfunction UNIVERSAL_GETTER_ID(variableName) {\n if (REWIRED_DATA_IDENTIFIER === undefined || REWIRED_DATA_IDENTIFIER[variableName] === undefined) {\n return ORIGINAL_VARIABLE_ACCESSOR_IDENTIFIER(variableName);\n } else {\n var value = REWIRED_DATA_IDENTIFIER[variableName];\n if (value === INTENTIONAL_UNDEFINED) {\n return undefined;\n } else {\n return value;\n }\n }\n}\n\nORIGINAL_ACCESSOR\n\nfunction ASSIGNMENT_OPERATION_IDENTIFIER(variableName, value) {\n\tif(REWIRED_DATA_IDENTIFIER === undefined || REWIRED_DATA_IDENTIFIER[variableName] === undefined) {\n\t\treturn ORIGINAL_VARIABLE_SETTER_IDENTIFIER(variableName, value);\n\t} else {\n\t\treturn REWIRED_DATA_IDENTIFIER[variableName] = value;\n\t}\n}\n\nORIGINAL_SETTER;\n\nfunction UPDATE_OPERATION_IDENTIFIER(operation, variableName, prefix) {\n\tvar oldValue = UNIVERSAL_GETTER_ID(variableName);\n\tvar newValue = (operation === \'++\') ? oldValue + 1 : oldValue - 1;\n\tASSIGNMENT_OPERATION_IDENTIFIER(variableName, newValue);\n\treturn (prefix) ? newValue : oldValue;\n}\n\nfunction UNIVERSAL_SETTER_ID(variableName, value) {\n\tif(typeof variableName === \'object\') {\n\t\tObject.keys(variableName).forEach(function(name) {\n\t\t\tREWIRED_DATA_IDENTIFIER[name] = variableName[name];\n\t\t});\n\t} else {\n\t if (value === undefined) {\n\t REWIRED_DATA_IDENTIFIER[variableName] = INTENTIONAL_UNDEFINED\n\t } else {\n\t REWIRED_DATA_IDENTIFIER[variableName] = value\n\t }\n\n return function() {\n UNIVERSAL_RESETTER_ID(variableName);\n };\n\t}\n}\n\nfunction UNIVERSAL_RESETTER_ID(variableName) {\n\tdelete REWIRED_DATA_IDENTIFIER[variableName];\n}\n\nfunction UNIVERSAL_WITH_ID(object) {\n\tvar rewiredVariableNames = Object.keys(object);\n\tvar previousValues = {};\n\n\tfunction reset() {\n\t\trewiredVariableNames.forEach(function(variableName) {\n\t\t\tREWIRED_DATA_IDENTIFIER[variableName] = previousValues[variableName];\n\t\t});\n\t}\n\n\treturn function(callback) {\n\t\trewiredVariableNames.forEach(function(variableName) {\n\t\t\tpreviousValues[variableName] = REWIRED_DATA_IDENTIFIER[variableName];\n\t\t\tREWIRED_DATA_IDENTIFIER[variableName] = object[variableName];\n\t\t});\n\t\tlet result = callback();\n\t\tif(!!result && typeof result.then == \'function\') {\n\t\t\tresult.then(reset).catch(reset);\n\t\t} else {\n\t\t\treset();\n\t\t}\n\t\treturn result;\n\t}\n}\n\n\n'); /*Copyright (c) 2015, Robert Binna <r.binna@synedra.com>
|
15 |
|
16 | Permission to use, copy, modify, and/or distribute this software for any
|
17 | purpose with or without fee is hereby granted, provided that the above
|
18 | copyright notice and this permission notice appear in all copies.
|
19 |
|
20 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
21 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
22 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
23 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
24 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
25 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
26 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.*/
|
27 |
|
28 | var enrichExportTemplate = exports.enrichExportTemplate = (0, _babelTemplate2.default)('\nlet TYPEOFORIGINALEXPORTVARIABLE = typeof EXPORT_VALUE;\nfunction addNonEnumerableProperty(name, value) {\n\tObject.defineProperty(EXPORT_VALUE, name, { value: value, enumerable: false, configurable: true });\n}\n\nif((TYPEOFORIGINALEXPORTVARIABLE === \'object\' || TYPEOFORIGINALEXPORTVARIABLE === \'function\') && Object.isExtensible(EXPORT_VALUE)) {\n\taddNonEnumerableProperty(\'__get__\', UNIVERSAL_GETTER_ID);\n\taddNonEnumerableProperty(\'__GetDependency__\', UNIVERSAL_GETTER_ID);\n\taddNonEnumerableProperty(\'__Rewire__\', UNIVERSAL_SETTER_ID);\n\taddNonEnumerableProperty(\'__set__\', UNIVERSAL_SETTER_ID);\n\taddNonEnumerableProperty(\'__reset__\', UNIVERSAL_RESETTER_ID);\n\taddNonEnumerableProperty(\'__ResetDependency__\', UNIVERSAL_RESETTER_ID);\n\taddNonEnumerableProperty(\'__with__\', UNIVERSAL_WITH_ID);\n\taddNonEnumerableProperty(\'__RewireAPI__\', API_OBJECT_ID);\n}\n');
|
29 |
|
30 | var filterWildcardImportTemplate = exports.filterWildcardImportTemplate = (0, _babelTemplate2.default)('\nfunction FILTER_WILDCARD_IMPORT_IDENTIFIER(wildcardImport={}) {\n\tlet validPropertyNames = Object.keys(wildcardImport).filter(function(propertyName) {\n\t\treturn propertyName !== \'__get__\' &&\n\t\t\t\tpropertyName !== \'__set__\' &&\n\t\t\t\tpropertyName !== \'__reset__\' &&\n\t\t\t\tpropertyName !== \'__with__\' &&\n\n\t\t\t\tpropertyName !== \'__GetDependency__\' &&\n\t\t\t\tpropertyName !== \'__Rewire__\' &&\n\t\t\t\tpropertyName !== \'__ResetDependency__\' &&\n\n\t\t\t\tpropertyName !== \'__RewireAPI__\';\n\t});\n\n\treturn validPropertyNames.reduce(\n\t\tfunction(filteredWildcardImport, propertyName) {\n\t\t\tfilteredWildcardImport[propertyName] = wildcardImport[propertyName];\n\t\t\treturn filteredWildcardImport;\n\t\t}, {}\n\t);\n}\n'); |
\ | No newline at end of file |