1.0.1 • Published 6 years ago

ps-util-is v1.0.1

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

ps-util-is

This module copies functionality of core-util-is v1.0.2 for ExtendScript.

Installation

npm i ps-util-is

Usage

  • As a module for scripts that uses this template:
var util = require('ps-util-is');
  • As a module for scripts that uses #include:
#include "{path_to_bundle}/ps-util-is.jsx"
var util = require(ps-util-is);

typeof

The behavior of the typeof operator in ExtendScript differs from node.js:

// ExtendScript
var re = /a*/gim;
$.writeln(typeof re); // function !!!
//Node
var re = /a*/gim;
console.log(typeof re); // object

This module takes core-util-is as "source of truth", so:

// ExtendScript
var re = /a*/gim;
$.writeln(isObject(re)); // true
$.writeln(isRegExp(re)); // true
$.writeln(isFunction(re)); // false

isArray

This module will search for Array.isArray() polyfill. For example, ps-scripting-es5shim relies on __class__ property, and code in this repo relies on Object.prototype.toString

Results of core-util-is v1.0.2

CodeisArrayisBooleanisDateisErrorisFunctionisNullisNullOrUndefinedisNumberisObjectisPrimitiveisRegExpisStringisUndefined
10falsefalsefalsefalsefalsefalsefalseTRUEfalseTRUEfalsefalsefalse
new Number(10)falsefalsefalsefalsefalsefalsefalsefalseTRUEfalsefalsefalsefalse
overconfidencefalsefalsefalsefalsefalsefalsefalsefalsefalseTRUEfalseTRUEfalse
new String('overconfidence')falsefalsefalsefalsefalsefalsefalsefalseTRUEfalsefalsefalsefalse
falsefalseTRUEfalsefalsefalsefalsefalsefalsefalseTRUEfalsefalsefalse
new Boolean(false)falsefalsefalsefalsefalsefalsefalsefalseTRUEfalsefalsefalsefalse
undefinedfalsefalsefalsefalsefalsefalseTRUEfalsefalseTRUEfalsefalseTRUE
nullfalsefalsefalsefalsefalseTRUETRUEfalsefalseTRUEfalsefalsefalse
NaNfalsefalsefalsefalsefalsefalsefalseTRUEfalseTRUEfalsefalsefalse
1,2,3TRUEfalsefalsefalsefalsefalsefalsefalseTRUEfalsefalsefalsefalse
new Array(1,2,3)TRUEfalsefalsefalsefalsefalsefalsefalseTRUEfalsefalsefalsefalse
/a*/gimfalsefalsefalsefalsefalsefalsefalsefalseTRUEfalseTRUEfalsefalse
new RegExp('a*' , 'gim')falsefalsefalsefalsefalsefalsefalsefalseTRUEfalseTRUEfalsefalse
new Date(2029,1,1)falsefalseTRUEfalsefalsefalsefalsefalseTRUEfalsefalsefalsefalse
{prop: 12345}falsefalsefalsefalsefalsefalsefalsefalseTRUEfalsefalsefalsefalse
new Object({prop: 12345})falsefalsefalsefalsefalsefalsefalsefalseTRUEfalsefalsefalsefalse
function(x){return x;}falsefalsefalsefalseTRUEfalsefalsefalsefalsefalsefalsefalsefalse
new Function('x','return x;')falsefalsefalsefalseTRUEfalsefalsefalsefalsefalsefalsefalsefalse
new Error('something bad happened')falsefalsefalseTRUEfalsefalsefalsefalseTRUEfalsefalsefalsefalse

Results of ps-util-is

CodeisArrayisBooleanisDateisErrorisFunctionisNullisNullOrUndefinedisNumberisObjectisPrimitiveisRegExpisStringisSymbolisUndefined
10falsefalsefalsefalsefalsefalsefalseTRUEfalseTRUEfalsefalsefalsefalse
new Number(10)falsefalsefalsefalsefalsefalsefalsefalseTRUEfalsefalsefalsefalsefalse
overconfidencefalsefalsefalsefalsefalsefalsefalsefalsefalseTRUEfalseTRUEfalsefalse
new String('overconfidence')falsefalsefalsefalsefalsefalsefalsefalseTRUEfalsefalsefalsefalsefalse
falsefalseTRUEfalsefalsefalsefalsefalsefalsefalseTRUEfalsefalsefalsefalse
new Boolean(false)falsefalsefalsefalsefalsefalsefalsefalseTRUEfalsefalsefalsefalsefalse
undefinedfalsefalsefalsefalsefalsefalseTRUEfalsefalseTRUEfalsefalsefalseTRUE
nullfalsefalsefalsefalsefalseTRUETRUEfalsefalseTRUEfalsefalsefalsefalse
NaNfalsefalsefalsefalsefalsefalsefalseTRUEfalseTRUEfalsefalsefalsefalse
1,2,3TRUEfalsefalsefalsefalsefalsefalsefalseTRUEfalsefalsefalsefalsefalse
new Array(1,2,3)TRUEfalsefalsefalsefalsefalsefalsefalseTRUEfalsefalsefalsefalsefalse
/a*/gimfalsefalsefalsefalsefalsefalsefalsefalseTRUEfalseTRUEfalsefalsefalse
new RegExp('a*' , 'gim')falsefalsefalsefalsefalsefalsefalsefalseTRUEfalseTRUEfalsefalsefalse
new Date(2029,1,1)falsefalseTRUEfalsefalsefalsefalsefalseTRUEfalsefalsefalsefalsefalse
{prop: 12345}falsefalsefalsefalsefalsefalsefalsefalseTRUEfalsefalsefalsefalsefalse
new Object({prop: 12345})falsefalsefalsefalsefalsefalsefalsefalseTRUEfalsefalsefalsefalsefalse
function(x){return x;}falsefalsefalsefalseTRUEfalsefalsefalsefalsefalsefalsefalsefalsefalse
new Function('x','return x;')falsefalsefalsefalseTRUEfalsefalsefalsefalsefalsefalsefalsefalsefalse
new Error('something bad happened')falsefalsefalseTRUEfalsefalsefalsefalseTRUEfalsefalsefalsefalsefalse

Tests

Tests will be kept only in github repo. If you want to test on another dataset do the following steps:

1) Get files from this repo, then npm install 2) ./test/data/test_data.js change data as you need. 3) OPTIONAL nmp run watch just in case (rebuild bundles). 4) run ./build/test_bundle.jsx in ESTK, or in target app. This will rewrite ./test/data/ps-util-is-result.js 5) npm test see test results in console