Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
todomvc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Eugene Shen
todomvc
Commits
a5d0ac74
Commit
a5d0ac74
authored
May 22, 2014
by
Pascal Hartig
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Flight: Update dependencies
parent
2e2ee2b3
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
295 additions
and
189 deletions
+295
-189
dependency-examples/flight/bower_components/flight/lib/base.js
...dency-examples/flight/bower_components/flight/lib/base.js
+26
-8
dependency-examples/flight/bower_components/flight/lib/component.js
...-examples/flight/bower_components/flight/lib/component.js
+32
-16
dependency-examples/flight/bower_components/flight/lib/compose.js
...cy-examples/flight/bower_components/flight/lib/compose.js
+5
-5
dependency-examples/flight/bower_components/flight/lib/debug.js
...ency-examples/flight/bower_components/flight/lib/debug.js
+31
-23
dependency-examples/flight/bower_components/flight/lib/logger.js
...ncy-examples/flight/bower_components/flight/lib/logger.js
+42
-30
dependency-examples/flight/bower_components/flight/lib/registry.js
...y-examples/flight/bower_components/flight/lib/registry.js
+6
-0
dependency-examples/flight/bower_components/flight/lib/utils.js
...ency-examples/flight/bower_components/flight/lib/utils.js
+29
-1
dependency-examples/flight/bower_components/jquery/jquery.js
dependency-examples/flight/bower_components/jquery/jquery.js
+0
-0
dependency-examples/flight/bower_components/requirejs-text/text.js
...y-examples/flight/bower_components/requirejs-text/text.js
+12
-8
dependency-examples/flight/bower_components/requirejs/require.js
...ncy-examples/flight/bower_components/requirejs/require.js
+112
-98
No files found.
dependency-examples/flight/bower_components/flight/lib/base.js
View file @
a5d0ac74
...
...
@@ -41,6 +41,12 @@ define(
}
}
function
proxyEventTo
(
targetEvent
)
{
return
function
(
e
,
data
)
{
$
(
e
.
target
).
trigger
(
targetEvent
,
data
);
};
}
function
withBase
()
{
// delegate trigger, bind and unbind to an element
...
...
@@ -99,6 +105,8 @@ define(
originalCb
=
utils
.
delegate
(
this
.
resolveDelegateRules
(
origin
)
);
}
else
if
(
typeof
origin
==
'
string
'
)
{
originalCb
=
proxyEventTo
(
origin
);
}
else
{
originalCb
=
origin
;
}
...
...
@@ -117,16 +125,13 @@ define(
callback
=
originalCb
.
bind
(
this
);
callback
.
target
=
originalCb
;
// if the original callback is already branded by jQuery's guid, copy it to the context-bound version
if
(
originalCb
.
guid
)
{
callback
.
guid
=
originalCb
.
guid
;
}
callback
.
context
=
this
;
$element
.
on
(
type
,
callback
);
// get jquery's guid from our bound fn, so unbinding will work
originalCb
.
guid
=
callback
.
guid
;
// store every bound version of the callback
originalCb
.
bound
||
(
originalCb
.
bound
=
[]);
originalCb
.
bound
.
push
(
callback
);
return
callback
;
};
...
...
@@ -148,6 +153,19 @@ define(
type
=
arguments
[
0
];
}
if
(
callback
)
{
//this callback may be the original function or a bound version
var
boundFunctions
=
callback
.
target
?
callback
.
target
.
bound
:
callback
.
bound
||
[];
//set callback to version bound against this instance
boundFunctions
&&
boundFunctions
.
some
(
function
(
fn
,
i
,
arr
)
{
if
(
fn
.
context
&&
(
this
.
identity
==
fn
.
context
.
identity
))
{
arr
.
splice
(
i
,
1
);
callback
=
fn
;
return
true
;
}
},
this
);
}
return
$element
.
off
(
type
,
callback
);
};
...
...
@@ -158,7 +176,7 @@ define(
if
(
!
(
r
in
this
.
attr
))
{
throw
new
Error
(
'
Component "
'
+
this
.
toString
()
+
'
" wants to listen on "
'
+
r
+
'
" but no such attribute was defined.
'
);
}
rules
[
this
.
attr
[
r
]]
=
ruleInfo
[
r
];
rules
[
this
.
attr
[
r
]]
=
(
typeof
ruleInfo
[
r
]
==
'
string
'
)
?
proxyEventTo
(
ruleInfo
[
r
])
:
ruleInfo
[
r
];
},
this
);
return
rules
;
...
...
dependency-examples/flight/bower_components/flight/lib/component.js
View file @
a5d0ac74
...
...
@@ -27,7 +27,11 @@ define(
componentInfo
&&
Object
.
keys
(
componentInfo
.
instances
).
forEach
(
function
(
k
)
{
var
info
=
componentInfo
.
instances
[
k
];
info
.
instance
.
teardown
();
// It's possible that a previous teardown caused another component to teardown,
// so we can't assume that the instances object is as it was.
if
(
info
&&
info
.
instance
)
{
info
.
instance
.
teardown
();
}
});
}
...
...
@@ -65,37 +69,49 @@ define(
}.
bind
(
this
));
}
function
prettyPrintMixins
()
{
//could be called from constructor or constructor.prototype
var
mixedIn
=
this
.
mixedIn
||
this
.
prototype
.
mixedIn
||
[];
return
mixedIn
.
map
(
function
(
mixin
)
{
if
(
mixin
.
name
==
null
)
{
// function name property not supported by this browser, use regex
var
m
=
mixin
.
toString
().
match
(
functionNameRegEx
);
return
(
m
&&
m
[
1
])
?
m
[
1
]
:
''
;
}
else
{
return
(
mixin
.
name
!=
'
withBase
'
)
?
mixin
.
name
:
''
;
}
}).
filter
(
Boolean
).
join
(
'
,
'
);
};
// define the constructor for a custom component type
// takes an unlimited number of mixin functions as arguments
// typical api call with 3 mixins: define(timeline, withTweetCapability, withScrollCapability);
function
define
(
/*mixins*/
)
{
// unpacking arguments by hand benchmarked faster
var
l
=
arguments
.
length
;
// add three for common mixins
var
mixins
=
new
Array
(
l
+
3
);
var
mixins
=
new
Array
(
l
);
for
(
var
i
=
0
;
i
<
l
;
i
++
)
mixins
[
i
]
=
arguments
[
i
];
var
Component
=
function
()
{};
Component
.
toString
=
Component
.
prototype
.
toString
=
function
()
{
var
prettyPrintMixins
=
mixins
.
map
(
function
(
mixin
)
{
if
(
mixin
.
name
==
null
)
{
// function name property not supported by this browser, use regex
var
m
=
mixin
.
toString
().
match
(
functionNameRegEx
);
return
(
m
&&
m
[
1
])
?
m
[
1
]
:
''
;
}
else
{
return
(
mixin
.
name
!=
'
withBase
'
)
?
mixin
.
name
:
''
;
}
}).
filter
(
Boolean
).
join
(
'
,
'
);
return
prettyPrintMixins
;
};
Component
.
toString
=
Component
.
prototype
.
toString
=
prettyPrintMixins
;
if
(
debug
.
enabled
)
{
Component
.
describe
=
Component
.
prototype
.
describe
=
Component
.
toString
();
}
// 'options' is optional hash to be merged with 'defaults' in the component definition
Component
.
attachTo
=
attachTo
;
// enables extension of existing "base" Components
Component
.
mixin
=
function
()
{
var
newComponent
=
define
();
//TODO: fix pretty print
var
newPrototype
=
Object
.
create
(
Component
.
prototype
);
newPrototype
.
mixedIn
=
[].
concat
(
Component
.
prototype
.
mixedIn
);
compose
.
mixin
(
newPrototype
,
arguments
);
newComponent
.
prototype
=
newPrototype
;
newComponent
.
prototype
.
constructor
=
newComponent
;
return
newComponent
;
};
Component
.
teardownAll
=
teardownAll
;
// prepend common mixins to supplied list, then mixin all flavors
...
...
dependency-examples/flight/bower_components/flight/lib/compose.js
View file @
a5d0ac74
...
...
@@ -65,13 +65,13 @@ define(
function
mixin
(
base
,
mixins
)
{
base
.
mixedIn
=
base
.
hasOwnProperty
(
'
mixedIn
'
)
?
base
.
mixedIn
:
[];
mixins
.
forEach
(
function
(
mixin
)
{
if
(
base
.
mixedIn
.
indexOf
(
mixin
)
==
-
1
)
{
for
(
var
i
=
0
;
i
<
mixins
.
length
;
i
++
)
{
if
(
base
.
mixedIn
.
indexOf
(
mixin
s
[
i
]
)
==
-
1
)
{
setPropertyWritability
(
base
,
false
);
mixin
.
call
(
base
);
base
.
mixedIn
.
push
(
mixin
);
mixin
s
[
i
]
.
call
(
base
);
base
.
mixedIn
.
push
(
mixin
s
[
i
]
);
}
}
);
}
setPropertyWritability
(
base
,
true
);
}
...
...
dependency-examples/flight/bower_components/flight/lib/debug.js
View file @
a5d0ac74
...
...
@@ -11,9 +11,9 @@ define(
function
()
{
'
use strict
'
;
//
******************************************************************************************
//
==========================================
// Search object model
//
******************************************************************************************
//
==========================================
function
traverse
(
util
,
searchTerm
,
options
)
{
options
=
options
||
{};
...
...
@@ -53,17 +53,17 @@ define(
function
byValueCoerced
(
searchTerm
,
options
)
{
search
(
'
valueCoerced
'
,
null
,
searchTerm
,
options
);}
function
custom
(
fn
,
options
)
{
traverse
(
fn
,
null
,
options
);}
//
******************************************************************************************
//
==========================================
// Event logging
//
******************************************************************************************
//
==========================================
var
ALL
=
'
all
'
;
//no filter
//
no logg
ing by default
var
defaultEventNamesFilter
=
[];
var
defaultActionsFilter
=
[];
var
logFilter
=
retrieveLogFilter
();
//
log noth
ing by default
var
logFilter
=
{
eventNames
:
[],
actions
:
[]
}
function
filterEventLogsByAction
(
/*actions*/
)
{
var
actions
=
[].
slice
.
call
(
arguments
);
...
...
@@ -94,26 +94,32 @@ define(
}
function
saveLogFilter
()
{
if
(
window
.
localStorage
)
{
localStorage
.
setItem
(
'
logFilter_eventNames
'
,
logFilter
.
eventNames
);
localStorage
.
setItem
(
'
logFilter_actions
'
,
logFilter
.
actions
);
}
try
{
if
(
window
.
localStorage
)
{
localStorage
.
setItem
(
'
logFilter_eventNames
'
,
logFilter
.
eventNames
);
localStorage
.
setItem
(
'
logFilter_actions
'
,
logFilter
.
actions
);
}
}
catch
(
ignored
)
{};
}
function
retrieveLogFilter
()
{
var
result
=
{
eventNames
:
(
window
.
localStorage
&&
localStorage
.
getItem
(
'
logFilter_eventNames
'
))
||
defaultEventNamesFilter
,
actions
:
(
window
.
localStorage
&&
localStorage
.
getItem
(
'
logFilter_actions
'
))
||
defaultActionsFilter
};
// reconstitute arrays
Object
.
keys
(
result
).
forEach
(
function
(
k
)
{
var
thisProp
=
result
[
k
];
var
eventNames
,
actions
;
try
{
eventNames
=
(
window
.
localStorage
&&
localStorage
.
getItem
(
'
logFilter_eventNames
'
));
actions
=
(
window
.
localStorage
&&
localStorage
.
getItem
(
'
logFilter_actions
'
));
}
catch
(
ignored
)
{
return
;
}
eventNames
&&
(
logFilter
.
eventNames
=
eventNames
);
actions
&&
(
logFilter
.
actions
=
actions
);
// reconstitute arrays in place
Object
.
keys
(
logFilter
).
forEach
(
function
(
k
)
{
var
thisProp
=
logFilter
[
k
];
if
(
typeof
thisProp
==
'
string
'
&&
thisProp
!==
ALL
)
{
result
[
k
]
=
thisProp
.
split
(
'
,
'
)
;
logFilter
[
k
]
=
thisProp
?
thisProp
.
split
(
'
,
'
)
:
[]
;
}
});
return
result
;
}
return
{
...
...
@@ -126,6 +132,8 @@ define(
console
.
info
(
'
You can configure event logging with DEBUG.events.logAll()/logNone()/logByName()/logByAction()
'
);
}
retrieveLogFilter
();
window
.
DEBUG
=
this
;
},
...
...
dependency-examples/flight/bower_components/flight/lib/logger.js
View file @
a5d0ac74
...
...
@@ -27,47 +27,54 @@ define(
}
function
log
(
action
,
component
,
eventArgs
)
{
var
name
,
elem
,
fn
,
logFilter
,
toRegExp
,
actionLoggable
,
nameLoggable
;
if
(
!
window
.
DEBUG
||
!
window
.
DEBUG
.
enabled
)
return
;
var
name
,
eventType
,
elem
,
fn
,
payload
,
logFilter
,
toRegExp
,
actionLoggable
,
nameLoggable
,
info
;
if
(
typeof
eventArgs
[
eventArgs
.
length
-
1
]
==
'
function
'
)
{
fn
=
eventArgs
.
pop
();
fn
=
fn
.
unbound
||
fn
;
// use unbound version if any (better info)
}
if
(
typeof
eventArgs
[
eventArgs
.
length
-
1
]
==
'
object
'
)
{
eventArgs
.
pop
();
// trigger data arg - not logged right now
}
if
(
eventArgs
.
length
==
2
)
{
elem
=
eventArgs
[
0
];
name
=
eventArgs
[
1
];
}
else
{
if
(
eventArgs
.
length
==
1
)
{
elem
=
component
.
$node
[
0
];
eventType
=
eventArgs
[
0
];
}
else
if
((
eventArgs
.
length
==
2
)
&&
typeof
eventArgs
[
1
]
==
'
object
'
&&
!
eventArgs
[
1
].
type
)
{
//2 args, first arg is not elem
elem
=
component
.
$node
[
0
];
name
=
eventArgs
[
0
];
eventType
=
eventArgs
[
0
];
if
(
action
==
"
trigger
"
)
{
payload
=
eventArgs
[
1
];
}
}
else
{
//2+ args, first arg is elem
elem
=
eventArgs
[
0
];
eventType
=
eventArgs
[
1
];
if
(
action
==
"
trigger
"
)
{
payload
=
eventArgs
[
2
];
}
}
if
(
window
.
DEBUG
&&
window
.
DEBUG
.
enabled
)
{
logFilter
=
DEBUG
.
events
.
logFilter
;
name
=
typeof
eventType
==
'
object
'
?
eventType
.
type
:
eventType
;
// no regex for you, actions...
actionLoggable
=
logFilter
.
actions
==
'
all
'
||
(
logFilter
.
actions
.
indexOf
(
action
)
>
-
1
);
// event name filter allow wildcards or regex...
toRegExp
=
function
(
expr
)
{
return
expr
.
test
?
expr
:
new
RegExp
(
'
^
'
+
expr
.
replace
(
/
\*
/g
,
'
.*
'
)
+
'
$
'
);
};
nameLoggable
=
logFilter
.
eventNames
==
'
all
'
||
logFilter
.
eventNames
.
some
(
function
(
e
)
{
return
toRegExp
(
e
).
test
(
name
);});
logFilter
=
DEBUG
.
events
.
logFilter
;
if
(
actionLoggable
&&
nameLoggable
)
{
console
.
info
(
actionSymbols
[
action
],
action
,
'
[
'
+
name
+
'
]
'
,
elemToString
(
elem
),
component
.
constructor
.
describe
.
split
(
'
'
).
slice
(
0
,
3
).
join
(
'
'
)
// two mixins only
);
}
// no regex for you, actions...
actionLoggable
=
logFilter
.
actions
==
'
all
'
||
(
logFilter
.
actions
.
indexOf
(
action
)
>
-
1
);
// event name filter allow wildcards or regex...
toRegExp
=
function
(
expr
)
{
return
expr
.
test
?
expr
:
new
RegExp
(
'
^
'
+
expr
.
replace
(
/
\*
/g
,
'
.*
'
)
+
'
$
'
);
};
nameLoggable
=
logFilter
.
eventNames
==
'
all
'
||
logFilter
.
eventNames
.
some
(
function
(
e
)
{
return
toRegExp
(
e
).
test
(
name
);});
if
(
actionLoggable
&&
nameLoggable
)
{
info
=
[
actionSymbols
[
action
],
action
,
'
[
'
+
name
+
'
]
'
];
payload
&&
info
.
push
(
payload
);
info
.
push
(
elemToString
(
elem
));
info
.
push
(
component
.
constructor
.
describe
.
split
(
'
'
).
slice
(
0
,
3
).
join
(
'
'
));
console
.
groupCollapsed
&&
action
==
'
trigger
'
&&
console
.
groupCollapsed
(
action
,
name
);
console
.
info
.
apply
(
console
,
info
);
}
}
...
...
@@ -75,6 +82,11 @@ define(
this
.
before
(
'
trigger
'
,
function
()
{
log
(
'
trigger
'
,
this
,
utils
.
toArray
(
arguments
));
});
if
(
console
.
groupCollapsed
)
{
this
.
after
(
'
trigger
'
,
function
()
{
console
.
groupEnd
();
});
}
this
.
before
(
'
on
'
,
function
()
{
log
(
'
on
'
,
this
,
utils
.
toArray
(
arguments
));
});
...
...
dependency-examples/flight/bower_components/flight/lib/registry.js
View file @
a5d0ac74
...
...
@@ -151,6 +151,12 @@ define(
return
this
.
allInstances
[
instance
.
identity
]
||
null
;
};
this
.
getBoundEventNames
=
function
(
instance
)
{
return
this
.
findInstanceInfo
(
instance
).
events
.
map
(
function
(
ev
)
{
return
ev
.
type
;
});
};
this
.
findInstanceInfoByNode
=
function
(
node
)
{
var
result
=
[];
Object
.
keys
(
this
.
allInstances
).
forEach
(
function
(
k
)
{
...
...
dependency-examples/flight/bower_components/flight/lib/utils.js
View file @
a5d0ac74
...
...
@@ -219,13 +219,41 @@ define(
var
target
=
$
(
e
.
target
),
parent
;
Object
.
keys
(
rules
).
forEach
(
function
(
selector
)
{
if
((
parent
=
target
.
closest
(
selector
)).
length
)
{
if
(
!
e
.
isPropagationStopped
()
&&
(
parent
=
target
.
closest
(
selector
)).
length
)
{
data
=
data
||
{};
data
.
el
=
parent
[
0
];
return
rules
[
selector
].
apply
(
this
,
[
e
,
data
]);
}
},
this
);
};
},
// ensures that a function will only be called once.
// usage:
// will only create the application once
// var initialize = utils.once(createApplication)
// initialize();
// initialize();
//
// will only delete a record once
// var myHanlder = function () {
// $.ajax({type: 'DELETE', url: 'someurl.com', data: {id: 1}});
// };
// this.on('click', utils.once(myHandler));
//
once
:
function
(
func
)
{
var
ran
,
result
;
return
function
()
{
if
(
ran
)
{
return
result
;
}
ran
=
true
;
result
=
func
.
apply
(
this
,
arguments
);
return
result
;
};
}
};
...
...
dependency-examples/flight/bower_components/jquery/jquery.js
100644 → 100755
View file @
a5d0ac74
File mode changed from 100644 to 100755
dependency-examples/flight/bower_components/requirejs-text/text.js
View file @
a5d0ac74
/**
* @license RequireJS text 2.0.1
0 Copyright (c) 2010-2012
, The Dojo Foundation All Rights Reserved.
* @license RequireJS text 2.0.1
2 Copyright (c) 2010-2014
, The Dojo Foundation All Rights Reserved.
* Available via the MIT or new BSD license.
* see: http://github.com/requirejs/text for details
*/
...
...
@@ -23,7 +23,7 @@ define(['module'], function (module) {
masterConfig
=
(
module
.
config
&&
module
.
config
())
||
{};
text
=
{
version
:
'
2.0.1
0
'
,
version
:
'
2.0.1
2
'
,
strip
:
function
(
content
)
{
//Strips <?xml ...?> declarations so that external SVG and XML
...
...
@@ -162,12 +162,12 @@ define(['module'], function (module) {
// Do not bother with the work if a build and text will
// not be inlined.
if
(
config
.
isBuild
&&
!
config
.
inlineText
)
{
if
(
config
&&
config
.
isBuild
&&
!
config
.
inlineText
)
{
onLoad
();
return
;
}
masterConfig
.
isBuild
=
config
.
isBuild
;
masterConfig
.
isBuild
=
config
&&
config
.
isBuild
;
var
parsed
=
text
.
parseName
(
name
),
nonStripName
=
parsed
.
moduleName
+
...
...
@@ -257,7 +257,9 @@ define(['module'], function (module) {
}
callback
(
file
);
}
catch
(
e
)
{
errback
(
e
);
if
(
errback
)
{
errback
(
e
);
}
}
};
}
else
if
(
masterConfig
.
env
===
'
xhr
'
||
(
!
masterConfig
.
env
&&
...
...
@@ -285,12 +287,14 @@ define(['module'], function (module) {
//Do not explicitly handle errors, those should be
//visible via console output in the browser.
if
(
xhr
.
readyState
===
4
)
{
status
=
xhr
.
status
;
status
=
xhr
.
status
||
0
;
if
(
status
>
399
&&
status
<
600
)
{
//An http 4xx or 5xx error. Signal an error.
err
=
new
Error
(
url
+
'
HTTP status:
'
+
status
);
err
.
xhr
=
xhr
;
errback
(
err
);
if
(
errback
)
{
errback
(
err
);
}
}
else
{
callback
(
xhr
.
responseText
);
}
...
...
@@ -347,7 +351,7 @@ define(['module'], function (module) {
typeof
Components
!==
'
undefined
'
&&
Components
.
classes
&&
Components
.
interfaces
))
{
//Avert your gaze!
Cc
=
Components
.
classes
,
Cc
=
Components
.
classes
;
Ci
=
Components
.
interfaces
;
Components
.
utils
[
'
import
'
](
'
resource://gre/modules/FileUtils.jsm
'
);
xpcIsWindows
=
(
'
@mozilla.org/windows-registry-key;1
'
in
Cc
);
...
...
dependency-examples/flight/bower_components/requirejs/require.js
View file @
a5d0ac74
/** vim: et:ts=4:sw=4:sts=4
* @license RequireJS 2.1.
9 Copyright (c) 2010-2012
, The Dojo Foundation All Rights Reserved.
* @license RequireJS 2.1.
11 Copyright (c) 2010-2014
, The Dojo Foundation All Rights Reserved.
* Available via the MIT or new BSD license.
* see: http://github.com/jrburke/requirejs for details
*/
...
...
@@ -12,7 +12,7 @@ var requirejs, require, define;
(
function
(
global
)
{
var
req
,
s
,
head
,
baseElement
,
dataMain
,
src
,
interactiveScript
,
currentlyAddingScript
,
mainScript
,
subPath
,
version
=
'
2.1.
9
'
,
version
=
'
2.1.
11
'
,
commentRegExp
=
/
(\/\*([\s\S]
*
?)\*\/
|
([^
:
]
|^
)\/\/(
.*
)
$
)
/mg
,
cjsRequireRegExp
=
/
[^
.
]\s
*require
\s
*
\(\s
*
[
"'
]([^
'"
\s]
+
)[
"'
]\s
*
\)
/g
,
jsSuffixRegExp
=
/
\.
js$/
,
...
...
@@ -108,7 +108,10 @@ var requirejs, require, define;
if
(
source
)
{
eachProp
(
source
,
function
(
value
,
prop
)
{
if
(
force
||
!
hasProp
(
target
,
prop
))
{
if
(
deepStringMixin
&&
typeof
value
!==
'
string
'
)
{
if
(
deepStringMixin
&&
typeof
value
===
'
object
'
&&
value
&&
!
isArray
(
value
)
&&
!
isFunction
(
value
)
&&
!
(
value
instanceof
RegExp
))
{
if
(
!
target
[
prop
])
{
target
[
prop
]
=
{};
}
...
...
@@ -138,7 +141,7 @@ var requirejs, require, define;
throw
err
;
}
//Allow getting a global that expressed in
//Allow getting a global that
is
expressed in
//dot notation, like 'a.b.c'.
function
getGlobal
(
value
)
{
if
(
!
value
)
{
...
...
@@ -201,6 +204,7 @@ var requirejs, require, define;
waitSeconds
:
7
,
baseUrl
:
'
./
'
,
paths
:
{},
bundles
:
{},
pkgs
:
{},
shim
:
{},
config
:
{}
...
...
@@ -214,6 +218,7 @@ var requirejs, require, define;
defQueue
=
[],
defined
=
{},
urlFetched
=
{},
bundlesMap
=
{},
requireCounter
=
1
,
unnormalizedCounter
=
1
;
...
...
@@ -227,8 +232,8 @@ var requirejs, require, define;
* @param {Array} ary the array of path segments.
*/
function
trimDots
(
ary
)
{
var
i
,
part
;
for
(
i
=
0
;
ary
[
i
];
i
+=
1
)
{
var
i
,
part
,
length
=
ary
.
length
;
for
(
i
=
0
;
i
<
length
;
i
++
)
{
part
=
ary
[
i
];
if
(
part
===
'
.
'
)
{
ary
.
splice
(
i
,
1
);
...
...
@@ -261,7 +266,7 @@ var requirejs, require, define;
* @returns {String} normalized name
*/
function
normalize
(
name
,
baseName
,
applyMap
)
{
var
pkg
Name
,
pkgConfig
,
mapValue
,
nameParts
,
i
,
j
,
nameSegment
,
var
pkg
Main
,
mapValue
,
nameParts
,
i
,
j
,
nameSegment
,
lastIndex
,
foundMap
,
foundI
,
foundStarMap
,
starI
,
baseParts
=
baseName
&&
baseName
.
split
(
'
/
'
),
normalizedBaseParts
=
baseParts
,
...
...
@@ -274,29 +279,26 @@ var requirejs, require, define;
//otherwise, assume it is a top-level require that will
//be relative to baseUrl in the end.
if
(
baseName
)
{
if
(
getOwn
(
config
.
pkgs
,
baseName
))
{
//If the baseName is a package name, then just treat it as one
//name to concat the name with.
normalizedBaseParts
=
baseParts
=
[
baseName
];
}
else
{
//Convert baseName to array, and lop off the last part,
//so that . matches that 'directory' and not name of the baseName's
//module. For instance, baseName of 'one/two/three', maps to
//'one/two/three.js', but we want the directory, 'one/two' for
//this normalization.
normalizedBaseParts
=
baseParts
.
slice
(
0
,
baseParts
.
length
-
1
);
//Convert baseName to array, and lop off the last part,
//so that . matches that 'directory' and not name of the baseName's
//module. For instance, baseName of 'one/two/three', maps to
//'one/two/three.js', but we want the directory, 'one/two' for
//this normalization.
normalizedBaseParts
=
baseParts
.
slice
(
0
,
baseParts
.
length
-
1
);
name
=
name
.
split
(
'
/
'
);
lastIndex
=
name
.
length
-
1
;
// If wanting node ID compatibility, strip .js from end
// of IDs. Have to do this here, and not in nameToUrl
// because node allows either .js or non .js to map
// to same file.
if
(
config
.
nodeIdCompat
&&
jsSuffixRegExp
.
test
(
name
[
lastIndex
]))
{
name
[
lastIndex
]
=
name
[
lastIndex
].
replace
(
jsSuffixRegExp
,
''
);
}
name
=
normalizedBaseParts
.
concat
(
name
.
split
(
'
/
'
)
);
name
=
normalizedBaseParts
.
concat
(
name
);
trimDots
(
name
);
//Some use of packages may use a . path to reference the
//'main' module name, so normalize for that.
pkgConfig
=
getOwn
(
config
.
pkgs
,
(
pkgName
=
name
[
0
]));
name
=
name
.
join
(
'
/
'
);
if
(
pkgConfig
&&
name
===
pkgName
+
'
/
'
+
pkgConfig
.
main
)
{
name
=
pkgName
;
}
}
else
if
(
name
.
indexOf
(
'
./
'
)
===
0
)
{
// No baseName, so this is ID is resolved relative
// to baseUrl, pull off the leading dot.
...
...
@@ -308,7 +310,7 @@ var requirejs, require, define;
if
(
applyMap
&&
map
&&
(
baseParts
||
starMap
))
{
nameParts
=
name
.
split
(
'
/
'
);
for
(
i
=
nameParts
.
length
;
i
>
0
;
i
-=
1
)
{
outerLoop
:
for
(
i
=
nameParts
.
length
;
i
>
0
;
i
-=
1
)
{
nameSegment
=
nameParts
.
slice
(
0
,
i
).
join
(
'
/
'
);
if
(
baseParts
)
{
...
...
@@ -325,16 +327,12 @@ var requirejs, require, define;
//Match, update name to the new value.
foundMap
=
mapValue
;
foundI
=
i
;
break
;
break
outerLoop
;
}
}
}
}
if
(
foundMap
)
{
break
;
}
//Check for a star map match, but just hold on to it,
//if there is a shorter segment match later in a matching
//config, then favor over this star map.
...
...
@@ -355,7 +353,11 @@ var requirejs, require, define;
}
}
return
name
;
// If the name points to a package's name, use
// the package main instead.
pkgMain
=
getOwn
(
config
.
pkgs
,
name
);
return
pkgMain
?
pkgMain
:
name
;
}
function
removeScript
(
name
)
{
...
...
@@ -548,7 +550,7 @@ var requirejs, require, define;
//local var ref to defQueue, so cannot just reassign the one
//on context.
apsp
.
apply
(
defQueue
,
[
defQueue
.
length
-
1
,
0
].
concat
(
globalDefQueue
));
[
defQueue
.
length
,
0
].
concat
(
globalDefQueue
));
globalDefQueue
=
[];
}
}
...
...
@@ -565,7 +567,7 @@ var requirejs, require, define;
mod
.
usingExports
=
true
;
if
(
mod
.
map
.
isDefine
)
{
if
(
mod
.
exports
)
{
return
mod
.
exports
;
return
(
defined
[
mod
.
map
.
id
]
=
mod
.
exports
)
;
}
else
{
return
(
mod
.
exports
=
defined
[
mod
.
map
.
id
]
=
{});
}
...
...
@@ -579,15 +581,9 @@ var requirejs, require, define;
id
:
mod
.
map
.
id
,
uri
:
mod
.
map
.
url
,
config
:
function
()
{
var
c
,
pkg
=
getOwn
(
config
.
pkgs
,
mod
.
map
.
id
);
// For packages, only support config targeted
// at the main module.
c
=
pkg
?
getOwn
(
config
.
config
,
mod
.
map
.
id
+
'
/
'
+
pkg
.
main
)
:
getOwn
(
config
.
config
,
mod
.
map
.
id
);
return
c
||
{};
return
getOwn
(
config
.
config
,
mod
.
map
.
id
)
||
{};
},
exports
:
defined
[
mod
.
map
.
id
]
exports
:
mod
.
exports
||
(
mod
.
exports
=
{})
});
}
}
...
...
@@ -628,7 +624,7 @@ var requirejs, require, define;
}
function
checkLoaded
()
{
var
map
,
modId
,
err
,
usingPathFallback
,
var
err
,
usingPathFallback
,
waitInterval
=
config
.
waitSeconds
*
1000
,
//It is possible to disable the wait interval by using waitSeconds of 0.
expired
=
waitInterval
&&
(
context
.
startTime
+
waitInterval
)
<
new
Date
().
getTime
(),
...
...
@@ -646,8 +642,8 @@ var requirejs, require, define;
//Figure out the state of all the modules.
eachProp
(
enabledRegistry
,
function
(
mod
)
{
map
=
mod
.
map
;
modId
=
map
.
id
;
var
map
=
mod
.
map
,
modId
=
map
.
id
;
//Skip things that are not enabled or in error state.
if
(
!
mod
.
enabled
)
{
...
...
@@ -870,17 +866,14 @@ var requirejs, require, define;
exports
=
context
.
execCb
(
id
,
factory
,
depExports
,
exports
);
}
if
(
this
.
map
.
isDefine
)
{
//If setting exports via 'module' is in play,
//favor that over return value and exports. After that,
//favor a non-undefined return value over exports use.
// Favor return value over exports. If node/cjs in play,
// then will not have a return value anyway. Favor
// module.exports assignment over exports object.
if
(
this
.
map
.
isDefine
&&
exports
===
undefined
)
{
cjsModule
=
this
.
module
;
if
(
cjsModule
&&
cjsModule
.
exports
!==
undefined
&&
//Make sure it is not already the exports value
cjsModule
.
exports
!==
this
.
exports
)
{
if
(
cjsModule
)
{
exports
=
cjsModule
.
exports
;
}
else
if
(
exports
===
undefined
&&
this
.
usingExports
)
{
}
else
if
(
this
.
usingExports
)
{
//exports already set the defined value.
exports
=
this
.
exports
;
}
...
...
@@ -940,6 +933,7 @@ var requirejs, require, define;
on
(
pluginMap
,
'
defined
'
,
bind
(
this
,
function
(
plugin
)
{
var
load
,
normalizedMap
,
normalizedMod
,
bundleId
=
getOwn
(
bundlesMap
,
this
.
map
.
id
),
name
=
this
.
map
.
name
,
parentName
=
this
.
map
.
parentMap
?
this
.
map
.
parentMap
.
name
:
null
,
localRequire
=
context
.
makeRequire
(
map
.
parentMap
,
{
...
...
@@ -985,6 +979,14 @@ var requirejs, require, define;
return
;
}
//If a paths config, then just load that file instead to
//resolve the plugin, as it is built into that paths layer.
if
(
bundleId
)
{
this
.
map
.
url
=
context
.
nameToUrl
(
bundleId
);
this
.
load
();
return
;
}
load
=
bind
(
this
,
function
(
value
)
{
this
.
init
([],
function
()
{
return
value
;
},
null
,
{
enabled
:
true
...
...
@@ -1249,31 +1251,38 @@ var requirejs, require, define;
}
}
//Save off the paths
and packages
since they require special processing,
//Save off the paths since they require special processing,
//they are additive.
var
pkgs
=
config
.
pkgs
,
shim
=
config
.
shim
,
var
shim
=
config
.
shim
,
objs
=
{
paths
:
true
,
bundles
:
true
,
config
:
true
,
map
:
true
};
eachProp
(
cfg
,
function
(
value
,
prop
)
{
if
(
objs
[
prop
])
{
if
(
prop
===
'
map
'
)
{
if
(
!
config
.
map
)
{
config
.
map
=
{};
}
mixin
(
config
[
prop
],
value
,
true
,
true
);
}
else
{
mixin
(
config
[
prop
],
value
,
true
);
if
(
!
config
[
prop
])
{
config
[
prop
]
=
{};
}
mixin
(
config
[
prop
],
value
,
true
,
true
);
}
else
{
config
[
prop
]
=
value
;
}
});
//Reverse map the bundles
if
(
cfg
.
bundles
)
{
eachProp
(
cfg
.
bundles
,
function
(
value
,
prop
)
{
each
(
value
,
function
(
v
)
{
if
(
v
!==
prop
)
{
bundlesMap
[
v
]
=
prop
;
}
});
});
}
//Merge shim
if
(
cfg
.
shim
)
{
eachProp
(
cfg
.
shim
,
function
(
value
,
id
)
{
...
...
@@ -1294,29 +1303,25 @@ var requirejs, require, define;
//Adjust packages if necessary.
if
(
cfg
.
packages
)
{
each
(
cfg
.
packages
,
function
(
pkgObj
)
{
var
location
;
var
location
,
name
;
pkgObj
=
typeof
pkgObj
===
'
string
'
?
{
name
:
pkgObj
}
:
pkgObj
;
name
=
pkgObj
.
name
;
location
=
pkgObj
.
location
;
if
(
location
)
{
config
.
paths
[
name
]
=
pkgObj
.
location
;
}
//Create a brand new object on pkgs, since currentPackages can
//be passed in again, and config.pkgs is the internal transformed
//state for all package configs.
pkgs
[
pkgObj
.
name
]
=
{
name
:
pkgObj
.
name
,
location
:
location
||
pkgObj
.
name
,
//Remove leading dot in main, so main paths are normalized,
//and remove any trailing .js, since different package
//envs have different conventions: some use a module name,
//some use a file name.
main
:
(
pkgObj
.
main
||
'
main
'
)
.
replace
(
currDirRegExp
,
''
)
.
replace
(
jsSuffixRegExp
,
''
)
};
//Save pointer to main module ID for pkg name.
//Remove leading dot in main, so main paths are normalized,
//and remove any trailing .js, since different package
//envs have different conventions: some use a module name,
//some use a file name.
config
.
pkgs
[
name
]
=
pkgObj
.
name
+
'
/
'
+
(
pkgObj
.
main
||
'
main
'
)
.
replace
(
currDirRegExp
,
''
)
.
replace
(
jsSuffixRegExp
,
''
);
});
//Done with modifications, assing packages back to context config
config
.
pkgs
=
pkgs
;
}
//If there are any "waiting to execute" modules in the registry,
...
...
@@ -1469,6 +1474,15 @@ var requirejs, require, define;
delete
urlFetched
[
map
.
url
];
delete
undefEvents
[
id
];
//Clean queued defines too. Go backwards
//in array so that the splices do not
//mess up the iteration.
eachReverse
(
defQueue
,
function
(
args
,
i
)
{
if
(
args
[
0
]
===
id
)
{
defQueue
.
splice
(
i
,
1
);
}
});
if
(
mod
)
{
//Hold on to listeners in case the
//module will be attempted to be reloaded
...
...
@@ -1488,7 +1502,7 @@ var requirejs, require, define;
/**
* Called to enable a module if it is still in the registry
* awaiting enablement. A second arg, parent, the parent module,
* is passed in for context, when this method is overriden by
* is passed in for context, when this method is overrid
d
en by
* the optimizer. Not shown here to keep code compact.
*/
enable
:
function
(
depMap
)
{
...
...
@@ -1562,8 +1576,19 @@ var requirejs, require, define;
* internal API, not a public one. Use toUrl for the public API.
*/
nameToUrl
:
function
(
moduleName
,
ext
,
skipExt
)
{
var
paths
,
pkgs
,
pkg
,
pkgPath
,
syms
,
i
,
parentModule
,
url
,
parentPath
;
var
paths
,
syms
,
i
,
parentModule
,
url
,
parentPath
,
bundleId
,
pkgMain
=
getOwn
(
config
.
pkgs
,
moduleName
);
if
(
pkgMain
)
{
moduleName
=
pkgMain
;
}
bundleId
=
getOwn
(
bundlesMap
,
moduleName
);
if
(
bundleId
)
{
return
context
.
nameToUrl
(
bundleId
,
ext
,
skipExt
);
}
//If a colon is in the URL, it indicates a protocol is used and it is just
//an URL to a file, or if it starts with a slash, contains a query arg (i.e. ?)
...
...
@@ -1577,7 +1602,6 @@ var requirejs, require, define;
}
else
{
//A module that needs to be converted to a path.
paths
=
config
.
paths
;
pkgs
=
config
.
pkgs
;
syms
=
moduleName
.
split
(
'
/
'
);
//For each module name segment, see if there is a path
...
...
@@ -1585,7 +1609,7 @@ var requirejs, require, define;
//and work up from it.
for
(
i
=
syms
.
length
;
i
>
0
;
i
-=
1
)
{
parentModule
=
syms
.
slice
(
0
,
i
).
join
(
'
/
'
);
pkg
=
getOwn
(
pkgs
,
parentModule
);
parentPath
=
getOwn
(
paths
,
parentModule
);
if
(
parentPath
)
{
//If an array, it means there are a few choices,
...
...
@@ -1595,16 +1619,6 @@ var requirejs, require, define;
}
syms
.
splice
(
0
,
i
,
parentPath
);
break
;
}
else
if
(
pkg
)
{
//If module name is just the package name, then looking
//for the main module.
if
(
moduleName
===
pkg
.
name
)
{
pkgPath
=
pkg
.
location
+
'
/
'
+
pkg
.
main
;
}
else
{
pkgPath
=
pkg
.
location
;
}
syms
.
splice
(
0
,
i
,
pkgPath
);
break
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment