Skip to content

Commit

Permalink
#12: use global in different environments
Browse files Browse the repository at this point in the history
  • Loading branch information
uNmAnNeR committed Dec 3, 2017
1 parent c131dfd commit 1a7f87b
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 18 deletions.
10 changes: 9 additions & 1 deletion src/core/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,4 +73,12 @@ function objectIncludes (b, a) {
}

return false;
}
}

/* eslint-disable no-undef */
export
const g = typeof window !== 'undefined' && window ||
typeof global !== 'undefined' && global.global === global && global ||
typeof self !== 'undefined' && self.self === self && self ||
{};
/* eslint-enable no-undef */
10 changes: 7 additions & 3 deletions src/imask.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
import {g} from './core/utils.js';

import InputMask from './controls/input.js';

import Masked from './masked/base.js';
import MaskedPattern from './masked/pattern.js';
import MaskedNumber from './masked/number.js';
import MaskedDate from './masked/date.js';
import MaskedRegExp from './masked/regexp.js';
import MaskedFunction from './masked/function.js';
import MaskedDynamic from './masked/dynamic.js';

import InputMask from './controls/input.js';
import createMask from './masked/factory.js';


export default
Expand All @@ -25,5 +28,6 @@ IMask.MaskedDate = MaskedDate;
IMask.MaskedRegExp = MaskedRegExp;
IMask.MaskedFunction = MaskedFunction;
IMask.MaskedDynamic = MaskedDynamic;
IMask.createMask = createMask;

window.IMask = IMask;
g.IMask = IMask;
24 changes: 10 additions & 14 deletions src/masked/factory.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
import {isString} from '../core/utils.js';
import Masked from './base.js';
import MaskedRegExp from './regexp.js';
import MaskedFunction from './function.js';
import MaskedNumber from './number.js';
import {g, isString} from '../core/utils.js';


export
Expand All @@ -11,16 +7,16 @@ function maskedClass (mask) {
throw new Error('mask property should be defined');
}

if (mask instanceof RegExp) return MaskedRegExp;
if (isString(mask)) return IMask.MaskedPattern;
if (mask.prototype instanceof Masked) return mask;
if (Array.isArray(mask) || mask === Array) return IMask.MaskedDynamic;
if (mask instanceof Number || typeof mask === 'number' || mask === Number) return MaskedNumber;
if (mask instanceof Date || mask === Date) return IMask.MaskedDate;
if (mask instanceof Function) return MaskedFunction;
if (mask instanceof RegExp) return g.IMask.MaskedRegExp;
if (isString(mask)) return g.IMask.MaskedPattern;
if (mask.prototype instanceof g.IMask.Masked) return mask;
if (Array.isArray(mask) || mask === Array) return g.IMask.MaskedDynamic;
if (mask instanceof Number || typeof mask === 'number' || mask === Number) return g.IMask.MaskedNumber;
if (mask instanceof Date || mask === Date) return g.IMask.MaskedDate;
if (mask instanceof Function) return g.IMask.MaskedFunction;

console.warn('Mask not found for mask', mask); // eslint-disable-line no-console
return Masked;
return g.IMask.Masked;
}


Expand All @@ -29,7 +25,7 @@ function createMask (opts) {
opts = Object.assign({}, opts); // clone
const mask = opts.mask;

if (mask instanceof Masked) return mask;
if (mask instanceof g.IMask.Masked) return mask;

const MaskedClass = maskedClass(mask);
return new MaskedClass(opts);
Expand Down

0 comments on commit 1a7f87b

Please sign in to comment.